回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在使用Keras构建一个CNN-LSTM推特分类模型。该模型有两个输入,任务为三类分类。我用于构建模型的代码如下所示:</p>
<pre><code>def conv2d_lstm_with_author():
# Get the input information - author & tweet
author_repre_input = Input(shape=(100,), name='author_input')
tweet_input = Input(shape=(13, 100, 1), name='tweet_input')
# Create the convolutional layer and lstm layer
conv2d = Conv2D(filters = 200, kernel_size = (2, 100), padding='same', activation='relu',
use_bias=True, name='conv_1')(tweet_input)
flat = Flatten(name='flatten_1')(conv2d)
reshape_flat = Reshape((260000, 1), name='reshape_1')(flat)
lstm = LSTM(100, return_state=False, activation='tanh', recurrent_activation='hard_sigmoid', name='lstm_1')(reshape_flat)
concatenate_layer = concatenate([lstm, author_repre_input], axis=1, name='concat_1')
dense_1 = Dense(10, activation='relu', name='dense_1')(concatenate_layer)
output = Dense(3, activation='softmax', kernel_regularizer=regularizers.l2(0.01), name='output_dense')(dense_1)
# Build the model
model = Model(inputs=[author_repre_input, tweet_input], outputs=output)
return model
model = conv2d_lstm_with_author()
model.summary()
optimizer = Adam(lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-08, decay=0.0)
model.compile(optimizer=optimizer, loss='categorical_crossentropy', metrics=['accuracy'])
</code></pre>
<p>我的两个输入和标签的形状是:</p>
<pre class="lang-sh prettyprint-override"><code>author_repre_input: (40942, 100)
tweet_input: (40942, 13, 100, 1)
my label Train_Y: (40942, 3)
</code></pre>
<p>模型摘要的快照为:</p>
<p><a href="https://i.stack.imgur.com/Muse7.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/Muse7.png" alt="enter image description here"/></a></p>
<p>当我使用以下代码来训练数据时:</p>
<pre><code>model.fit([author_repre_input, tweet_input], [Train_Y], epochs=20, batch_size=32, validation_split=0.2,
shuffle=False, verbose=2)
</code></pre>
<p>结果在第一个历元中一直不稳定,并且日志没有显示任何有用的内容,只是:</p>
<pre class="lang-sh prettyprint-override"><code>Epoch 1/20
</code></pre>
<p>我想知道为什么会发生这种情况。我使用的tensorflow和keras版本是:</p>
<pre class="lang-sh prettyprint-override"><code>tensorflow - 1.14.0
keras - 2.2.0
</code></pre>
<p>非常感谢您抽出时间</p>
<hr/>
<p>1月20日更新</p>
<p>我尝试使用谷歌Colab来训练模型。我在运行模型时检查RAM。Colab为我分配了25克RAM。然而,经过几秒钟的训练后,由于占用了所有可用的内存,会话崩溃了</p>
<p><a href="https://i.stack.imgur.com/AAZG9.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/AAZG9.png" alt="enter image description here"/></a></p>
<p>我认为模型部分一定有问题……任何建议和见解都将不胜感激</p>