python – Keras:使用数组作为输入进行训练
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – Keras:使用数组作为输入进行训练,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1699字,纯文字阅读大概需要3分钟。
内容图文
我对机器学习很陌生,最近我开始学习如何使用库Keras在Python上实现基本的神经网络.
我从一个基本的例子开始(训练网络,以便它可以预测值y = f(x)= x).
model = Sequential()
model.add(Dense(10, input_dim=1, activation='relu'))
model.add(Dense(10, activation='relu'))
model.add(Dense(10, activation='relu'))
model.add(Dense(1))
model.compile(loss='mse', optimizer='adam')
data = np.array([x for x in range(0,1000)])
for i in range(0, 1000):
model.fit([np.array([data[i]]), np.array([data[i]]), nb_epoch=1, batch_size=1, verbose=0)
我现在想应用一个类似的算法训练网络,所以从整数列表L,它将返回我的函数f的三个值的列表(基本上:[f(L,0),f(L,1) ,f(L,2)]).所以这次输入是一个包含5个整数的数组,所需的返回输出是3个浮点数的列表.
但是,我没有设法在for循环中正确编码fit方法,我得到一条错误消息:“预计会看到1个数组,而是得到以下2个数组的列表:……”.我尝试使用Dense构造函数的一些参数(input_dim,input_shape,input_size),但我似乎仍然无法使它工作…
所以基本上,有没有人知道如何正确实现一个网络,将一个数组作为输入并返回一个不同长度的数组?
非常感谢您的帮助和支持,
– smgr
解决方法:
如果您的最终输出有3个维度,则您的最后一个Dense图层必须有3列.
你这样做
model.add(Dense(3))
如果您的输入有5个维度,则您的第一个密集矩阵将有5行.
这是在第一个Dense图层中使用input_dim参数完成的.
model.add(Dense(10, input_dim=2, activation='relu'))
您现在可以看到,第一个密集层矩阵是2行×10列矩阵.由于下一个矩阵必须有10行(因此尺寸将匹配),因此在下一层中您只需定义列数.因此,您将单个维度参数传递给每个后续层.
由于这是一个回归问题,使用’mse’作为损失应该有效(正如您正确选择的那样).
在这种情况下,您的数据集应该是两个矩阵:
>带有输入样本的输入矩阵(每个属性一列,所以5列). N乘5矩阵
>带有输出样本的输出矩阵(每个属性一列,因此3列). N乘3矩阵
在这两种情况下,您应该具有相同的行数:样本总数N.
内容总结
以上是互联网集市为您收集整理的python – Keras:使用数组作为输入进行训练全部内容,希望文章能够帮你解决python – Keras:使用数组作为输入进行训练所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。