美文网首页
2019-07-23 LSTM的输入输出

2019-07-23 LSTM的输入输出

作者: 七月那个阿瓜呀 | 来源:发表于2019-07-23 17:10 被阅读0次
  1. 6 种用 LSTM 做时间序列预测的模型结构 - Keras 实现

  2. tf.nn.dynamic_rnn的输出outputs和state含义

  3. numpy之ones,array,asarray

  • batch_size 用minibatch方法时会定义batch_size,即把数据分几份后,每份的大小是多少。

  • iteration 迭代,每个循环的一遍,一次参数更新。用minibatch时就意味着train完一个batch

  • epoch one forward pass and one backward pass of all the training examples, in the neural network terminology.即所有训练数据过一遍,如果数据有300条,你把数据分成了3个batch,batch_size是300 / 3 = 100,3个batch都跑完,即跑了三个iteration,就是一个epoch。

  • episode one a sequence of states, actions and rewards, which ends with terminal state. 如果玩围棋,从头下到尾的一局棋就是一个episode。

  1. keras搭建神经网络

例子①

from keras.models import Sequential
from keras.layers import Dense
from keras.layers import TimeDistributed
from keras.layers import LSTM
# prepare sequence
length = 5
seq = array([i/float(length) for i in range(length)])
# 输入为1个样本,5个步长,1个特征值
X = seq.reshape(1, 5, 1)
# 输出为1个样本,5个步长,1个特征值
y = seq.reshape(1, 5, 1)
# define LSTM configuration
n_batch = 1
# create LSTM
model = Sequential()
# 输入类型为5个步长和1个特征值,return_sequences=True返回整个序列
model.add(LSTM(5, input_shape=(5, 1), return_sequences=True))
model.add(TimeDistributed(Dense(1)))
model.compile(loss='mean_squared_error', optimizer='adam')
print(model.summary())
# train LSTM
model.fit(X, y, epochs=10, batch_size=n_batch, verbose=2)
# evaluate
result = model.predict(X, batch_size=n_batch, verbose=0)
for layer in model.layers:
    print(layer.output)
for value in result[0,:,0]:
    print('%.1f' % value)

实践证明,使用model.add(TimeDistributed(Dense(1)))误差<直接用model.add((Dense(1)))
虽然两者使用参数数目相同,返回数据类型也都相同

例子②

# 简易多层感知神经网络示例
from keras.models import Sequential
from keras.layers import Dense
import numpy as np
import numpy
# 加载,预处理数据集
dataset = numpy.loadtxt("pima-indians-diabetes.csv", delimiter=",")
X = dataset[:100,0:8]
Y = dataset[:100,8]
# 1. 定义模型
model = Sequential()
model.add(Dense(12, input_dim=8, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
# 2. 编译模型
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
# 3. 训练模型
history = model.fit(X, Y, nb_epoch=10, batch_size=10)
# 4. 评估模型
loss, accuracy = model.evaluate(X, Y)
print("\nLoss: %.2f, Accuracy: %.2f%%" % (loss, accuracy*100))
# 5. 数据预测
probabilities = model.predict(X)

for layer in model.layers:  # 获取每一层的输出shape
    print(layer.output)

predictions = [float(np.round(x)) for x in probabilities]
accuracy = numpy.mean(predictions == Y)
print("Prediction Accuracy: %.2f%%" % (accuracy*100))

相关文章

  • 2019-07-23 LSTM的输入输出

    6 种用 LSTM 做时间序列预测的模型结构 - Keras 实现 keras中TimeDistributed和R...

  • tensorflow 双向LSTM搭建

    和单向LSTM搭建的步骤是一样的: 设定超参数(隐藏向量的维度,学习率,输入输出维度等) 定义输入输出placeh...

  • LSTM的输入与输出

    2020/02/07 -今天重新开启代码的测试过程,发现对于LSTM的输入输出还是不够理解,所以这部分今天需要再把...

  • 如何理解lstm的输入输出

    例如这样一个数据集合,总共100条句子,每个句子20个词,每个词都由一个80维的向量表示。在lstm中,单个样本即...

  • 详解 LSTM

    今天的内容有: LSTM 思路 LSTM 的前向计算 LSTM 的反向传播 关于调参 LSTM 长短时记忆网络(L...

  • pytorch1.0 搭建LSTM网络

    torch.nn包下实现了LSTM函数,实现LSTM层。多个LSTMcell组合起来是LSTM。 LSTM自动实现...

  • keras lstm 杂记

    1、例子 情感分析 情感分析(苏剑林) lstm多曲线预测 lstm多曲线预测(原文) 2、lstm参数 lstm...

  • keras lstm return sequence参数理解

    使用keras构建多层lstm网络时,除了最后一层lstm,中间过程的lstm中的return sequence参...

  • lstm理解

    本文是自己对于lstm的理解的总结,但是最好的文章帮助理解lstm一定是这篇Understanding LSTM ...

  • LSTM Custom

    def InitLSTM(self,LSTM,Name,InputSize) LSTM.Forget_Wight...

网友评论

      本文标题:2019-07-23 LSTM的输入输出

      本文链接:https://www.haomeiwen.com/subject/bhpolctx.html