• 大小: 4KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-17
  • 语言: 其他
  • 标签: Tensorflow  

资源简介

基于Tensorflow下的cnn卷积神经网络实现图像的分类,Tensorflow

资源截图

代码片段和文件信息

from skimage import iotransform
import glob
import os
import tensorflow as tf
import numpy as np
import time
 
#数据集地址
path=‘E:/data/datasets/flower_photos/‘
#模型保存地址
model_path=‘E:/data/model/flower/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‘)
 
    with tf.variable_scope(“layer7-conv4“):
        conv4_weights = tf.get_v

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件       10093  2018-01-04 21:41  新建文件夹\model_path.py
     文件        1796  2018-01-08 11:06  新建文件夹\test.py
     目录           0  2018-03-28 11:16  新建文件夹\

评论

共有 条评论