tf2加载图片数据集并训练
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 主要代码
- 参考文档
主要代码
代码如下:
import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='2'
import tensorflow as tf
import random
import pathlib
import numpy as np
def load_image_label(dirpath):data_path = pathlib.Path(dirpath)all_image_paths = list(data_path.glob('*/*'))all_image_paths = [str(path) for path in all_image_paths]random.shuffle(all_image_paths)label_names = sorted(item.name for item in data_path.glob('*/') if item.is_dir())label_count = len(label_names)label_to_index = dict((name, index) for index, name in enumerate(label_names))labels = [label_to_index[pathlib.Path(path).parent.name] for path in all_image_paths]return all_image_paths, labels, label_count
path = './Train'
all_image_paths, labels, label_count = load_image_label(path)
all_iamge_labels = np.zeros((len(all_image_paths),label_count))
for num, each_label in enumerate(labels):all_iamge_labels[num, each_label] = 1
ds = tf.data.Dataset.from_tensor_slices((all_image_paths, all_iamge_labels))
def load_and_preprocess_from_path_label(path, label):image = tf.io.read_file(path) # 读取图片image = tf.image.decode_jpeg(image, channels=3)image = tf.image.resize(image, [60, 60]) image /= 255.0 # 归一化到[0,1]范围return image, label
image_label_ds = ds.map(load_and_preprocess_from_path_label)
train_image = []
train_label = []
for image, label in zip(all_image_paths, all_iamge_labels):r_image, r_label = load_and_preprocess_from_path_label(image, label)train_image.append(r_image)train_label.append(r_label)
train_images = np.array(train_image)
train_labels = np.array(train_label)
print(train_images.shape)
print(train_labels.shape)from tensorflow import keras
from tensorflow.keras import layers
model = keras.Sequential(
[layers.Conv2D(5,3,activation = 'relu',padding = 'same',input_shape=[60, 60, 3]),layers.Flatten(),layers.Dense(128, activation='relu'),layers.Dense(3, activation='softmax')
])
model.compile(optimizer='adam',loss='categorical_crossentropy',metrics=['accuracy'])
model.fit(train_images, train_labels, epochs=5,batch_size=3)import cv2 as cv
test_img = cv.imread("test.jpg")
test_img = cv.resize(test_img,[60,60])
print(test_img.shape)
test_img = np.expand_dims(np.array(test_img),axis=0)
result = model.predict(test_img)
print(result)
参考文档
https://blog.csdn.net/qq_36758914/article/details/106883812
https://blog.csdn.net/Black_Friend/article/details/104529859
tf2加载图片数据集并训练相关推荐
- Flutter中ListView加载图片数据的优化
题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天. ** 你可能需要 CSDN 网易云课堂教程 掘金 EDU学院教程 知乎 Flutter系列文章 在使用ListView ...
- jquery动态加载图片数据
这几天研究jquery,感受到了该库的强大,而且找到本不错的书 <<锋利的jquery>> 这里我只是随便做了下,上面是照片列表和两个按钮,单击小图片下面显示大图片,当点击 ...
- Android之ListView异步加载图片且仅显示可见子项中的图片
折腾了好多天,遇到 N 多让人崩溃无语的问题,不过今天终于有些收获了,这是实验的第一版,有些混乱,下一步进行改造细分,先把代码记录在这儿吧. 网上查了很多资料,发现都千篇一律,抄来抄去,很多细节和完整 ...
- 列表异步线程加载图片
手机客户端以列表形式展示数据是非常常见的一种方式.然而列表中要显示图片(比如:头像)就要采用异步线程加载的方式,这样做是为了防止加载图片数据的时候,花费时间过长,阻塞UI线程,从而达到保持App的流畅 ...
- Android通过AsyncTask与ThreadPool(线程池)两种方式异步加载大量数据的分析与对比
在加载大量数据的时候,经常会用到异步加载,所谓异步加载,就是把耗时的工作放到子线程里执行,当数据加载完毕的时候再到主线程进行UI刷新.在数据量非常大的情况下,我们通常会使用两种技术来进行异步加载,一是 ...
- Android 应用开发 之通过AsyncTask与ThreadPool(线程池)两种方式异步加载大量数据的分析与对比
Android 应用开发 之通过AsyncTask与ThreadPool(线程池)两种方式异步加载大量数据的分析与对比 标签: AndroidAsyncTaskThreadPool异步加载view 2 ...
- QML Image 通过 QQuickImageProvider 加载图片
前言 QML 中使用 Image 来加载图片,有三种加载方式: 从 Qt 资源系统加载:qrc://图片路径 文件加载:file:///图片路径 由 ImageProvider 提供数据:image: ...
- c++读取图片_Pytorch读取,加载图像数据(一)
Pytorch读取,加载图像数据(一) 在学习Pytorch的时候,先学会如何正确创建或者加载数据,至关重要. 有了数据,很多函数,操作的效果就变得很直观. 本文主要用其他库读取图像文件(学会这个,你 ...
- Image加载二进制数据图片
image加载图片是根据图片的路径,设置图片的ImageUrl. 对于二进制的图片我们要做的是,创立一个页面面将二进制数据显示在图片上.然后在在需要引用图片的image添加对该页面的引用 byte[] ...
最新文章
- SAP S4HANA 账户组的配置里'Int.Std.Grping'选项没勾选导致ABAP程序报错
- LNMT部署详细步骤并实现动静分离和负载均衡
- android 4.x环境搭建
- BZOJ - 4196 软件包管理器 (树链剖分+dfs序+线段树)
- 吃糖果(HDU-1205)
- 丈夫创业前后累计11次
- iOS-UITextField中给placeholder动态设置颜色的四种方法
- 二年级计算机考试题,二年级计算机笔测试题(XX-XX第一学期
- sql获取服务器系统时间,SQL Server取系统当前时间
- 偷取php网站源码,最新PHP新闻小偷采集站开源版本源码分享,集成六个广告位,不限制域名...
- 计算机网络系统与分布式系统之间的区别
- intel无线网卡linux驱动安装,Ubuntu应用---安装 Intel Wireless-AC 9462 无线网卡驱动(无法连接wifi,完美解决)...
- vmware克隆centos修改mac地址
- 百面机器学习01-特征工程
- 敏捷实践 | 浅谈测试金字塔
- SpringBoot项目发布与部署,及使用花生壳映射项目
- Unity 粒子特效—FX Maker
- BERT知识蒸馏Distilled BiLSTM
- 新天龙官网服务器更新消息,《经典怀旧·新天龙八部》8月5日全服更新维护公告...
- 2013年CSDN全国巡讲江苏理工学院
热门文章
- php获取用户豆瓣电影,用来获取豆瓣网上电影信息的简介
- 金仓数据库 KingbaseES SQL 语言参考手册 (13. SQL语句:ALTER SYNONYM 到 COMMENT)
- PC_控制器_微程序控制器和硬布线控制器
- 小陈java学习笔记0805
- BNUZ程协技术部2020寒假任务简单版(后端)
- 如何写好技术文档——来自Google十多年的文档经验
- Java基础之Java数据类型
- 2019sdn期末测试
- 什么是粗粒度和细粒度权限
- 华为hcie中QOS 流量整形 双速率的概念-ielab实验室