TensorFlow的新手,所以为新手问题道歉。
以下tutorial之后,我使用数字数据代替了图像数据。
加载数据集:
train_dataset_url = "xxx.csv"
train_dataset_fp = tf.keras.utils.get_file(
fname=os.path.basename(train_dataset_url),
origin=train_dataset_url)
制作训练数据集:
batch_size = 32
train_dataset = tf.contrib.data.make_csv_dataset(
train_dataset_fp,
batch_size,
column_names=column_names,
label_name=label_name,
num_epochs=1)
使用以下方法训练分类模型:
model = tf.keras.Sequential([
tf.keras.layers.Dense(10, activation=tf.nn.relu, input_shape=(1,)),
tf.keras.layers.Dense(10, activation=tf.nn.relu),
tf.keras.layers.Dense(4)
])
但是当我用相同的输入“测试”模型时:
predictions = model(features)
我收到错误:
InvalidArgumentError: cannot compute MatMul as input #0(zero-based) was expected to be a float tensor but is a int32 tensor [Op:MatMul]
我可能错过了一些基本知识。我觉得我需要在某个地方指定类型。
答案 0 :(得分:1)
根据我的假设,您在模型中提供的数据是一个numpy数组。错误指出模型需要dtype = float32或float64的张量。您正在提供一个int32 numpy数组。因此,无论您在哪里创建一个numpy数组,都只需将dtype提到为float32。