Keras尝试预测多个值时出现“检查输入时出错”

詹姆斯·L

我有一个长度为4的输入向量,长度为2的输出向量的网络。我试图同时预测多个输入。如果我只想预测一个,则可以执行以下操作,并且可以正常工作:

in = numpy.array( [ [1,2,3,4] ] )
self.model.predict(in)
# prediction = [ [1,2] ] 

但是,当我尝试传递多个输入时,我得到 ValueError: Error when checking input: expected dense_1_input to have shape (4,) but got array with shape (1,)

in = numpy.array( [
[1,2,3,4],
[1,2,3,4]
]
)
#OR
in = numpy.array( [
[ [1,2,3,4] ],
[ [1,2,3,4] ]
]
)
self.model.predict(in)
#ERR

我究竟做错了什么?

编辑:

代码=

    model = Sequential()
    model.add(Dense(24, input_dim=4, activation='relu'))
    model.add(Dense(24, activation='relu'))
    model.add(Dense(4, activation='linear'))
    model.compile(loss='mse',
                  optimizer=Adam(lr=self.learning_rate))

    print(batch_arr[:,3][0])
    predictions = self.model.predict(batch_arr[:,3][0])
    print(predictions)
    print(batch_arr[:,3])
    predictions = model.predict(batch_arr[:,3])

输出=

[[-0.00441936 -0.20398824 -0.08134908  0.09739554]]
[[ 0.01860509 -0.01136071]]
[array([[-0.00441936, -0.20398824, -0.08134908,  0.09739554]])
 array([[-0.00517939,  0.38975933, -0.11951023, -0.9718224 ]])
 array([[0.00272119, 0.0025476 , 0.002645  , 0.03973542]])
 array([[-0.00421809, -0.01006362, -0.07795483, -0.16971247]])
 array([[-0.00904593,  0.19332681, -0.10655871, -0.64757587]])
 array([[ 0.00654432,  0.00347247, -0.15332555, -0.47302148]])
 array([[-0.01921821, -0.17354519, -0.20207744, -0.58569029]])
 array([[ 0.00661377,  0.20038962, -0.16278598, -0.80983334]])
 array([[-0.00348096,  0.18171964, -0.07072813, -0.38913168]])
 array([[-0.01268919, -0.00548544, -0.08286095, -0.27108632]])
 array([[ 0.01077598, -0.19254374, -0.004982  ,  0.33175341]])
 array([[-4.37101750e-04, -5.68196965e-01, -1.99532537e-01,
         1.10581883e-01]])
 array([[ 0.00657382, -0.19263146, -0.00402872,  0.33368607]])
 array([[ 0.00677398,  0.19760551, -0.00076944, -0.25153403]])
 array([[ 0.00261579,  0.19642629, -0.13894668, -0.71894379]])
 array([[-0.0221003 ,  0.37477368, -0.03765055, -0.63564477]])
 array([[-0.0110009 ,  0.37599703, -0.0574645 , -0.66318148]])
 array([[ 0.00277214,  0.19763152,  0.00343971, -0.25211181]])
 array([[-9.31810654e-05, -2.06245307e-01, -8.09019674e-02,
         1.47356796e-01]])
 array([[ 0.00709025, -0.37636771, -0.19725323, -0.11396513]])
 array([[ 0.00015344, -0.01233088, -0.07851076, -0.11956039]])
 array([[ 0.01077811, -0.18439307, -0.19043179, -0.34107231]])
 array([[-0.01460483,  0.18019651, -0.05036345, -0.35505252]])
 array([[-0.0127989 ,  0.19071515, -0.08828268, -0.58871071]])
 array([[ 0.01072609,  0.00249456, -0.00580012,  0.0409061 ]])
 array([[ 0.01062156,  0.00782762, -0.17898265, -0.57245695]])
 array([[-0.01180104, -0.37085843, -0.1973209 , -0.23782701]])
 array([[-0.00849912, -0.00780031, -0.07940117, -0.21980343]])
 array([[ 0.00672477,  0.00246062, -0.00160252,  0.04165408]])
 array([[-0.02268911, -0.36534914, -0.21379125, -0.36284594]])
 array([[-0.00865513, -0.20170279, -0.08379724,  0.0468145 ]])
 array([[-0.0256848 ,  0.17922475, -0.03098346, -0.33335449]])]
 #ERR

编辑:当我打印出形状时,batch_arr[:,3]得到的(32,)不是(32,4)我所期望的。因此,我猜想numpy数组不知道其内部数组的形状。有简单的方法可以解决此问题吗?这可能是问题的根源

詹姆斯·L

问题是我创建numpy数组的方式。我用可变大小的索引创建了它,因此它不知道它的形状(32,4),只是它是(32,)。重新格式化逻辑以确保数组从一开始就始终是一个设置的宽度,从而使数组成为(32,4),从而可以进行预测。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python(Keras):值错误:检查输入时出错

Keras:ValueError:检查输入时出错

Python Keras LSTM“检查输入时出错”

尝试将可变序列输入到 keras LSTMs ValueError:检查输入时出错?

Keras 和 Python 3.6:检查顺序模型的输入时出错

Java 在 while 循环中尝试使用多个输入时出错

尝试在 Snakemake 中使用多个文件作为输入时出错

检查用户输入时出错

Keras - 无法将我的输入数据释放到 keras 模型。检查输入时出错

当我检查多个选项输入时获取类的值

Keras Conv1d输入形状:检查输入时出错

尝试从mode.evaluate Keras神经网络返回多个指标的值时出现错误

Python-尝试控制输入时出错

Keras卷积形状的尺寸不规则(检查模型输入时出错)

尝试访问某些目录时出现输入/输出错误

尝试安装VOLTTRON代理时出现输入/输出错误

具有LSTM单元的Keras RNN可基于多个输入时间序列预测多个输出时间序列

Keras LSTM:检查模型输入尺寸时出错

尝试在循环语句内的开关中获取多个输入时出错

在Keras中使用Functional API检查模型输入时出现错误

将多个输入传递给Keras模型时出错

使用 terraform 创建跨帐户角色时出现错误错误:要求用户输入时出错:无法解析变量 policy_arns 的值

尝试使用JavaScript获取输入数字的值时出错

尝试序列化多个关注者时出错:尝试获取序列化程序“UserSerializer”上的字段“email”的值时出现 AttributeError

检查重复的用户输入数组值时出错

Keras:ValueError:检查模型输入时出错:传递给模型的Numpy数组列表不是模型预期的大小

当我使用secureTextEntry = {true}时,输入会在尝试再次键入时重置值

尝试过滤流作业查询中的输入时出错

为什么在Keras中尝试构建具有多个输入的体系结构时会出错?