• 大小: 16KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-28
  • 语言: 其他
  • 标签: Python  Machin  

资源简介

亲测可以直接运行,先运行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.meta
     文件        2010  2018-11-15 01:11  花卉识别\predict.py
     文件         116  2019-04-01 23:42  花卉识别\数据集下载地址.txt

评论

共有 条评论