程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了我正在用 python 学习 tensorflow2,我想知道是什么设置了 ndim?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决我正在用 python 学习 tensorflow2,我想知道是什么设置了 ndim??

开发过程中遇到我正在用 python 学习 tensorflow2,我想知道是什么设置了 ndim?的问题如何解决?下面主要结合日常开发的经验,给出你关于我正在用 python 学习 tensorflow2,我想知道是什么设置了 ndim?的解决方法建议,希望对你解决我正在用 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,请注明来意。