Python 如何获得SimpleRN的多重预测
基本上我的系统是这样的Python 如何获得SimpleRN的多重预测,python,tensorflow,keras,Python,Tensorflow,Keras,基本上我的系统是这样的 4个数组输入,返回1个数组输出 每个数组由12个数字组成 我的模型在下面 n_hidden = 512 input_shape = 12 input_len = 4 model = Sequential() model.add(SimpleRNN(n_hidden, input_shape=(input_len, input_shape), return_sequences=False)) model.add(Dense(n_hidden, activation=
- 4个数组输入,返回1个数组输出
- 每个数组由12个数字组成
n_hidden = 512
input_shape = 12
input_len = 4
model = Sequential()
model.add(SimpleRNN(n_hidden, input_shape=(input_len, input_shape), return_sequences=False))
model.add(Dense(n_hidden, activation="linear"))
model.add(Dense(input_shape, activation="linear"))
opt = Adam(lr=0.001)
model.compile(loss='mse', optimizer=opt)
model.summary()
预测码
in_ = basicdata[0].x[:1]
# in_.shape = (1,4,12)
predicted = []
NUM_DATA = 100
cnt = 0
for i in range(NUM_DATA):
out_ = model.predict(in_)
#it returns only 1 answer.
#out_.shape = (1, 12)
in_ = np.concatenate((in_.reshape(input_shape, input_len)[1:], out_), axis=0).reshape(1, input_shape,input_len)
if cnt == 0:
predicted = out_
else:
predicted = np.concatenate([predicted,out_],axis=0)
cnt = cnt + 1
在这种情况下,model.predict
接受(1,4,12)
并返回一个数组(1,12)
,但是,
我想从多个候选对象中获取(10,12)
样本
我猜SimpleRN的return\u序列
和batch\u size
是相关的,但仍然是模糊的
据我理解
返回\u序列
return\u sequences=False
A、 B,C,D=>(E)
return\u sequences=True
A、 B,C,D=>(A,B,C,D,E)
我想要下面这样的
A、 B,C,D=>(E1,E2,E3,E4,E5)
批量大小
batch\u size
会影响输入形状
我想更改输出。
返回\u sequences=False
(序列分类器):
A、 B,C,D=>(E)
return\u sequences=True
(序列元素分类器):
A、 B,C,D=>(A1,B1,C1,D1)
如果您的模型经过训练可以预测下一个符号,则:
A、 B,C,D=>(B,C,D,E)
可以创建此类模型:
A、 B,C,D=>(E1,E2,E3,E4,E5)
它是seq2seq模型(例如,对于翻译,输入的长度不同于输出的长度)。您必须创建两个RNN:编码器和解码器。据我所知,这不是你想要的
batch\u size
是训练参数,用于实现随机梯度下降。非常感谢您的清晰解释。我可能误解了一些观点。在下一步中,我还需要学习seq2seq
。