特征提取尽量微调
全连接层自己做
数据量小,全冻
数据量中,10000左右,冻前边的
数据量大,冻的少
Resnet论文:Deep Residual Learnling for Image Recognition,Kaiming He
tensorflow.keras.applications
里面有很多现成训练好的模型可以直接利用
如:tf.keras.applications.ResNet152
迁移学习
用人家训练好模型的权重参数当做咱们的初始化
一般全连接层需要自己训练,可以选择是否训练别人训练好的特征提取层
主代码
import os
import warnings
warnings.filterwarnings("ignore")
import matplotlib.pyplot as plt
import tensorflow as tf
from tensorflow.keras.optimizers import Adam
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras import layers
from tensorflow.keras import Model
base_dir = './data/cats_and_dogs'
train_dir = os.path.join(base_dir, 'train')
validation_dir = os.path.join(base_dir, 'validation')
train_cats_dir = os.path.join(train_dir, 'cats')
train_dogs_dir = os.path.join(train_dir, 'dogs')
validation_cats_dir = os.path.join(validation_dir, 'cats')
validation_dogs_dir = os.path.join(validation_dir, 'dogs')
### 导入模型
from tf.keras.applications.resnet import ResNet50
from tensorflow.keras.applications.