Int*_*ion 5 python dataset keras tensorflow
Google Colab(python 2.7)或我的本地系统(python 3.6)上的 Tensorflow 1.10 使用来自https://www.tensorflow.org/guide/keras 的示例代码 代码是
import numpy as np
import tensorflow as tf
from tensorflow import keras
data = np.random.random((1000, 32))
labels = np.random.random((1000, 10))
dataset1 = tf.data.Dataset.from_tensor_slices((data, labels))
dataset1 = dataset1.batch(32)
dataset1 = dataset1.repeat()
model = keras.Sequential()
model.add(keras.layers.Dense(64, activation='relu'))
model.add(keras.layers.Dense(64, activation='relu'))
model.add(keras.layers.Dense(10, activation='softmax'))
model.compile(optimizer=tf.train.AdamOptimizer(0.001),
loss='categorical_crossentropy',
metrics=['accuracy'])
model.fit(dataset1, epochs=10, steps_per_epoch=30)
Run Code Online (Sandbox Code Playgroud)
抛出以下错误:
Error TypeError: Input 'y' of 'Mul' Op has type float32 that does not match type float64 of argument 'x'.
packages/tensorflow/python/framework/op_def_library.pyc in _apply_op_helper(self, op_type_name, name, **keywords)
544 "%s type %s of argument '%s'." %
545 (prefix, dtypes.as_dtype(attrs[input_arg.type_attr]).name,
--> 546 inferred_from[input_arg.type_attr]))
547
548 types = [values.dtype]
TypeError: Input 'y' of 'Mul' Op has type float32 that does not match type float64 of argument 'x'.
Run Code Online (Sandbox Code Playgroud)
model
我遇到了同样的问题,我假设is中使用的默认数据类型是is float32
,并保留该类型。要修复它,只需更改您的代码:numpy
float64
from_tensor_slices
data = np.random.random((1000,32))
labels = np.random.random((1000,10))
Run Code Online (Sandbox Code Playgroud)
到
data = np.random.random((1000,32)).astype(np.float32)
labels = np.random.random((1000,10)).astype(np.float32)
Run Code Online (Sandbox Code Playgroud)
但我确实认为作为教程中的一段示例代码,tensorflow 应该确保它运行。
更新:有一个与此相关的已关闭问题:https ://github.com/tensorflow/tensorflow/issues/22207
归档时间: |
|
查看次数: |
8547 次 |
最近记录: |