IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> Tensorflow2.0基础-笔记-图像识别-猫狗数据集 -> 正文阅读

[人工智能]Tensorflow2.0基础-笔记-图像识别-猫狗数据集

import tensorflow as tf
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline

import glob
image_filenames1=glob.glob('./DataSet/猫狗数据集_2000/dc_2000/train/cat/*.jpg')
image_filenames2=glob.glob('./DataSet/猫狗数据集_2000/dc_2000/train/dog/*.jpg')
image_filenames=image_filenames1+image_filenames2  #把所有的数据放进一个list里。

cat_length=len(image_filenames1)
dog_length=len(image_filenames2)
train_labels=[0]*cat_length+[1]*dog_length  #因为列表前半部分是一类,后半部分是一类,所以标签设置为[0,,0,0,0,.....,1,1,1,1,1]

train_dataset=list(zip(image_filenames,train_labels)) #将数据和标签组合起来。为了后面打乱数据准备,如果没有组合只将数据打乱,数据的标签就不好找了。

#对一个list进行随机排序
train_dataset=np.random.permutation(train_dataset)
train_dataset

def pre_read(imame_file_name):
    image=tf.io.read_file(imame_file_name)
    image=tf.image.decode_jpeg(image,channels=3)
    image=tf.image.rgb_to_grayscale(image) #转化成灰度图片,单通道
    image=tf.image.resize(image,(200,200))
    image=tf.image.per_image_standardization(image) #归一化 即除以255
    return image

train_image_dataset=tf.data.Dataset.from_tensor_slices([x[0] for x in train_dataset])
train_image_dataset=train_image_dataset.map(pre_read)
train_label_dataset=tf.data.Dataset.from_tensor_slices([int(x[1]) for x in train_dataset])
train_image_label_dataset=tf.data.Dataset.zip((train_image_dataset,train_label_dataset))

train_image_label_dataset=train_image_label_dataset.shuffle(100).repeat().batch(32)

#处理测试数据,这里的测试数据在另一个文件下,所以也需要同样的数据处理操作。
test_image_filenames1=glob.glob('./DataSet/猫狗数据集_2000/dc_2000/test/cat/*.jpg')
test_image_filenames2=glob.glob('./DataSet/猫狗数据集_2000/dc_2000/test/dog/*.jpg')
test_image_filenames=image_filenames1+image_filenames2
test_cat_length=len(image_filenames1)
test_dog_length=len(image_filenames2)
test_labels=[0]*cat_length+[1]*dog_length

test_dataset=list(zip(image_filenames,test_labels))
#train_dataset=np.random.permutation(test_dataset) ,因为不需要训练,乱序就没有意义
test_image_dataset=tf.data.Dataset.from_tensor_slices([x[0] for x in test_dataset])
test_image_dataset=test_image_dataset.map(pre_read)
test_label_dataset=tf.data.Dataset.from_tensor_slices([int(x[1]) for x in test_dataset])
test_image_label_dataset=tf.data.Dataset.zip((test_image_dataset,test_label_dataset))
test_image_label_dataset=test_image_label_dataset.batch(32) #只需要batch

model=tf.keras.Sequential()
model.add(tf.keras.layers.Conv2D(64,(3,3),activation='relu',input_shape=(200,200,1)))
model.add(tf.keras.layers.MaxPooling2D((2,2)))
model.add(tf.keras.layers.Conv2D(64,(3,3),activation='relu'))
model.add(tf.keras.layers.MaxPooling2D((2,2)))
model.add(tf.keras.layers.Conv2D(64,(3,3),activation='relu'))
model.add(tf.keras.layers.MaxPooling2D((2,2)))
model.add(tf.keras.layers.Flatten())
model.add(tf.keras.layers.Dense(64,activation='relu'))
model.add(tf.keras.layers.Dense(1,activation='sigmoid'))
model.summary()

model.compile(loss='binary_crossentropy',
             optimizer='adam',
             metrics=['acc'])

len(train_labels)//32,len(test_labels)//32

history=model.fit(train_image_label_dataset,
                  epochs=10,
                  steps_per_epoch=len(train_labels)//32,
                  validation_data=test_image_label_dataset,
                  validation_steps=len(test_labels)//32)

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-19 12:04:06  更:2021-08-19 12:04:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 19:54:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码