迁移学习resnet_ResNet-V1-50卷积神经网络迁移学习进行不同品种的花的分类识别

运行环境

python3.6.3、tensorflow1.10.0

Intel@AIDevCloud:Intel Xeon Gold 6128 processors集群

数据和模型来源

思路

数据集分析及处理

数据集文件解压后共有五个文件夹,每个文件夹都包含一定数量的花的图片,一个文件夹对应一个品种,图片各种尺寸都有,均为jpg格式,均为彩色图片。这里利用tensorflow提供的图片处理工具将所有图片转为300×300×3的格式,然后将所有图片的80%当作训练集,10%当作验证集,10%当作测试集,并且将训练集进行随机打乱,将得到的数据存在一个numpy文件中,以待后续训练使用。

模型构建

这里采用了ResNet-V1-50卷积神经网络来进行训练,模型结构在slim中都提供好了,另外采用官方已经训练好的参数进行迁移学习,只是在模型的最后根据问题的实际需要再定义一层输出层,只训练最后的自定义的全连接输出层的参数,训练500次,每次batch样本数取32,学习率取0.0001。

源代码

load_data.py

# -*- coding: UTF-8 -*-

#Author:Yinli

import glob

import os.path

import numpy as np

import tensorflow as tf

from tensorflow.python.platform import gfile

#定义输入文件夹和数据存储文件名

INPUT_DATA = 'flower_photos'

OUTPUT_FILE = 'flower_processed_data.npy'

#设定验证集和测试集的百分比

VALIDATION_PERCENTAGE = 10

TEST_PERCENTAGE = 10

def create_image_list(sess, testing_percentage, validation_percentage):

#列出输入文件夹下的所有子文件夹,此时sub_dirs里面除了有子文件夹还有它自身,在第一个

sub_dirs = [x[0] for x in os.walk(INPUT_DATA)]

#设置一个bool值,指定第一次循环的时候跳过母文件夹

is_root_dir = True

#print(sub_dirs)

#初始化数据矩阵

training_images = []

training_labels = []

testing_images = []

testing_labels = []

validation_images = []

validation_labels= []

current_label = 0

#分别处理每个子文件夹

for sub_dir in sub_dirs:

#跳过第一个值,即跳过母文件夹

if is_root_dir:

is_root_dir = False

continue

#获取子目录中的所有图片文件

extensions = ['jpg', 'jpeg', 'JPG', 'JPEG']

#用列表记录所有图片文件

file_list = []

#获取此子目录的名字比如daisy

dir_name = os.path.ba

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值