資源簡介
親測可以直接運行,先運行CNN訓練神經網絡,再運行predict進行花卉預測。

代碼片段和文件信息
#!/usr/bin/env?python?
#?-*-?coding:utf-8?-*-
from?skimage?import?iotransform
import?glob
import?os
import?tensorflow?as?tf
import?numpy?as?np
import?time
#數據集地址
path=‘C:\\Users\litan\Desktop\ise\CNN\elower_photos\elower_photos/‘
#模型保存地址
model_path=‘C:\\Users\litan\Desktop\ise\CNN\model.ckpt‘
#將所有的圖片resize成100*100
w=100
h=100
c=3
#讀取圖片
def?read_img(path):
????cate=[path+x?for?x?in?os.listdir(path)?if?os.path.isdir(path+x)]
????imgs=[]
????labels=[]
????for?idxfolder?in?enumerate(cate):
????????for?im?in?glob.glob(folder+‘/*.jpg‘):
????????????print(‘reading?the?images:%s‘%(im))
????????????img=io.imread(im)
????????????img=transform.resize(img(wh))
????????????imgs.append(img)
????????????labels.append(idx)
????return?np.asarray(imgsnp.float32)np.asarray(labelsnp.int32)
datalabel=read_img(path)
#打亂順序
num_example=data.shape[0]
arr=np.arange(num_example)
np.random.shuffle(arr)
data=data[arr]
label=label[arr]
#將所有數據分為訓練集和驗證集
ratio=0.8
s=np.int(num_example*ratio)
x_train=data[:s]
y_train=label[:s]
x_val=data[s:]
y_val=label[s:]
#-----------------構建網絡----------------------
#占位符
x=tf.placeholder(tf.float32shape=[Nonewhc]name=‘x‘)
y_=tf.placeholder(tf.int32shape=[None]name=‘y_‘)
def?inference(input_tensor?train?regularizer):
????with?tf.variable_scope(‘layer1-conv1‘):
????????conv1_weights?=?tf.get_variable(“weight“[55332]initializer=tf.truncated_normal_initializer(stddev=0.1))
????????conv1_biases?=?tf.get_variable(“bias“?[32]?initializer=tf.constant_initializer(0.0))
????????conv1?=?tf.nn.conv2d(input_tensor?conv1_weights?strides=[1?1?1?1]?padding=‘SAME‘)
????????relu1?=?tf.nn.relu(tf.nn.bias_add(conv1?conv1_biases))
????with?tf.name_scope(“layer2-pool1“):
????????pool1?=?tf.nn.max_pool(relu1?ksize?=?[1221]strides=[1221]padding=“VALID“)
????with?tf.variable_scope(“layer3-conv2“):
????????conv2_weights?=?tf.get_variable(“weight“[553264]initializer=tf.truncated_normal_initializer(stddev=0.1))
????????conv2_biases?=?tf.get_variable(“bias“?[64]?initializer=tf.constant_initializer(0.0))
????????conv2?=?tf.nn.conv2d(pool1?conv2_weights?strides=[1?1?1?1]?padding=‘SAME‘)
????????relu2?=?tf.nn.relu(tf.nn.bias_add(conv2?conv2_biases))
????with?tf.name_scope(“layer4-pool2“):
????????pool2?=?tf.nn.max_pool(relu2?ksize=[1?2?2?1]?strides=[1?2?2?1]?padding=‘VALID‘)
????with?tf.variable_scope(“layer5-conv3“):
????????conv3_weights?=?tf.get_variable(“weight“[3364128]initializer=tf.truncated_normal_initializer(stddev=0.1))
????????conv3_biases?=?tf.get_variable(“bias“?[128]?initializer=tf.constant_initializer(0.0))
????????conv3?=?tf.nn.conv2d(pool2?conv3_weights?strides=[1?1?1?1]?padding=‘SAME‘)
????????relu3?=?tf.nn.relu(tf.nn.bias_add(conv3?conv3_biases))
????with?tf.name_scope(“layer6-pool3“):
????????pool3?=?tf.nn.max_pool(relu3?ksize=[1?2?2?1]?strides=[1?2?2?1]?padding=‘VALID‘)
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-04-01?23:40??花卉識別\
?????文件????????7558??2018-11-15?00:09??花卉識別\cnn.py
?????文件??????112658??2019-01-15?23:04??花卉識別\model.ckpt.me
?????文件????????2010??2018-11-15?01:11??花卉識別\predict.py
?????文件?????????116??2019-04-01?23:42??花卉識別\數據集下載地址.txt
評論
共有 條評論