【问题标题】:Python Neural Network PredictionPython 神经网络预测
【发布时间】:2017-12-02 23:41:52
【问题描述】:

我正在做一个项目,我有两个不同的号码:

1- 第一个数字最大值为 1500,最小值为 200。

2- 秒数最大值为 200,最小值为 10。

3- 我想创建神经网络,添加样本并训练网络预测最后一个数字,例如:

900,67 equals 87
870,99 equals 100
1000,50 equals ?

什么类型的神经网络可以用于我的项目?

【问题讨论】:

  • 能否提供生成数据的代码或示例数据集?既然你提到了“数字”,我认为这是一个回归问题,所以你可以从“回归的前馈网络”开始。试一试并发布您的 Python 代码,我相信我们可以提供帮助!
  • 两个传感器生成的数据。我会尝试发布代码

标签: neural-network


【解决方案1】:

在本例中,您输入两个值并得到一个。

import numpy as np
import keras
from keras import Sequential
from keras.layers import Dense
import matplotlib.pyplot as plt

MIN = np.random.rand(100)*500
MAX = np.random.rand(100)*500 + 500
x = np.concatenate((MIN.reshape(-1,1),MAX.reshape(-1,1)),axis = 1)
y = np.sin(x[:,0])*500 + np.cos(x[:,1])*500

x_max = x.max()
y_max = y.max()
x = x/x_max
y = (y-y.min())/(y_max-y.min())
model = Sequential()
model.add(Dense(200,input_dim = 2, activation = 'relu'))
model.add(Dense(100, activation = 'sigmoid'))

model.add(Dense(100, activation = 'sigmoid'))
model.add(Dense(1,activation = 'relu'))
opt = keras.optimizers.Adam(learning_rate=0.001, beta_1=0.6, beta_2=0.97, amsgrad=False)
model.compile(loss='mean_squared_error',optimizer=opt , metrics=['mse'])
model.fit(x, y, epochs=10000, batch_size=2)

y_hat = model.predict(x)
plt.figure(figsize=(10,5))
plt.plot(y)
plt.plot(y_hat.reshape(-1))

这是结果:

您需要对神经网络进行预处理和后处理、标准化输入和重新缩放输出。这是输入:

使用示例:

In [10]: model.predict(np.array([0.234,0.567]).reshape(-1,2))
Out[10]: array([[0.61975896]], dtype=float32)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-06
    • 2017-12-28
    • 1970-01-01
    • 1970-01-01
    • 2018-11-06
    • 2018-01-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多