深度学习中的迁移学习与成本函数解析
1. 迁移学习实验
在深度学习训练中,如Epoch 2/2的训练结果显示:
3000/3000 [==============================] - 276s 92ms/sample - loss: 0.2913 - acc: 0.8730 - val_loss: 0.2699 - val_acc: 0.8820
这得益于预训练的第一层,为我们节省了大量工作。但当我们想尝试目标网络的不同架构,添加更多层时,之前的方法存在不足,每次都要训练整个网络,而实际上只需训练最后几层。之前一个epoch大约需要4.5分钟,效率较低。
为了提高效率,我们可以生成一个新的数据集——特征数据集。具体做法是利用冻结层,由于这些层在训练中不会改变,它们总是会生成相同的输出。我们可以将这个特征数据集作为一个更小的网络(目标子网络)的新输入,目标子网络仅由之前添加到基础层的新层组成。这样,我们只需训练少数层,速度会快很多。
以下是具体的实现步骤:
1. 导入预训练的VGG16网络 :
from tensorflow.keras.applications import vgg16
from tensorflow.keras.models import Model
import tensorflow.keras as keras
input_shape = (150, 150, 3)
vgg = vgg1
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



