【问题标题】:Keras - How to convert LSTM code into CNNKeras - 如何将 LSTM 代码转换为 CNN
【发布时间】:2018-11-02 20:47:14
【问题描述】:

我正在进行二进制分类情感分析,无论是正面还是负面,我的 lstm 代码都可以正常工作,但我正在将 lstm 代码转换为 cnn,“input_length”的值错误为 30,但接收到的输入具有形状(无, 1)

我的输入形状是 (30,1) 我的批量大小是 lstm 中的 24

model.add(Embedding(30,30,input_length=30))
model.add(Conv1D(padding='valid',activation='relu',strides=1))
model.add(Dropout(0.2))
model.add(Dense(30))
model.add(Dropout(0.2))
model.add(Activation('relu'))
model.add(Dense(1))
model.add(Activation('sigmoid'))
model.compile(loss='binary_crossentropy',optimizer='adam',metrics=['accuracy'])
model.fit(inputBatch, ponlabel,batch_size=24,epochs=20,validation_data=(inputBatch, ponlabel))

为了参考,我已经放了我的 LSTM 代码。

model.add(LSTM(100, input_shape=(30, 1)))
model.add(Dense(30, activation="relu"))
model.add(Dense(1, activation="sigmoid"))
model.compile(loss='mean_absolute_error', optimizer='adam',metrics=["accuracy"])
model.fit(inputBatch, ponlabel,
          batch_size=24, epochs=20, verbose=1)

【问题讨论】:

    标签: python tensorflow keras lstm


    【解决方案1】:

    您正在使用Convolution2D,但您在时间步长上的数据是一维的。因此,您需要使用Convolutional1D 对句子中的标记进行卷积。 Keras示例文件夹imdb_cnn.py中有一个CNN文本分类。

    【讨论】:

    • 你能转换这段代码以便我测试它吗?因此,我正在尝试将其从您提供的参考中转换
    猜你喜欢
    • 1970-01-01
    • 2021-07-01
    • 1970-01-01
    • 2019-09-28
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多