LSTM输入形状错误:输入0与图层Sequence_1不兼容

用户名

我是机器学习和keras的新手我试图为我的分类问题创建LSTM模型,但收到此错误:(我从互联网上获得了一些样本并试图对其进行修改)

ValueError:输入0与连续图层_1不兼容:预期形状=(无,无,30),发现形状= [无,3,1]

这就是我所需要的,我有一个像这样的1,2,3,4序列,其中1,2,3是我的X_train,4是label(Y),所以我的意思是时间步长是3,每个步长只有一个功能

我的标签有30节课因此,我希望输出是这30个类之一。64是存储单元数。

这是我的代码

def get_lstm():
    model = Sequential()  
    model.add(LSTM(64, input_shape=(3, 30), return_sequences=True))  
    model.add(LSTM(64))  
    model.add(Dropout(0.2))  
    model.add(Dense(30, activation='softmax'))

X_train = user_data[:, 0:3]
X_train = np.asarray(X_train).astype(np.float32)  
X_train = np.reshape(X_train, (X_train.shape[0], X_train.shape[1], 1))
Y_train = user_data[:, 3]    
Y_train = np.asarray(Y_train).astype(np.float32)
local_model = Mymodel.get_lstm()  
local_model.compile(loss="categorical_crossentropy", optimizer="adam", metrics=['accuracy'])
local_model.set_weights(global_weights)           
local_model.fit(X_train, Y_train, batch_size=32,
                                        epochs=1)

如果您需要更多信息或不清楚,请告诉我。我真的需要你们的帮助,谢谢

阿克塞·塞加尔(Akshay Sehgal)

不知道为什么要像(3,30)第一个LSTM一样设置输入形状如您所言-

这就是我所需要的,我有一个像这样的1,2,3,4序列,其中1,2,3是我的X_train和4是label(Y)。所以我的意思是时间步长是3,每个步长只有一个功能

如果您有3个步骤,并且只有一个功能,则应该这样定义每个序列。

另外,由于模型将始终输出30个长度的概率分布,但是y_train是单个值(唯一的30个类),因此您需要使用losssparse_categorical_crossentropy而不是categorical_crossentropy在这里阅读更多

from tensorflow.keras import layers, Model, utils

#Dummy data and its shapes
X = np.random.random((100,3,1)) #(100,3,1)
y = np.random.randint(0,29,(100,)) #(100,)

#Design model
inp = layers.Input((3,1))
x = layers.LSTM(64, return_sequences=True)(inp)
x = layers.LSTM(64)(x)
x = layers.Dropout(0.2)(x)
out = layers.Dense(30, activation='softmax')(x)
model = Model(inp, out)

#Compile and fit
model.compile(loss="sparse_categorical_crossentropy", optimizer="adam", metrics=['accuracy'])
model.fit(X, y, batch_size=32,epochs=3)
Epoch 1/3
4/4 [==============================] - 0s 4ms/step - loss: 3.4005 - accuracy: 0.0400
Epoch 2/3
4/4 [==============================] - 0s 5ms/step - loss: 3.3953 - accuracy: 0.0700
Epoch 3/3
4/4 [==============================] - 0s 8ms/step - loss: 3.3902 - accuracy: 0.0900
utils.plot_model(model, show_layer_names=False, show_shapes=True)

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法解决ValueError:图层sequence_1的输入0与图层不兼容

来自分类Dev

Keras:ValueError:图层sequence_1的输入0与该图层不兼容:预期的ndim = 3,找到的ndim = 2

来自分类Dev

使用tf.data.Dataset的“ layer sequence_1的输入0与该层不兼容”

来自分类Dev

图层顺序的输入0与图层不兼容:输入形状的预期轴-1的值为784

来自分类Dev

谁能告诉我这是怎么回事?图层conv2d_21的输入0与图层不兼容:输入形状的预期轴-1的值为1

来自分类Dev

LSTM中的交叉验证-ValueError:sequence_3的输入0与该层不兼容

来自分类Dev

“ ValueError:...与图层不兼容:输入形状的预期轴-1的值为8,但接收到具有形状的输入(无,7、169)”

来自分类Dev

Tensorflow输入形状不兼容

来自分类Dev

LSTM:层顺序的输入0与层不兼容

来自分类Dev

ValueError:输入0与图层不兼容:预期形状=(无,48,187,621,64),找到形状=(48,187,621,64)

来自分类Dev

层density_18的输入0与该层不兼容:输入形状的预期轴-1的值为3500,但接收到形状为[None,7]的输入

来自分类Dev

ValueError:连续图层_1的输入0与以下图层不兼容::预期的min_ndim = 4,找到的ndim = 3。收到完整的图形:[无,256、256]

来自分类Dev

Keras - CNN 输入形状不兼容

来自分类Dev

ValueError:密集层_1的输入0与该层不兼容

来自分类Dev

ValueError:sequence_6层的输入0与该层不兼容:预期ndim = 4,找到的ndim = 3。收到的完整形状:[32、28、28]

来自分类Dev

ValueError:sequence_9层的输入0与该层不兼容::预期的min_ndim = 4,找到的ndim = 3。收到完整形状:[无,无,无]

来自分类Dev

图层的输入不兼容(ndim = 4,找到的ndim = 3)

来自分类Dev

lstm_5层的输入0与该层不兼容:预期ndim = 3,找到的ndim = 2

来自分类Dev

ValueError:输入0与层lstm_15不兼容:预期ndim = 3,找到ndim = 2

来自分类Dev

层 conv1d_1 的输入 0 与层不兼容:预期 ndim=3,发现 ndim=2。收到的完整形状:[无,200]

来自分类Dev

Keras自定义图层输入形状兼容性问题

来自分类常见问题

调用LSTM模型的预测函数时出现输入形状错误

来自分类Dev

了解Tensorflow LSTM输入形状

来自分类Dev

ValueError:形状在LSTM模型中不兼容

来自分类Dev

输入与聊天机器人预测模型的图层不兼容

来自分类Dev

tensorflow:模型是用形状(无,无,6)构造的,但是在形状不兼容的输入上被调用

来自分类Dev

tensorflow:模型是用形状(无,无,6)构造的,但是在形状不兼容的输入上被调用

来自分类Dev

tensorflow:模型是用形状(无,无,6)构造的,但是在形状不兼容的输入上被调用

来自分类Dev

tensorflow:模型是用形状(无,无,6)构造的,但是在形状不兼容的输入上被调用

Related 相关文章

  1. 1

    无法解决ValueError:图层sequence_1的输入0与图层不兼容

  2. 2

    Keras:ValueError:图层sequence_1的输入0与该图层不兼容:预期的ndim = 3,找到的ndim = 2

  3. 3

    使用tf.data.Dataset的“ layer sequence_1的输入0与该层不兼容”

  4. 4

    图层顺序的输入0与图层不兼容:输入形状的预期轴-1的值为784

  5. 5

    谁能告诉我这是怎么回事?图层conv2d_21的输入0与图层不兼容:输入形状的预期轴-1的值为1

  6. 6

    LSTM中的交叉验证-ValueError:sequence_3的输入0与该层不兼容

  7. 7

    “ ValueError:...与图层不兼容:输入形状的预期轴-1的值为8,但接收到具有形状的输入(无,7、169)”

  8. 8

    Tensorflow输入形状不兼容

  9. 9

    LSTM:层顺序的输入0与层不兼容

  10. 10

    ValueError:输入0与图层不兼容:预期形状=(无,48,187,621,64),找到形状=(48,187,621,64)

  11. 11

    层density_18的输入0与该层不兼容:输入形状的预期轴-1的值为3500,但接收到形状为[None,7]的输入

  12. 12

    ValueError:连续图层_1的输入0与以下图层不兼容::预期的min_ndim = 4,找到的ndim = 3。收到完整的图形:[无,256、256]

  13. 13

    Keras - CNN 输入形状不兼容

  14. 14

    ValueError:密集层_1的输入0与该层不兼容

  15. 15

    ValueError:sequence_6层的输入0与该层不兼容:预期ndim = 4,找到的ndim = 3。收到的完整形状:[32、28、28]

  16. 16

    ValueError:sequence_9层的输入0与该层不兼容::预期的min_ndim = 4,找到的ndim = 3。收到完整形状:[无,无,无]

  17. 17

    图层的输入不兼容(ndim = 4,找到的ndim = 3)

  18. 18

    lstm_5层的输入0与该层不兼容:预期ndim = 3,找到的ndim = 2

  19. 19

    ValueError:输入0与层lstm_15不兼容:预期ndim = 3,找到ndim = 2

  20. 20

    层 conv1d_1 的输入 0 与层不兼容:预期 ndim=3,发现 ndim=2。收到的完整形状:[无,200]

  21. 21

    Keras自定义图层输入形状兼容性问题

  22. 22

    调用LSTM模型的预测函数时出现输入形状错误

  23. 23

    了解Tensorflow LSTM输入形状

  24. 24

    ValueError:形状在LSTM模型中不兼容

  25. 25

    输入与聊天机器人预测模型的图层不兼容

  26. 26

    tensorflow:模型是用形状(无,无,6)构造的,但是在形状不兼容的输入上被调用

  27. 27

    tensorflow:模型是用形状(无,无,6)构造的,但是在形状不兼容的输入上被调用

  28. 28

    tensorflow:模型是用形状(无,无,6)构造的,但是在形状不兼容的输入上被调用

  29. 29

    tensorflow:模型是用形状(无,无,6)构造的,但是在形状不兼容的输入上被调用

热门标签

归档