大佬教程收集整理的这篇文章主要介绍了我正在用 python 学习 tensorflow2,我想知道是什么设置了 ndim?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
# map function
def area_triangle(b,h):
area = b*h/2
return area
Lists = [[4,5],[2,3],[11,45]]
List(map(area_triangle,Lists))
然后当我尝试在构建它后运行 model.fit 时。那是错误被抛出的时候。这是正在构建的模型和 model.fit 函数的代码片段。
def build_model(layers):
model = Sequential()
# By setTing return_sequences to True we are able to stack another LSTM layer
model.add(LSTM(layers[0],input_shape=(1,2),return_sequences=TruE))
model.add(LSTM(layers[0],return_sequences=falsE))
model.add(Dropout(0.2))
model.add(Activation("linear"))
start = time.time()
model.compile(loss="mse",optimizer="rmsprop",metrics=['accuracy'])
print("Compile Time : ",time.time() - start)
return model
这是错误信息。 ValueError:层“顺序”的输入 0 与层不兼容:预期 ndim=3,发现 ndim=2。什么是 ndim?它的值对模型有何调整?我如何理解我设置的 ndim。
window = 20
print("X_Train",X_Train.shapE)
print("y_Train",y_Train.shapE)
print("X_test",X_test.shapE)
print("y_test",y_test.shapE)
model = build_model([1374,window,100,1])
model.fit(X_Train,y_Train,batch_size=3,epochs=5,valIDation_split=0.1,verbose=0).
这是打印出来的形状。
ValueError: input 0 of layer sequential is incompatible with the layer: expected ndim=3,found ndim=2. Full shape received: (None,2).
正如@yudhiesh 所建议的,LSTM 期望输入形状为 [batch,timesteps,feature]
的形状 3D 张量
我可以重现您的问题
import tensorflow as tf
inputs = tf.random.normal([32,8])
lstm = tf.keras.layers.LSTM(4)
output = lstm(inputs)
print(output.shapE)
输出
---------------------------------------------------------------------------
ValueError TraceBACk (most recent call last)
<ipython-input-2-160c5e8d5d9a> in <module>()
2 inputs = tf.random.normal([32,8])
3 lstm = tf.keras.layers.LSTM(4)
----> 4 output = lstm(inputs)
5 print(output.shapE)
2 frames
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/ENGIne/input_spec.py in assert_input_compatibility(input_spec,inputs,layer_Name)
217 'expected ndim=' + str(spec.ndim) + ',found ndim=' +
218 str(ndim) + '. Full shape received: ' +
--> 219 str(tuple(shapE)))
220 if spec.max_ndim is not None:
221 ndim = x.shape.rank
ValueError: Input 0 of layer lstm_1 is incompatible with the layer: expected ndim=3,found ndim=2. Full shape received: (32,8)
工作示例代码
inputs = tf.random.normal([32,10,8])
lstm = tf.keras.layers.LSTM(4)
output = lstm(inputs)
print(output.shapE)
输出:
(32,4)
以上是大佬教程为你收集整理的我正在用 python 学习 tensorflow2,我想知道是什么设置了 ndim?全部内容,希望文章能够帮你解决我正在用 python 学习 tensorflow2,我想知道是什么设置了 ndim?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。