File "model_VQA.py", line 279, in train
tf_loss, tf_image, tf_question, tf_label = model.build_model()
File "model_VQA.py", line 53, in build_model
state = tf.zeros([self.batch_size, self.stacked_lstm.state_size])
File "/home/xus/.virtualenvs/vqa/local/lib/python2.7/site-packages/tensorflow/python/ops/array_ops.py", line 1359, in zeros
...
ValueError: setting an array element with a sequence.
`
# question-embedding
self.embed_ques_W = tf.Variable(tf.random_uniform([self.vocabulary_size, self.input_embedding_size], -0.08, 0.08), name='embed_ques_W')#self.vocabulary_size=14470 self.input_embedding_size=200
# encoder: RNN body
self.lstm_1 = tf.contrib.rnn.LSTMCell(rnn_size, input_embedding_size, use_peepholes=True)#rnn_size=512,input_embedding_size=200
self.lstm_dropout_1 =tf.contrib.rnn.DropoutWrapper(self.lstm_1, output_keep_prob = 1 - self.drop_out_rate)#self.drop_out_rate=0
self.lstm_2 = tf.contrib.rnn.LSTMCell(rnn_size, rnn_size, use_peepholes=True)
self.lstm_dropout_2 = tf.contrib.rnn.DropoutWrapper(self.lstm_2, output_keep_prob = 1 - self.drop_out_rate)
self.stacked_lstm = tf.contrib.rnn.MultiRNNCell([self.lstm_dropout_1, self.lstm_dropout_2])#state_is_tuple=False)
# state-embedding
self.embed_state_W = tf.Variable(tf.random_uniform([2*rnn_size*rnn_layer, self.dim_hidden], -0.08,0.08),name='embed_state_W')#dim_hidden=1024
self.embed_state_b = tf.Variable(tf.random_uniform([self.dim_hidden], -0.08, 0.08), name='embed_state_b')
# image-embedding
self.embed_image_W = tf.Variable(tf.random_uniform([dim_image, self.dim_hidden], -0.08, 0.08), name='embed_image_W')#dim_image=4096
self.embed_image_b = tf.Variable(tf.random_uniform([dim_hidden], -0.08, 0.08), name='embed_image_b')
# score-embedding
self.embed_scor_W = tf.Variable(tf.random_uniform([dim_hidden, num_output], -0.08, 0.08), name='embed_scor_W')#num_output=1000
self.embed_scor_b = tf.Variable(tf.random_uniform([num_output], -0.08, 0.08), name='embed_scor_b')
def build_model(self):
image = tf.placeholder(tf.float32, [self.batch_size, self.dim_image])
question = tf.placeholder(tf.int32, [self.batch_size, self.max_words_q])
label = tf.placeholder(tf.int64, [self.batch_size,])
state = tf.zeros([self.batch_size, self.stacked_lstm.state_size])#self.batch_size=500
「ありがとう」 誰もこのエラーの原因を教えてくれますか?私はVQAプロジェクトをしています、このコードはgithubからのものであり、リンクはhttps://github.com/JamesChuanggg/VQA-tensorflow/blob/master/model_VQA.py
回答 1 件
関連記事
- 特定の要素の配列の要素の合計を取得する
- ValueError:サイズ78543360の配列を形状に再形成できません(51135,4,32,32)
- 関数に何が欠けていますか(右側の要素よりも大きい要素の配列を返します)?
- v-for:配列要素とプロパティの破棄
- div要素の幅を0に設定した後、折りたたまれませんか?
- 特定のキーを設定してJavaScriptでオブジェクトの配列を操作する
- 要素の予想されるインデックスが元のインデックスになるように配列をシャッフルします
- MongoDB要素フィールドを値の配列のみに変換します
- PHP配列に同じ日付の要素を追加して新しい配列を作成する方法
- Javascriptで要素の高さを動的に設定する
モデルに入力する入力(データセットとラベル)を確認します。値エラーは、1つ以上の入力の形状が間違っていることが原因である可能性があります。入力を印刷し、それらがすべて正しい次元の配列であることを確認することをお勧めします。さらにサポートが必要な場合は、質問にコードを添付すると、問題をより正確に特定するのに役立ちます。