【发布时间】:2020-03-18 03:27:57
【问题描述】:
所以我有这行代码:
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),
File "C:\Users\Boche\AppData\Local\conda\conda\envs\ExerFloorTracking\lib\site-packages\keras\initializers.py", line 218, in __call__
dtype=dtype, seed=self.seed)
File "C:\Users\Boche\AppData\Local\conda\conda\envs\ExerFloorTracking\lib\site-packages\keras\backend\tensorflow_backend.py", line 4139, in random_uniform
dtype=dtype, seed=seed)
File "C:\Users\Boche\AppData\Local\conda\conda\envs\ExerFloorTracking\lib\site-packages\tensorflow_core\python\ops\random_ops.py", line 245, in random_uniform
rnd = gen_random_ops.random_uniform(shape, dtype, seed=seed1, seed2=seed2)
File "C:\Users\Boche\AppData\Local\conda\conda\envs\ExerFloorTracking\lib\site-packages\tensorflow_core\python\ops\gen_random_ops.py", line 822, in random_uniform
name=name)
File "C:\Users\Boche\AppData\Local\conda\conda\envs\ExerFloorTracking\lib\site-packages\tensorflow_core\python\framework\op_def_library.py", line 632, in _apply_op_helper
param_name=input_name)
File "C:\Users\Boche\AppData\Local\conda\conda\envs\ExerFloorTracking\lib\site-packages\tensorflow_core\python\framework\op_def_library.py", line 61, in _SatisfiesTypeConstraint
", ".join(dtypes.as_dtype(x).name for x in allowed_list)))
TypeError: Value passed to parameter 'shape' has DataType float32 not in list of allowed values: int32, int64
训练和验证数据的形状和类型:
X training:
(28581, 46, 62, 1)
int32
y training:
(28581, 8)
int32
X validation:
(13720, 46, 62, 1)
int32
y validation:
(13720, 8)
batch size 设置为 100,epochs 设置为 20。 我不明白为什么会出现错误。所有需要为整数的值都是整数。 我也不明白参数“shape”是什么意思。 如果您没有看到代码中有什么问题,如果您能向我解释这个错误以及触发它的原因,我将不胜感激。
编辑:我忘了添加我正在谈论的代码行。我现在将其添加到帖子中。这是您在帖子中看到的第一行代码。
【问题讨论】:
-
分享你的代码怎么样?它可能会让事情更清楚。错误说您尝试分配浮点值,但这不能是浮点数,它应该是整数。
-
确保您传递的参数是 int 数据类型,在某个地方您可能使用了除法运算符,需要将其转换为
int。 -
我刚刚编辑了帖子以包含我正在谈论的代码行
标签: python tensorflow keras anaconda conda