python-用Tensorflow构建卷积神经网络图像分类

本文介绍如何在Python 3.6环境中利用TensorFlow 1.6版本构建卷积神经网络(CNN)进行图像分类。
摘要由CSDN通过智能技术生成

 环境:python3.6版本 + TensorFlow 1.6版本

import os
from PIL import Image
import numpy as np
import tensorflow as tf


data_dir = r'E://data/data'  # 数据文件夹
train = True  # 训练还是测试
model_path = "model/image_model"  # 模型文件路径


# 从文件夹读取图片和标签到numpy数组中
# 标签信息在文件名中,例如1_40.jpg表示该图片的标签为1
def read_data(data_dir):
    datas = []
    labels = []
    fpaths = []
    for fname in os.listdir(data_dir):
        fpath = os.path.join(data_dir, fname)
        data = np.array(Image.open(fpath))/255.0   # pillow读取的图像像素值在0-255之间,需要归一化
        label = int(fname.split("_")[0])
        fpaths.append(fpath)  # 在读取图像数据、Label信息的同时,记录图像的路径
        datas.append(data)
        labels.append(label)
    datas = np.array(datas)
    labels = np.array(labels)
    print("shape of datas: {}\tshape of labels: {}".format(datas.shape, labels.shape))
    return fpaths, datas, labels


fpaths, datas, labels = read_data(data_dir)
# 'shape of datas: (150, 32, 32, 3)	shape of labels: (150,)'
# 计算有多少类图片
num_classes = len(set(labels))

# Placeholder:TensorFlow中的占位符,用于传入外部数据。
#   dtype:数据类型;shape:数据的维度。默认为None,表示没有限制;name:名称;返回类型:Tensor
# Tensorflow 1.x 版本提供placeholder,而 2.0版本暂时没有
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值