Numpy CNN Uint8数据类型问题

Numpy CNN Uint8数据类型问题,numpy,keras,cnn,Numpy,Keras,Cnn,我正在尝试使用Keras为MNIST制作一个CNN,但我在代码方面有一些问题。 我经常会遇到这样的错误: TypeError: Value passed to parameter 'input' has DataType uint8 not in list of allowed values: float16, bfloat16, float32, float64 这是我的密码: import numpy as np import tensorflow as tf from tenso

我正在尝试使用Keras为MNIST制作一个CNN,但我在代码方面有一些问题。 我经常会遇到这样的错误:

    TypeError: Value passed to parameter 'input' has DataType uint8 not in list of allowed values: float16, bfloat16, float32, float64
这是我的密码:

import numpy as np
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras.layers import Dense, Conv2D, Dropout, MaxPooling2D
from tensorflow.keras.callbacks import TensorBoard
from tensorflow.keras.utils import to_categorical
(Train_Data, Train_Labels), (Test_Data, Test_Labels) = tf.keras.datasets.mnist.load_data()


Train_Data = Train_Data.reshape(60000,28,28,1)
Test_Data = Test_Data.reshape(10000,28,28,1)

def save(model):
    model.save("CNN")
def load(name):
    model = tf.keras.models.load_model(name)

model = keras.Sequential()
model.add(Conv2D(784, kernel_size=3, activation='relu'))
model.add(MaxPooling2D(pool_size=(5,5)))

model.add(Dropout(.2))
model.add(keras.layers.Flatten())
model.add(Dense(25, activation='relu'))
model.add(Dense(10, activation='softmax'))

model.compile(optimzer='adam', loss="mse", metrics=['accuracy'])



model.fit(Train_Data, Train_Labels)

我不知道该怎么办,希望您能提供帮助,

MNIST数据的原始图像是范围[0255]内的uint8类型值,但是在训练CNN之前,您需要对其进行规范化。通常需要将其规格化为零附近的某个统一边界,例如[-0.5,0.5]。可以通过添加以下行来执行此操作:

Train_Data = Train_Data / 255 - 0.5
Test_Data = Train_Data / 255 - 0.5