質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

3337閲覧

attempt to get argmax of an empty sequenceのエラーを直し行列値を取得したいです.

tazaryu

総合スコア6

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/08/27 08:12

編集2020/08/31 07:40

前提・実現したいこと

現在,Pythonのtensorflowでprdict.pyという未知の値を予測するためのart neural netのコードを書いています.
argmax の値が空というエラーが出ており,行列値が取得できません.

直接,値を入れたりとしたのですが(temp = [1, 1, 2]のように),違うような感じがします.下にコードをを記載させていただきますが、temp = [] という部分がおそらくエラーの原因ではないかと考えております.
また,参考に致しましたソースコードは以下のリンクのものです.(predict.py)
https://github.com/exelban/myo-armband-nn
エラー文は以下のようなものです
ValueError: attempt to get argmax of an empty sequence
よろしければ,ぜひご教示頂きたいです.何卒,よろしく,お願いいたします.

発生している問題・エラーメッセージ

エラーメッセージ

Failed to restore checkpoint. Initializing variables instead. Traceback (most recent call last): File "C:\Users\ユーザー名\Desktop\myo-python-1.0.4\myo-armband-nn-master\predict.py", line 57, in <module> response = np.argmax(np.bincount(temp)) File "<_arry_function_internals>", line 6, in argmax return_wrapfunc(a, 'argmax', axis=axis, out=out) File "C:\Program Files\Python36\lib\site-packages\numpy\core\fromnumeric.py", line 56, in _wrapfunc return bound(*args, **kwds) ValueError:attempt to get argmax of an empty sequence [Finished in 8.365s] ### 該当のソースコード  `````` import collections import myo import threading import time import numpy as np import tensorflow as tf from include.model import model x, y, output, global_step, y_pred_cls = model() saver = tf.train.Saver() _SAVE_PATH = "C:/Users/ユーザー名/Desktop/myo-python-1.0.4/myo-armband-nn-master/data/tensorflow_sessions/myo_armband/" #"./data/tensorflow_sessions/myo_armband/" sess = tf.Session() try: print("Trying to restore last checkpoint ...") last_chk_path = tf.train.latest_checkpoint(checkpoint_dir=_SAVE_PATH) print(last_chk_path) saver.restore(sess, save_path=last_chk_path) print("Restored checkpoint from:", last_chk_path) except: print("Failed to restore checkpoint. Initializing variables instead.") sess.run(tf.global_variables_initializer()) class MyListener(myo.DeviceListener): def __init__(self, queue_size=8): self.lock = threading.Lock() self.emg_data_queue = collections.deque(maxlen=queue_size) def on_connect(self, device, timestamp, firmware_version): device.set_stream_emg(myo.StreamEmg.enabled) def on_emg_data(self, device, timestamp, emg_data): with self.lock: self.emg_data_queue.append((timestamp, emg_data)) def get_emg_data(self): with self.lock: return list(self.emg_data_queue) myo.init('C:/Users/ユーザー名/Desktop/myo-python-1.0.4/myo64.dll') hub = myo.Hub() start = time.time() temp = [] ☚ ここではないかと思います. try: listener = MyListener() hub.run(listener, 2000) while True: data = listener.get_emg_data() if time.time() - start >= 1: response = np.argmax(np.bincount(temp)) print("Predicted gesture: {0}".format(response)) temp = [] start = time.time() if len(data) > 0: tmp = [] for v in listener.get_emg_data(): tmp.append(v[1]) tmp = list(np.stack(tmp).flatten()) if len(tmp) >= 64: pred = sess.run(y_pred_cls, feed_dict={x: np.array([tmp])}) temp.append(pred[0]) time.sleep(0.01) finally: sess.close()

試したこと

おそらくtemp[]の表現の仕方が間違っていると推測し,直接行列値を代入などしましたが,うまくいきませんでした.

補足情報(FW/ツールのバージョンなど)

大変お手数ですが,何卒,よろしくお願いいたします.
ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meg_

2020/08/27 09:24

・コードは「コードの挿入」で記入してください。 ・エラーメッセージは全文掲載してください。
meg_

2020/08/31 07:56

例外処理を入れているので当該箇所でエラーは出ないはずですが何故出るんでしょう?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問