为了账号安全,请及时绑定邮箱和手机立即绑定

了解 Keras 错误: 类型错误: 传递给参数“shape” 的值具有数据类型 float3

了解 Keras 错误: 类型错误: 传递给参数“shape” 的值具有数据类型 float3

狐的传说 2022-09-06 15:57:31
所以我有这行代码:history = model.fit(X_train, y_train, batch_size=batch_size, epochs=epochs, verbose=1, validation_data=(X_val, y_val))这会引发此错误:File "CNN.py", line 125, in model    history = model.fit(X_train, y_train, batch_size=batch_size, epochs=epochs, verbose=1, validation_data=(X_val, y_val))  File "C:\Users\Boche\AppData\Local\conda\conda\envs\ExerFloorTracking\lib\site-packages\keras\engine\training.py", line 952, in fit    batch_size=batch_size)  File "C:\Users\Boche\AppData\Local\conda\conda\envs\ExerFloorTracking\lib\site-packages\keras\engine\training.py", line 677, in _standardize_user_data    self._set_inputs(x)  File "C:\Users\Boche\AppData\Local\conda\conda\envs\ExerFloorTracking\lib\site-packages\keras\engine\training.py", line 589, in _set_inputs    self.build(input_shape=(None,) + inputs.shape[1:])  File "C:\Users\Boche\AppData\Local\conda\conda\envs\ExerFloorTracking\lib\site-packages\keras\engine\sequential.py", line 221, in build    x = layer(x)  File "C:\Users\Boche\AppData\Local\conda\conda\envs\ExerFloorTracking\lib\site-packages\keras\engine\base_layer.py", line 431, in __call__    self.build(unpack_singleton(input_shapes))  File "C:\Users\Boche\AppData\Local\conda\conda\envs\ExerFloorTracking\lib\site-packages\keras\layers\core.py", line 866, in build    constraint=self.kernel_constraint)  File "C:\Users\Boche\AppData\Local\conda\conda\envs\ExerFloorTracking\lib\site-packages\keras\legacy\interfaces.py", line 91, in wrapper    return func(*args, **kwargs)  File "C:\Users\Boche\AppData\Local\conda\conda\envs\ExerFloorTracking\lib\site-packages\keras\engine\base_layer.py", line 249, in add_weight    weight = K.variable(initializer(shape),批大小设置为 100,epochs 设置为 20。我不明白为什么会出现错误。所有需要为整数的值都是整数。我也不明白这里的参数“shape”是什么意思。如果您没有看到代码中有什么错误,如果您能向我解释此错误以及触发它的原因,我将不胜感激。
查看完整描述

1 回答

?
翻阅古今

TA贡献1780条经验 获得超5个赞

所以我解决了这个问题。它来自另一行代码。这些是我的代码中在拟合之前出现的行:


model.add(Dense(num_neurons, activation= cnn_params["activation_output"]))

model.add(Dense(cnn_params["final_dense"]["number_neurons"], activation= cnn_params["activation_output"]))


#COMPILING MODEL

model.compile(loss=keras.losses.categorical_crossentropy, optimizer=keras.optimizers.SGD(lr=learning_rate), metrics=['accuracy', 'categorical_accuracy'])


在第一行中,您可以看到参数 。我使用功能计算了这个参数。该功能的输出是浮点数。将其转换为整数,如下所示:num_neurons


model.add(Dense(int(num_neurons), activation= cnn_params["activation_output"]))

解决了问题。


查看完整回答
反对 回复 2022-09-06
  • 1 回答
  • 0 关注
  • 143 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号