Machine learning LSTM张量形状与超参数张量流
我正在学习如何使用LSTM RNN。 我看了这个教程: 在那之后,我试着应用我所学到的知识并改变数据集。 问题是,我有点迷茫所有的重塑,我真的不知道如何使用它们,为什么他们在这里。。。 我的数据集有7列546行。 这是我的超参数Machine learning LSTM张量形状与超参数张量流,machine-learning,tensorflow,deep-learning,lstm,recurrent-neural-network,Machine Learning,Tensorflow,Deep Learning,Lstm,Recurrent Neural Network,我正在学习如何使用LSTM RNN。 我看了这个教程: 在那之后,我试着应用我所学到的知识并改变数据集。 问题是,我有点迷茫所有的重塑,我真的不知道如何使用它们,为什么他们在这里。。。 我的数据集有7列546行。 这是我的超参数 # hyperparameters lr = 0.001 training_iters = 100000 batch_size = 64 n_inputs = 7 # columns n_steps = 546 # rows n_hidden_units = 1
# hyperparameters
lr = 0.001
training_iters = 100000
batch_size = 64
n_inputs = 7 # columns
n_steps = 546 # rows
n_hidden_units = 128 # neurons in hidden layer
n_classes = 1 # class
当我启动会话时,它如下所示:
with tf.Session() as sess:
init = tf.global_variables_initializer()
sess.run(init)
step = 0
while step * batch_size < training_iters:
batch_xs, batch_ys = inputX, inputY
batch_xs = batch_xs.reshape([batch_size, n_steps, n_inputs])
sess.run([train_op], feed_dict={
x: batch_xs,
y: batch_ys,
})
if step % 20 == 0:
print(sess.run(accuracy, feed_dict={
x: batch_xs,
y: batch_ys,
}))
step += 1
将tf.Session()作为sess的:
init=tf.global_variables_initializer()
sess.run(初始化)
步长=0
步骤*批量大小<培训内容:
批次X,批次Y=输入X,输入Y
batch_xs=batch_xs.重塑([批次大小,n_步数,n_输入])
分段运行([列车运行],进站指令={
x:batch_xs,
y:批次y,
})
如果步骤%20==0:
打印(sess.run)(精度、进给量)={
x:batch_xs,
y:批次y,
}))
步骤+=1
然后,我收到一条错误消息
无法将大小为3822的数组重塑为形状(64546,7)
如果有人能向我解释这是如何工作和/或如何解决问题,那就太好了
谢谢LSTM单元有输入,并且LSTM单元会随着时间的推移展开,以用于一个序列的不同输入。由于我们使用批学习算法,我们需要提供一批输入。因此,tesorflow中的LSTM输入具有一定的形状(批次大小X展开的时间步长X输入大小) 就你而言
现在,您的LSTM模型输入形状将是(批次大小X W X V),其中批次大小为LSTM单元格有输入,并且LSTM单元格将随着时间的推移展开,用于一个序列的不同输入。由于我们使用批学习算法,我们需要提供一批输入。因此,tesorflow中的LSTM输入具有一定的形状(批次大小X展开的时间步长X输入大小) 就你而言
现在,您的LSTM模型输入形状将是(批次大小X W X V),其中批次大小是为什么不打印张量形状以查看其尺寸?输入应该是
[批次大小、时间步长、样本大小]
。在您的数据集中,我假设每一行都有一个长度为7的序列数据。因此,选择N行作为您的batch\u size
,time\u steps
是7,如果每个样本的一个热编码向量将是sample\u dim
,那么,我的批大小是x:(546,7)和y:(546,1)。我的功能不是一个热门功能,因此如果我理解,我将没有示例尺寸参数?为什么不打印张量形状以查看其尺寸?输入应为[批次尺寸、时间步长、示例尺寸]
。在您的数据集中,我假设每一行都有一个长度为7的序列数据。因此,选择N行作为您的batch\u size
,time\u steps
是7,如果每个样本的一个热编码向量将是sample\u dim
,那么,我的批大小是x:(546,7)和y:(546,1)。我的功能不是一个热门的,所以如果我理解的话,我就不会有一个示例dim参数了?谢谢你的回复,我现在更好地理解了!谢谢你的回复,我现在更明白了!