赞
踩
对于ResNet网络的讲解可以参考这个链接(https://blog.csdn.net/koala_tree/article/details/78583979)这里说的已经很清楚了,对于视频讲解可以到网易云课堂里面搜索吴恩达的《深度学习工程师》微专业课程
使用tf2的keras代码
猫狗图片数据可以在这里下载cats and dogs
提取码:uve0
下载后解压,然后解压里面的 train.zip 加压后的图片为猫狗图片,命名规则为cat.num.jpg,dog.num.jpg,可以将train目录更名为train_total,然后执行脚本allocation_picture.py
将数据集分为train,val,test
运行训练脚本脚本train.py,训练模型
其中
# 训练集
train_dir = "datasets/train"
# 验证集
val_dir = "datasets/val"
# 批次大小
batch_size = 2048
# 输入图片大小
image_size = 224
# 加载数据集为 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
模型训练完后,计算 accuracy, recall,precision
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。