TypeError: Value passed to parameter 'input' has DataType int64 not in list of allowed values: float16, bfloat16, float32, float64
TypeError: Value passed to parameter 'input' has DataType int64 not in list of allowed values: float16, bfloat16, float32, float64
我正在尝试 运行 一个模型并预测来自 mnist kaggle 数据集的测试数据。但是我在尝试 predict.What 时遇到错误,这是原因和解决方案吗?
model = tf.keras.Sequential([
tf.keras.layers.Conv2D(32, (3,3), padding='same', activation=tf.nn.relu,
input_shape=(28, 28, 1)),
tf.keras.layers.MaxPooling2D((2, 2), strides=2),
tf.keras.layers.Conv2D(64, (3,3), padding='same', activation=tf.nn.relu),
tf.keras.layers.MaxPooling2D((2, 2), strides=2),
tf.keras.layers.Flatten(input_shape=(28, 28, 1)),
tf.keras.layers.Dense(128, activation=tf.nn.relu),
tf.keras.layers.Dense(10, activation=tf.nn.softmax)
])
test = pd.read_csv("test.csv")
test.head()
CHANNELS = 1
IMAGE_SIZE = 28
IMAGE_WIDTH, IMAGE_HEIGHT = IMAGE_SIZE, IMAGE_SIZE
test = test.values.reshape(-1, IMAGE_WIDTH, IMAGE_HEIGHT, CHANNELS)
predictions = model.predict_classes(test, verbose=1)
TypeError: Value passed to parameter 'input' has DataType int64 not in
list of allowed values: float16, bfloat16, float32, float64
正如 TypeError 所说,我认为 test
数据框包含 int
值,因此您必须像这样将类型更改为浮动:
test = test.astype('float')
test = test.values.reshape(-1, IMAGE_WIDTH, IMAGE_HEIGHT, CHANNELS)
predictions = model.predict_classes(test, verbose=1)
我正在尝试 运行 一个模型并预测来自 mnist kaggle 数据集的测试数据。但是我在尝试 predict.What 时遇到错误,这是原因和解决方案吗?
model = tf.keras.Sequential([
tf.keras.layers.Conv2D(32, (3,3), padding='same', activation=tf.nn.relu,
input_shape=(28, 28, 1)),
tf.keras.layers.MaxPooling2D((2, 2), strides=2),
tf.keras.layers.Conv2D(64, (3,3), padding='same', activation=tf.nn.relu),
tf.keras.layers.MaxPooling2D((2, 2), strides=2),
tf.keras.layers.Flatten(input_shape=(28, 28, 1)),
tf.keras.layers.Dense(128, activation=tf.nn.relu),
tf.keras.layers.Dense(10, activation=tf.nn.softmax)
])
test = pd.read_csv("test.csv")
test.head()
CHANNELS = 1
IMAGE_SIZE = 28
IMAGE_WIDTH, IMAGE_HEIGHT = IMAGE_SIZE, IMAGE_SIZE
test = test.values.reshape(-1, IMAGE_WIDTH, IMAGE_HEIGHT, CHANNELS)
predictions = model.predict_classes(test, verbose=1)
TypeError: Value passed to parameter 'input' has DataType int64 not in list of allowed values: float16, bfloat16, float32, float64
正如 TypeError 所说,我认为 test
数据框包含 int
值,因此您必须像这样将类型更改为浮动:
test = test.astype('float')
test = test.values.reshape(-1, IMAGE_WIDTH, IMAGE_HEIGHT, CHANNELS)
predictions = model.predict_classes(test, verbose=1)