求助:model.fit 报错

 使用的tensorflow2.6.0版本,

#一、导入处理包
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
import h5py
import tensorflow.keras
import os, random, shutil


#二、指定文件夹路径

base_dir = 'D:\CNN\chuli'

train_dir = os.path.join(base_dir, 'train/')  #指定训练集路径
validation_dir = os.path.join(base_dir, 'validation/')  #指定验证集路径

train_BT_dir = os.path.join(train_dir, 'BT')  # directory with our training BT pictures
train_HP_dir = os.path.join(train_dir, 'HP')  # directory with our training HP pictures

validation_BT_dir = os.path.join(validation_dir, 'BT')  # directory with our validation BT pictures
validation_HP_dir = os.path.join(validation_dir, 'HP')  # directory with our validation HP pictures

PATH1='D:\\CNN\\chuli\\train//BT'
PATH2='D:\\CNN\\chuli\\train//HP'

PATH7='D:\\CNN\\chuli\\validation//BT'
PATH8='D:\\CNN\\chuli\\validation//HP'

num_BT_train = len(os.listdir(PATH1))
num_HP_train = len(os.listdir(PATH2))

num_BT_validation = len(os.listdir(PATH7))
num_HP_validation = len(os.listdir(PATH8))

total_train = num_BT_train + num_HP_train
total_validation=num_BT_validation + num_HP_validation 

print(total_train) #查看训练集数据
print(total_validation) #查看验证集数据

#三、设置预处理数据集和训练网络时要使用的变量。
batch_size =10,
epochs =10,
IMG_HEIGHT =2048,
IMG_WIDTH = 2048,


# 四、生成训练数据集和验证数据集,指定scaling范围0-1
train_image_generator = tf.keras.preprocessing.image.ImageDataGenerator(rescale=1. / 255)
test_image_generator = tf.keras.preprocessing.image.ImageDataGenerator(rescale=1. / 255)
validation_image_generator = tf.keras.preprocessing.image.ImageDataGenerator(rescale=1. / 255)

# 五、在为训练和验证图像定义生成器之后,flow_from_directory方法从磁盘加载图像,应用重新缩放,并将图像调整到所需的尺寸。

train_data_gen = train_image_generator.flow_from_directory(batch_size=batch_size,
                                                           directory=train_dir,
                                                           shuffle=True,
                                                           target_size=(IMG_HEIGHT, IMG_WIDTH),
                                                           class_mode='binary')

val_data_gen = validation_image_generator.flow_from_directory(batch_size=batch_size,
                                                              directory=validation_dir,
                                                              target_size=(IMG_HEIGHT, IMG_WIDTH),
                                                              class_mode='binary')

#六、创建模型
import tensorflow as tf
IMG_HEIGHT =2048
IMG_WIDTH = 2048
model=tf.keras.Sequential([
    tf.keras.layers.Conv2D(512,3, padding='same', activation='relu', input_shape=(IMG_HEIGHT, IMG_WIDTH, 3)),
    tf.keras.layers.MaxPooling2D(),
    tf.keras.layers.Conv2D(256,3, padding='same', activation='relu'),
    tf.keras.layers.MaxPooling2D(),
    tf.keras.layers.Conv2D(128,3, padding='same', activation='relu'),
    tf.keras.layers.MaxPooling2D(),
    tf.keras.layers.Dense(512, activation='relu'),
    tf.keras.layers.Dense(1,activation='sigmoid')
    ])

#七.模型编译
 # 编译模型:这边选择ADAM优化器和二进制交叉熵损失函数。
    #传递metrics参数查看每个训练时期的训练和验证准确性。
model.compile(optimizer= 'Adam',#指定优化器adam
              loss='CategoricalCrossentropy',
              metrics= 'accuracy')
model.summary()


# 八、训练模型:使用ImageDataGenerator类的fit_generator方法来训练网络。
history = model.fit_generator(
    train_data_gen,
    steps_per_epoch=total_train//(batch_size,
    #epochs==3,
    validation_data=val_data_gen,
    validations_steps=total_val//batch_size
)

代码改自于csdn博主:@tensorflow2实现图像分类:以猫狗数据集为案例(上)_tensorflow2 制作图像数据集_m0_38056893的博客-CSDN博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值