首先可以上官网下载inceptio-v3的包:
代码可以分为三种:
1.特征处理
import warnings
warnings.filterwarnings("ignore")
import tensorflow as tf
import os
os.environ["TF_CPP_MIN_LOG_LEVEL"]='2'
tf.compat.v1.logging.set_verbosity(40)
import pickle
import numpy as np
from sklearn.model_selection import train_test_split
def sep(label = '', cnt=32):
print('-' * cnt, label, '-' * cnt, sep='')
tf.random.set_random_seed(1)
np.random.seed(1)
VER = 'v7.0'
FILE_NAME = os.path.basename(__file__)
SAVE_DIR = os.path.join('_save', FILE_NAME, VER)
SAVE_NAME = 'bottleneck.pickle'
# Inception-v3模型瓶颈层的节点个数
BOTTLENECK_TENSOR_SIZE = 2048
# Inception-v3模型中代表瓶颈层结果的张量名称。
# 在谷歌提出的Inception-v3模型中,这个张量名称就是'pool_3/_reshape:0'。
# 在训练模型时,可以通过tensor.name来获取张量的名称。
BOTTLENECK_TENSOR_NAME = 'pool_3/_reshape:0'
# 图像输入张量所对应的名称。
JPEG_DATA_TENSOR_NAME = 'DecodeJpeg/contents:0'
# 下载的谷歌训练好的Inception-v3模型文件目录
MODEL_DIR = '../../Data2/Qian_data/inception_dec_2015'
# 下载的谷歌训练好的Inception-v3模型文件名
MODEL_FILE = 'tensorflow_inception_graph.pb'
# 因为一个训练数据会被使用多次,所以可以将原始图像通过Inception-v3模型计算得到的特征向量保存在文件中,免去重复的计算。
# 下面的变量定义了这些文件的存放地址。
CACHE_DIR = './bottleneck/'
# 图片数据文件夹。
# 在这个文件夹中每一个子文件夹代表一个需要区分的类别,每个子文件夹中存放了对应类别的图片。
path = '../../Data2/Qian_data/flower_photos/'
INPUT_DATA = path
# 验证的数据百分比
VALIDATION_PERCENTAGE = 10
# 测试的数据百分比
TEST_PERCENTAGE = 10
# 定义神经网络的设置
LEARNING_RATE = 0.01
STEPS = 40
GROUP = 5
BATCH = 100
sep('load model')
with open(os.path.join(MODEL_DIR, MODEL_FILE), 'rb') as f:#从pb文件中调用
graph_def = tf.GraphDef()
graph_def.ParseFromString(f.read())
# 加载读取的Inception-v3模型,并返回数据输入所对应的张量以及计算瓶颈层结果所对应的张量。
# 通过名称和下标来得到相应的值
bottleneck_tensor, jpeg_data_tensor = tf.import_graph_def(graph_def,
return_elements=[

本文介绍了如何使用Inception-v3模型进行迁移学习,应用于花数据集。首先从官方渠道下载Inception-v3的包,接着分别讲解了特征处理、模型训练提取和模型显示的代码实现,读者可以根据自己的数据路径进行调整。
最低0.47元/天 解锁文章
6709

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



