使用Tensorflow的slim库进行迁移学习

由于slim库不是tf的核心库,因此需要到github下载相关代码,这里假设我的工作目录为:/home/hiptonese/MigrationLearning

'''
@Date  : 2017-11-21 19:18
@Author: yangyang Deng
@Email : yangydeng@163.com
'''

import os
import tensorflow as tf
from models.research.slim.datasets import imagenet
from models.research.slim.preprocessing import inception_preprocessing
import numpy as np
# 工程的根目录,同时也是ckpt所在的目录
checkpoints_dir = '/home/hiptonese/MigrationLearning/'

slim = tf.contrib.slim
image_size = 299

with tf.Graph().as_default():
    with slim.arg_scope(inception_resnet_v2.inception_resnet_v2_arg_scope()):
        # 加载一张图片
        imgPath = 'ship.jpeg'
        testImage_string = tf.gfile.FastGFile(imgPath, 'rb').read()
        testImage = tf.image.decode_jpeg(testImage_string, channels=3)
        processed_image = inception_preprocessing.preprocess_image(testImage, image_size, image_size, is_training=False)
        processed_images = tf.expand_dims(processed_image, 0)

        # 这里如果我们设置num_classes=None,则可以得到restnet输出的瓶颈层,num_classes默认为10001,是用作imagenet的输出层。同样,我们也可以根据需要修改num_classes为其他的值来满足我们的训练要求。
        final_point, endpoints = inception_resnet_v2.inception_resnet_v2(processed_images, num_classes=None, is_training=False)
        init_fn = slim.assign_from_checkpoint_fn(os.path.join(checkpoints_dir, 'inception_resnet_v2_2016_08_30.ckpt'),slim.get_model_variables('InceptionResnetV2'))

        with tf.Session() as sess:
            init_fn(sess)
            final_point_eval = np.array(sess.run(final_point))
            print(final_point_eval.shape)


× 最后解释一下“瓶颈层”(bottle neck layer)的含义:
瓶颈层一般指网络结束卷基层,将要进入全连层的输入。由于网络中的变量已经做了预训练,因此瓶颈层的输出可以看做是对原始图片的进一步特征提取。因此这里如果将瓶颈层作为输入,后面只需要自己加入FC全连层,则可以不在参数调整和训练上花太多时间,快速达到较好的效果。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值