【问题标题】:Rough estimate of number of parameters and LSTM architecture粗略估计参数数量和 LSTM 架构
【发布时间】:2018-06-23 23:18:51
【问题描述】:

我正在处理的问题是二进制分类。我有大约 150 个序列,其中每个序列有 130000 个时间步,其中每个时间步有 2 个特征,形状 =(1,130000,2)。这些序列中的每一个都被标记为“1”或“0”。我想训练一个 lstm 网络,最后,给它一个 130000 个时间步长的序列,每个时间步长有 2 个特征,将预测“1”或“0”。因此,我心中的问题是“多对一”对吗?

1) 如果我保留这些序列中的 120 个用于训练,其余 30 个用于验证,那么模型的参数数量应该大致类似于 120x130000x2=31,200,000 个参数吗? 例如一个具有约 4000 个单元的 LSTM 层?

2) 网络应该是有状态的?与否

我认为的模型是这样的:

model = Sequential()
model.add(LSTM(units=4000,batch_input_shape=(1, 130000,2),return_sequences=False,stateful=True, 
kernel_initializer='RandomNormal'))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='sgd', metrics=['accuracy'])

history = model.fit(X_train, Y_train,validation_data=(X_test, Y_test),shuffle=False, epochs=5, batch_size=1, verbose=1)

对这种方法有什么建议吗?我的想法是否正确?

此外,这个 LSTM 可以使用来自 Keras 的 multi_gpu_model() 在 4 gpus 中并行训练吗?

我应该有更多的样本和更少的每个样本的时间步长吗?

【问题讨论】:

    标签: tensorflow neural-network keras lstm


    【解决方案1】:

    参数:

    参数(Keras 称之为“模型的权重”)不依​​赖于序列长度或序列数。它们仅取决于输入“特征”(=2)和单元数。

    您的第一层(以 2 个特征作为输入,包含 4000 个单元格将具有:

    • 4 * (inputFeatures * units + units² + units) = 16.012.000 --- See details
    • 提示:4000 个单位通常太多了。

    您的密集层(4000 个输入特征和 1 个单元)将具有:

    • inputFeatures * 单位 + 单位 = 4001

    有状态?

    如果您的任务只是您描述的任务(对整个序列进行分类)并且您在模型中一次处理整个序列时没有任何内存问题,那么您无需使用@987654322 @。这只会给您的代码增加不必要的复杂性。

    所以你可以使用input_shape=(130000,2) 而不是batch_input_shape

    您的训练数据可以位于一个形状为 (150,130000,2) 的数组中。或者,如果将训练数据和测试数据分开,则为两个数组:(120,130000,2) 和 (30,130000,2)。

    GPU

    很遗憾,我没有那个答案。但我知道 LSTM 在 GPU 上非常慢。您可能想探索 CuDNNLSTM 层。

    【讨论】:

    • 我怎样才能决定我需要多少单位来处理我拥有的这些数据量?我该如何开始?有没有初步的计算?例如以 100 个单位启动 LSTM?还是会欠拟合?
    • 对此没有正确答案,这取决于您要学习的序列有多复杂。但 100 确实是一个不错的开始。
    • 我应该有更多的样本和更少的每个样本的时间步长吗?我应该以其他方式转换数据集吗?
    • 它们真的是 150 个不同的序列吗?您想要正好 150 个分类吗?如果它们是 150 个序列,那么一切都是正确的。
    • 我将它们视为不同的。那是让我不确定的事情。我有七个大序列,每个都有百万时间步长,我把它们切成段。导致我提到的形状。每一个被切碎的都被分配到来的序列的类别。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-07
    • 1970-01-01
    • 2013-04-27
    • 2018-10-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多