当前位置:   article > 正文

ResNet-50 训练猫狗分类_resnet50二分类

resnet50二分类


这里介绍一下怎么搭建ResNet网络,并说明一下残差网络的结构,并使用ResNet来训练一个二分类问题

1.ResNet网络

对于ResNet网络的讲解可以参考这个链接(https://blog.csdn.net/koala_tree/article/details/78583979)这里说的已经很清楚了,对于视频讲解可以到网易云课堂里面搜索吴恩达的《深度学习工程师》微专业课程
使用tf2的keras代码

2.猫狗数据

猫狗图片数据可以在这里下载cats and dogs
提取码:uve0

下载后解压,然后解压里面的 train.zip 加压后的图片为猫狗图片,命名规则为cat.num.jpg,dog.num.jpg,可以将train目录更名为train_total,然后执行脚本allocation_picture.py
将数据集分为train,val,test

3.训练

运行训练脚本脚本train.py,训练模型
其中

# 训练集
train_dir = "datasets/train"
# 验证集
val_dir = "datasets/val"
# 批次大小
batch_size = 2048
# 输入图片大小
image_size = 224
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
# 加载数据集为 Dataset
def load_image(path, batch, size):
    def _decode_and_resize(filename, label):
    	# 读取文件
        image_string = tf.io.read_file(filename)
        # 解码图片为jpeg
        image = tf.image.decode_jpeg(image_string)
        # 数据增强 左右随机增强
        image = tf.image.random_flip_left_right(image)
        # 数据增强
        image = tf.image.random_contrast(image, lower=0.8, upper=1.2)
        image = tf.image.random_saturation(image, lower=0.8, upper=1.2)
        # resize 图片,保持原图比例
        image_resized = tf.image.resize_with_pad(image, size, size) / 255.0
        return image_resized, label

    cats_dir = path + "/cat/"
    dogs_dir = path + "/dog/"

    cat_filenames = tf.constant([cats_dir + filename for filename in os.listdir(cats_dir)])
    dog_filenames = tf.constant([dogs_dir + filename for filename in os.listdir(dogs_dir)])
    filenames = tf.concat([cat_filenames, dog_filenames], axis=-1)
    labels = tf.concat([
        tf.zeros(cat_filenames.shape, dtype=tf.int32),
        tf.ones(dog_filenames.shape, dtype=tf.int32)],
        axis=-1)

    datasets = tf.data.Dataset.from_tensor_slices((filenames, labels))
    datasets = datasets.map(
        map_func=_decode_and_resize,
        num_parallel_calls=tf.data.experimental.AUTOTUNE)

    datasets = datasets.shuffle(buffer_size=batch * 100)
    datasets = datasets.batch(batch)
    datasets = datasets.prefetch(tf.data.experimental.AUTOTUNE)

    return datasets
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

4.测试

模型训练完后,计算 accuracy, recall,precision

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/442356
推荐阅读
相关标签
  

闽ICP备14008679号