所以我有这行代码: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"]))
解决了问题。
添加回答
举报
0/150
提交
取消