tensorflow CNN实际例子

本程序对tensorflow建立CNN模型进行编程。程序中使用的数据集是钢板缺陷图像数据集。对钢板缺陷图形进行分类缺陷一共五类,每类图片数量是300张,一共1500张,训练集和我测试集的比例是4:1。图片尺寸是200×200。
程序包括两个文件:
(1)训练集测试集生成文件:load.py
(2)CNN模型建立、训练和测试文件:CNNmodel.py

load.py文件

# load the dataSet
# encoding:utf-8
# Python2 兼容
from __future__ import print_function, division
from scipy.io import loadmat as load
import numpy as np

def reformat(samples, labels):
    # 改变原始数据的形状
    samples = np.transpose(samples, (3, 0, 1, 2)).astype(np.float32)
    # labels 变成 one-hot
    labels = np.array([x[0] for x in labels])
    one_hot_labels = []
    for num in labels:
        one_hot = [0.0]*5
        one_hot[num] = 1.0
        one_hot_labels.append(one_hot)
    labels = np.array(one_hot_labels).astype(np.float32)
    return samples, labels

def normalize(samples):
    # 将图片从 0~255 线性映射到 -1.0~+1.0
    return (samples*1.0)/128.0 - 1.0

# load the dataset
# 用matlab制作的数据集文件  .mat文件
train = load('trainSet.mat')

print('Train Samples Shape: ', train['trainImage'].shape)
print('Train  Labels Shape: ', train['trainLabel'].shape)
_train_samples = train['trainImage']
_train_labels = train['trainLabel']

n_train_samples, _train_labels = reformat(_train_samples, _train_labels)
# normalize the images data
_train_samples = normalize(n_train_samples)

# training data
train_samples = _train_samples[0:1200]
train_labels = _train_labels[0:1200]
# test dataset
test_samples = _train_samples[1200:1500]
test_labels = _train_labels[1200:1500]

num_labels = 5
image_size = 200
num_channels = 1


if __name__ == '__main__':
    pass

CNNmodel.py

"""
    本程序对钢板缺陷图像进行分类。
    缺陷一共五类,每类图片数量是300张,一共1500张,训练集和我测试集的比例是4:1。
    图片尺寸是200×200。
"""
import tensorflow as tf
import time 
import load     # 数据集载入文件


评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值