使用张量流时需要更高的准确性,顺序预测

时间:2018-07-31 06:16:44

标签: python tensorflow machine-learning sequential

语言是Python 3系列。 使用Tensorflow。

这是我编写的代码。

from keras.models import Sequential
from keras.layers import Dense
from sklearn.datasets import make_regression
from sklearn.preprocessing import MinMaxScaler
from numpy import array
import numpy as np
import random

xx1 = array(random.sample(range(0,1000), 1000))
xx2 = array(random.sample(range(0,2000), 1000))
xx3 = array(random.sample(range(0,4000), 1000))

xx = np.dstack((xx1, xx2, xx3))


yy = np.array(xx1*xx2+xx3 +5)


model = Sequential()
model.add(Dense(4, input_dim=3, activation='relu'))
model.add(Dense(4, activation='relu'))
model.add(Dense(1, activation='linear'))
model.compile(loss='mse', optimizer='adam')
model.fit(xx[0], yy, epochs=1000, verbose=0)
## xx[0] : 1000*3 input dataset, yy : 1000*1 output dataset
# new instance where we do not know the answer
Xnew = array([[15, 8, 3]])
##predicted value : 15*8+3+5 = 128
# make a prediction
ynew = model.predict(Xnew)
# show the inputs and predicted outputs

print("xx[0] : %s" % (xx[0]))
print("yy : %s" % (yy))
print("XinPut=%s, Predicted=%s" % (Xnew[0], ynew[0]))

我编写了这段代码。 xx [0]是1000 * 3输入数据集。 yy是1000 * 1输出数据集。

我将yy设为xx1 * xx2 + xx3 + 5,xx1是xx [0,0],xx2是xx [0,1],xx3是xx [0,2]

我想预测[15,8,3]的输出。 我认为,它应该接近128,为15 * 8 + 3的结果,但实际上,距离还很远。恰好超过10000。 我想更准确地输出此输出,但不知道如何输出。 我该怎么办?

1 个答案:

答案 0 :(得分:0)

如果您要构建模型以预测序列,请使用递归神经网络。由于您使用的是Keras,因此请添加一些LSTM或GRU层以获得更好的结果。您可以在下面的链接中了解有关这些图层的更多信息

https://keras.io/layers/recurrent/#rnn