neural-network - Keras 序列神经网络

标签 neural-network keras

我仍在学习神经网络,坦白说,我也在学习 Python。这是我在 keras 中训练的基本神经网络:

from keras.models import Sequential
from keras.layers import Dense
import numpy
# fix random seed for reproducibility
numpy.random.seed(7)

# load pima indians dataset
dataset = numpy.loadtxt("Final_Data.csv", delimiter=",")
# split into input (X) and output (Y) variables
X = dataset[:,0:4]
Y = dataset[:,4]

# create model
model = Sequential()
model.add(Dense(3, input_dim=4, activation='sigmoid'))
model.add(Dense(1, activation='sigmoid'))

# Compile model
model.compile(loss='mean_squared_error', optimizer='sgd', metrics=['accuracy'])


# Fit the model
model.fit(X, Y, epochs=100, batch_size=400)

# evaluate the model
scores = model.evaluate(X, Y)
print("\n%s: %.2f%%" % (model.metrics_names[1], scores[1]*100))

如果我现在想给出自己的 4 个输入来查看神经网络输出什么,命令会是什么样子?我认为这是 model.predict 命令,但是当我在括号内给它 4 个输入时:

model.predict(0.72804878,0.784146341,0.792682927,0.801219512)

我回来了:

TypeError: predict() takes at most 4 arguments (5 given)

现在我猜我完全错误地使用了预测命令,有什么建议吗?

最佳答案

来自 keras 的文档:

predict(self, x, batch_size=32, verbose=0)

这就是为什么 predict 需要 4 个参数。

x 参数是您需要正确指定的参数。

在您的情况下,x 需要是形状为 (1, 4) 的 numpy 数组,即示例的数量以及每个示例的大小(特征向量大小)。

试试这个:

x = np.array([[0.72804878,0.784146341,0.792682927,0.801219512]])
model.predict(x)

关于neural-network - Keras 序列神经网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46134434/

相关文章:

python - Keras function api,手动设置权重到层

machine-learning - 添加更多的转换层会增加损失并降低准确性,Tensorflow

neural-network - 教学神经网络 : Bipolar XOR

python - Keras Flatten Conv3D ValueError Flatten 的输入形状未完全定义

python - Keras、Tensorflow - 计算指标时 K.epsilon 的含义是什么

Keras LSTM 时间分布式,有状态

python - 在 Python 中使用 Keras 的神经网络中的特征重要性图

hadoop - 神经网络并行训练,使用 Hadoop 还是 gpu 更好?

Python:为 ConvNet 创建具有多个 channel 的时间序列

python - 如何将多个 NumPy 数组输入 Keras 中的深度学习网络?