python输入数组并计算_python – Keras:使用数组作为输入进行训练

我对机器学习很陌生,最近我开始学习如何使用库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.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值