基于python3.6的tensorflow模型训练报错

问题遇到的现象和发生背景

训练模型报错,无法正常训练

问题相关代码,请勿粘贴截图

def load_img(path,label):
images = tf.io.read_file(path)
images = tf.image.decode_bmp(images,channels=3)
images = tf.image.resize(images,[256,256])
images = tf.cast(images,tf.float32)
images = images/255
return images,label
ATUOTUNE = tf.data.experimental.AUTOTUNE
BATHSIZE = 32
train_ds = train_ds.map(load_img,num_parallel_calls=ATUOTUNE)
test_ds = test_ds.map(load_img,num_parallel_calls=ATUOTUNE)
train_ds = train_ds.repeat().shuffle(300).batch(BATHSIZE)
test_ds = test_ds.batch(BATHSIZE)
models = Sequential()
models.add(layers.Conv2D(filters=16,kernel_size=(3,3),input_shape = (256,256,3),activation='relu'))
models.add(layers.MaxPooling2D(pool_size=(3,3)))
models.add(layers.Dropout(0.25))
models.add(layers.Conv2D(filters=32,kernel_size=(3,3),activation='relu'))
models.add(layers.MaxPooling2D(pool_size=(3,3)))
models.add(layers.Dropout(0.25))
models.add(layers.Conv2D(filters=64,kernel_size=(3,3),activation='relu'))
models.add(layers.MaxPooling2D(pool_size=(3,3)))
models.add(layers.Dropout(0.25))
models.add(layers.Conv2D(filters=128,kernel_size=(3,3),activation='relu'))
models.add(layers.MaxPooling2D(pool_size=(3,3)))
models.add(layers.Dropout(0.25))
models.add(layers.Dense(10,activation='relu'))
models.add(layers.Dense(2))
models.compile(optimizer='adam',loss=losses.SparseCategoricalCrossentropy(from_logits=True),metrics=['accuracy'])
models.summary()
epochss = 3
train_count = len(train_path)
test_count = len(test_path)
step_per_epoch = train_count/BATHSIZE
validation_step = test_count/BATHSIZE
h = models.fit(train_ds,validation_data=test_ds,epochs=epochss,steps_per_epoch=step_per_epoch,validation_steps=validation_step)

运行结果及报错内容

Epoch 1/3
2022-04-03 19:51:46.392298: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:185] None of the MLIR Optimization Passes are enabled (registered 2)

我的解答思路和尝试过的方法
我想要达到的结果

正常训练模型即可

后来我试着卸载了2.6.2的tensorflow,下载回2.3以下的版本又可以训练了

TensorFlow 是哪个版本?
https://www.tensorflow.org/guide/keras/customizing_what_happens_in_fit?hl=zh-cn

是不是在安装cuda前没有安装visual stdio

如果你先用tensorflow2.6.2版本的,需要先卸载相应的支持库,比如addons等,然后重新安装:

pip install tensorflow-cpu==2.6.2

tensorflow训练模型的话,如果报错一般就是1.x版本和2.x版本的一些兼容问题,可以卸载干净后重装,或者建一个虚拟环境就好了

MLIR被用作另一种实现和优化Tensorflow逻辑的解决方案。这个信息是良性的,说MLIR没有被使用。这是TF 2.3中预期的,基于MLIR的实现仍在开发和验证中,因此最终用户通常不希望使用MLIR实现,而是希望使用非MLIR特性的完整实现