标签: recurrent-neural-network

当我们有 pack_sequence() 时,为什么还需要 pack_padded_sequence() ?

在阅读了这个问题的答案后,我对整个 PackedSequence 对象的事情仍然有点困惑。据我了解,这是一个针对循环模型中可变大小序列的并行处理而优化的对象,零填充是一个[不完美]解决方案。看起来,给定一个 PackedSequence 对象,Pytorch RNN 将处理批次中的每个序列直至结束,并且不会继续处理填充。那么为什么这里需要填充呢?为什么同时存在 pack_padded_sequence() 和 pack_sequence() 方法?

recurrent-neural-network pytorch

4
推荐指数
1
解决办法
3088
查看次数

如何正确设置LSTM层的input_shape?

我有一个具有以下形状的输入数据:(5395, 69, 1)

我的 input_shape 应该是:

  • (69,1)或者

  • (1,69)

LSTM 层中有 69 个神经元,我在第一个 input_shape 中获得 19'596 个参数进行训练,而在第二个 38'364 个参数中,这些不是分别作为输入 1 和 69 个值获取的结果吗?我的问题是我应该输入 1 因为我有 1 个特征,还是应该输入 69 因为我有 69 个时间步长,为什么?

lstm keras recurrent-neural-network

4
推荐指数
1
解决办法
2万
查看次数

用于视频输入的 LSTM

我是一个尝试 LSTM 的新手。

我基本上使用 LSTM 来确定动作类型(5 种不同的动作),例如跑步、跳舞等。我的输入是每个动作 60 帧,大致可以说大约 120 个这样的视频

train_x.shape = (120,192,192,60)

其中 120 是用于训练的样本视频数量,192X192 是帧大小,60 是帧数。

train_y.shape = (120*5) [1 0 0 0 0 ..... 0 0 0 0 1] 一个热编码

我不清楚如何将 3d 参数传递给 lstm (时间戳和功能)

model.add(LSTM(100, input_shape=(train_x.shape[1],train_x.shape[2])))
model.add(Dropout(0.5))
model.add(Dense(100, activation='relu'))
model.add(Dense(len(uniquesegments), activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(train_x, train_y, epochs=100, batch_size=batch_size, verbose=1)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

层顺序的输入 0 与层不兼容:预期 ndim=3,发现 ndim=4。收到的完整形状:(无、192、192、60)

训练数据算法

Loop through videos
            Loop through each frame of a video
                    logic
                    append to array
            convert to numpy array
            roll …
Run Code Online (Sandbox Code Playgroud)

neural-network lstm keras recurrent-neural-network

4
推荐指数
1
解决办法
1095
查看次数

Tensorflow:LSTM 中的形状错误,“lstm”层有多个入站节点,具有不同的输出形状

我收到有关 lstm 层输出形状的奇怪错误。我尝试了几件事,但不确定我在哪里做错了。

这个问题来自courser的深度学习专业

''' def music_inference_model(LSTM_cell, densor, Ty=100):

    n_values = densor.units
    n_a = LSTM_cell.units
    
    x0 = Input(shape=(1, n_values))


    a0 = Input(shape=(n_a,), name='a0')
    c0 = Input(shape=(n_a,), name='c0')
    a = a0
    c = c0
    x = x0

    outputs = []

    for t in range(Ty):
        a, _, c = LSTM_cell(x, initial_state=[a, c])
        out = densor(a)
        outputs.append(out)
        x = tf.math.argmax(out)
        x = tf.one_hot(x,  depth=n_values)
        x = RepeatVector(1)(x)
    
    inference_model = Model([x0,a0,c0],outputs)



    return inference_model

inference_model = music_inference_model(LSTM_cell, densor, Ty = 50)

inference_summary = summary(inference_model) 
comparator(inference_summary, …
Run Code Online (Sandbox Code Playgroud)

python lstm tensorflow recurrent-neural-network

4
推荐指数
1
解决办法
2309
查看次数

ModuleNotFoundError:没有名为“keras.layers.recurrent”的模块

我正在尝试在 python 中导入 LSTM

from keras.layers.recurrent import LSTM
Run Code Online (Sandbox Code Playgroud)

但是,我在编译时收到以下错误消息:

ModuleNotFoundError:没有名为“keras.layers.recurrent”的模块

有人可以帮我解决这个问题吗?

neural-network python-3.x lstm keras recurrent-neural-network

4
推荐指数
1
解决办法
3万
查看次数

何时停止训练神经网络?

我正在尝试使用RNN进行特定领域的分类研究,并累积了数千万条文本.由于运行整个数据集需要数天甚至数月,因此我只选择了一小部分用于测试,比如1M文本(80%用于培训,20%用于验证).我用文字矢量化预训练整个语料库,我还将Dropout应用于模型以避免过度拟合.当它在12小时内训练60000文本时,损失已经下降到相当低的水平,准确率为97%.我应该继续吗?它有助于继续培训吗?

它仍在运行第一个时代,我担心如果我现在停下来,模型将不会涵盖整个...

nlp machine-learning neural-network lstm recurrent-neural-network

3
推荐指数
1
解决办法
2297
查看次数

神经网络可以在大小变化时进行训练吗?

当神经网络缩小或增大(通过节点数,连接数等)时,是否存在已知的连续训练方法和神经网络的优雅降级?

在我的记忆中,我所读到的关于神经网络的一切都是从静态的角度出发的.你定义网,然后训练它.

如果有一些神经网络X有N个节点(神经元,无论如何),是否有可能训练网络(X),以便在N增加或减少时,网络仍然有用并且能够执行?

machine-learning neural-network recurrent-neural-network

3
推荐指数
1
解决办法
1352
查看次数

神经网络能否具有完美的列车精度?

标题说明了一切:神经网络能否具有完美的列车精度?我的准确度达到了约0.9,我想知道这是否表明我的网络或训练数据存在问题.

训练实例:约4500个序列,平均长度为10个元素.网络:双向香草RNN,顶部有softmax层.

machine-learning deep-learning recurrent-neural-network

3
推荐指数
1
解决办法
675
查看次数

如何在TensorFlow中的堆叠LSTM单元之间添加dropout图层?

我可以创建一个具有两层LSTM的RNN网络,如下所示:

lstm_cell1 = tf.nn.rnn_cell.BasicLSTMCell(50)
lstm_cell2 = tf.nn.rnn_cell.BasicLSTMCell(100)
lstm_net = tf.nn.rnn_cell.MultiRNNCell([lstm_cell1, lstm_cell2])
Run Code Online (Sandbox Code Playgroud)

但是现在我还希望在每个lstm单元格之后包含dropout图层.就像是,

tf.nn.rnn_cell.MultiRNNCell([tf.nn.dropout(lstm_cell1, 0.8), tf.nn.dropout(lstm_cell2, 0.8)])
Run Code Online (Sandbox Code Playgroud)

我该如何实现这一目标?

lstm tensorflow recurrent-neural-network

3
推荐指数
1
解决办法
3812
查看次数

TensorFlow dynamic_rnn状态

我的问题是关于TensorFlow方法tf.nn.dynamic_rnn.它返回每个时间步和最终状态的输出.

我想知道返回的最终状态是否是最大序列长度的单元格状态,或者是否由sequence_length参数单独确定.

为了更好地理解一个例子:我有3个具有长度的序列[10,20,30]并且返回最终状态[3,512](如果单元的隐藏状态具有512的长度).

三个序列的三个返回隐藏状态是时间步骤30中的单元状态还是我在时间步骤返回状态[10,20,30]

python machine-learning neural-network tensorflow recurrent-neural-network

3
推荐指数
1
解决办法
1706
查看次数