回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我看过很多关于Keras的输入形状错误的帖子,但是我还是不明白。在</p>
<p>我试图用Keras解决一个分类问题。我的<code>x_data</code>(例如1个例子!)是一个数组(4个长度为40的数组)。最后要预测的类数是5。在</p>
<p>第一个输入层的期望值和我给出的结果之间存在不匹配。在</p>
<p>这是我的模型:</p>
<pre><code>self.model = Sequential()
self.model.add(Dense(32,input_shape=(4,40)))
self.model.add(Dense(5, activation='softmax'))
</code></pre>
<p>我认为形状应该是<code>(4,40)</code>,因为我给出了一个由4个数组组成的长度为40的数组。我认为最后一层的输出维应该是5,因为我有5个可能的类。在</p>
<p>以下是1 X的格式/类型/形状:</p>
^{pr2}$
<p>这行代码有一个错误:</p>
<pre><code>self.model.predict(config_repr)
</code></pre>
<p>这是错误:</p>
<pre><code>Traceback (most recent call last):
File "arc_eagerTagger.py", line 818, in <module>
p.static_train2(depTreeList[1:2900]) # p.dynamic_train( treebank, step_size = 1, max_epochs = 10)
File "arc_eagerTagger.py", line 683, in static_train2
derivation = self.static_oracle_derivation(dtree,listVecteurs,dictionnaireMots)
File "arc_eagerTagger.py", line 260, in static_oracle_derivation
C = self.shift(C,sentence,listVecteurs,dictionnaireMots)
File "arc_eagerTagger.py", line 283, in shift
return (S + (w0,),B[1:],A,score+self.score(configuration,ArcEagerTransitionParser.SHIFT,tokens,listVecteurs,dictionnaireMots))
File "arc_eagerTagger.py", line 392, in score
return self.model.predict(config_repr)[0][index_action]
File "/home/netbook/anaconda3/lib/python3.6/site-packages/keras/models.py", line 909, in predict
return self.model.predict(x, batch_size=batch_size, verbose=verbose)
File "/home/netbook/anaconda3/lib/python3.6/site-packages/keras/engine/training.py", line 1499, in predict
check_batch_axis=False)
File "/home/netbook/anaconda3/lib/python3.6/site-packages/keras/engine/training.py", line 128, in _standardize_input_data
str(array.shape))
ValueError: Error when checking : expected dense_1_input to have 3 dimensions, but got array with shape (4, 40)
</code></pre>
<p>我试图更改输入形状,尝试将数组连接为一个长度为160的数组以解决问题(并使用<code>input_dim=160</code>更改输入形状),但仍然会出现错误。在</p>