【问题标题】:ValueError: Tensor conversion requested dtype int32 for Tensor with dtype float32 - LSTM Implementation( tensorflow 2.0.0)ValueError:张量转换为 dtype float32 的张量请求 dtype int32 - LSTM 实现(张量流 2.0.0)
【发布时间】:2020-09-07 11:29:22
【问题描述】:

我正在尝试测试不同类型的 LSTM 实现,并在预测时遇到代码中的此错误。

Tensorflow 版本 - '2.0.0'


我不会删除这个问题,因为我仍然需要知道出了什么问题。在为模型提供数据时,我是否总是需要担心将 float32 作为数据类型?


示例代码

X = list()
Y = list()
X = [x+1 for x in range(20)]
Y = [y * 15 for y in X]

X = np.array(X,dtype=int)
Y=  np.array(Y,dtype=int)

X=array(X).reshape(20, 1, 1)


model = Sequential()
model.add(LSTM(50, activation='relu', input_shape=(1, 1)))
model.add(Dense(1))
model.compile(optimizer='adam', loss='mse')
print(model.summary())

model.fit(X, Y, epochs=2, validation_split=0.2, batch_size=5)


test_input = np.array(30,dtype=int)
test_input = test_input.reshape((1, 1, 1))
test_output = model.predict(test_input)   <---- ERROR IN THIS LINE

错误:

ValueError Traceback (most recent call last)
~\AppData\Local\Continuum\anaconda3\envs\PythonCPU\lib\site-packages\tensorflow_core\python\framework\op_def_library.py in _apply_op_helper(self, op_type_name, name, **keywords)
    526                 as_ref=input_arg.is_ref,
--> 527                 preferred_dtype=default_dtype)
    528           except TypeError as err:

~\AppData\Local\Continuum\anaconda3\envs\PythonCPU\lib\site-packages\tensorflow_core\python\framework\ops.py in internal_convert_to_tensor(value, dtype, name, as_ref, preferred_dtype, ctx, accept_composite_tensors)
   1270           "Tensor conversion requested dtype %s for Tensor with dtype %s: %r" %
-> 1271           (dtype.name, value.dtype.name, value))
   1272     return value

ValueError: Tensor conversion requested dtype int32 for Tensor with dtype float32: <tf.Tensor 'sequential/lstm/MatMul/ReadVariableOp:0' shape=(1, 200) dtype=float32>


During handling of the above exception, another exception occurred:
.....
.....
.....
TypeError: Input 'b' of 'MatMul' Op has type float32 that does not match type int32 of argument 'a'.

【问题讨论】:

  • 您好,如果您找到了解决方案,请发布您自己问题的答案,然后将其标记为已解决。

标签: python tensorflow machine-learning


【解决方案1】:

我尝试了不同的数据类型排列,结果发现我只需将所有数组中的所有数据类型更改为“float32”即可解决错误。

【讨论】:

    猜你喜欢
    • 2019-04-28
    • 1970-01-01
    • 2020-10-22
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 2018-12-10
    • 2019-08-26
    • 1970-01-01
    相关资源
    最近更新 更多