提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 主要代码
  • 参考文档

主要代码

代码如下:

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加载图片数据集并训练相关推荐

  1. Flutter中ListView加载图片数据的优化

    题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天. ** 你可能需要 CSDN 网易云课堂教程 掘金 EDU学院教程 知乎 Flutter系列文章 在使用ListView ...

  2. jquery动态加载图片数据

    这几天研究jquery,感受到了该库的强大,而且找到本不错的书   <<锋利的jquery>> 这里我只是随便做了下,上面是照片列表和两个按钮,单击小图片下面显示大图片,当点击 ...

  3. Android之ListView异步加载图片且仅显示可见子项中的图片

    折腾了好多天,遇到 N 多让人崩溃无语的问题,不过今天终于有些收获了,这是实验的第一版,有些混乱,下一步进行改造细分,先把代码记录在这儿吧. 网上查了很多资料,发现都千篇一律,抄来抄去,很多细节和完整 ...

  4. 列表异步线程加载图片

    手机客户端以列表形式展示数据是非常常见的一种方式.然而列表中要显示图片(比如:头像)就要采用异步线程加载的方式,这样做是为了防止加载图片数据的时候,花费时间过长,阻塞UI线程,从而达到保持App的流畅 ...

  5. Android通过AsyncTask与ThreadPool(线程池)两种方式异步加载大量数据的分析与对比

    在加载大量数据的时候,经常会用到异步加载,所谓异步加载,就是把耗时的工作放到子线程里执行,当数据加载完毕的时候再到主线程进行UI刷新.在数据量非常大的情况下,我们通常会使用两种技术来进行异步加载,一是 ...

  6. Android 应用开发 之通过AsyncTask与ThreadPool(线程池)两种方式异步加载大量数据的分析与对比

    Android 应用开发 之通过AsyncTask与ThreadPool(线程池)两种方式异步加载大量数据的分析与对比 标签: AndroidAsyncTaskThreadPool异步加载view 2 ...

  7. QML Image 通过 QQuickImageProvider 加载图片

    前言 QML 中使用 Image 来加载图片,有三种加载方式: 从 Qt 资源系统加载:qrc://图片路径 文件加载:file:///图片路径 由 ImageProvider 提供数据:image: ...

  8. c++读取图片_Pytorch读取,加载图像数据(一)

    Pytorch读取,加载图像数据(一) 在学习Pytorch的时候,先学会如何正确创建或者加载数据,至关重要. 有了数据,很多函数,操作的效果就变得很直观. 本文主要用其他库读取图像文件(学会这个,你 ...

  9. Image加载二进制数据图片

    image加载图片是根据图片的路径,设置图片的ImageUrl. 对于二进制的图片我们要做的是,创立一个页面面将二进制数据显示在图片上.然后在在需要引用图片的image添加对该页面的引用 byte[] ...

最新文章

  1. SAP S4HANA 账户组的配置里'Int.Std.Grping'选项没勾选导致ABAP程序报错
  2. LNMT部署详细步骤并实现动静分离和负载均衡
  3. android 4.x环境搭建
  4. BZOJ - 4196 软件包管理器 (树链剖分+dfs序+线段树)
  5. 吃糖果(HDU-1205)
  6. 丈夫创业前后累计11次
  7. iOS-UITextField中给placeholder动态设置颜色的四种方法
  8. 二年级计算机考试题,二年级计算机笔测试题(XX-XX第一学期
  9. sql获取服务器系统时间,SQL Server取系统当前时间
  10. 偷取php网站源码,最新PHP新闻小偷采集站开源版本源码分享,集成六个广告位,不限制域名...
  11. 计算机网络系统与分布式系统之间的区别
  12. intel无线网卡linux驱动安装,Ubuntu应用---安装 Intel Wireless-AC 9462 无线网卡驱动(无法连接wifi,完美解决)...
  13. vmware克隆centos修改mac地址
  14. 百面机器学习01-特征工程
  15. 敏捷实践 | 浅谈测试金字塔
  16. SpringBoot项目发布与部署,及使用花生壳映射项目
  17. Unity 粒子特效—FX Maker
  18. BERT知识蒸馏Distilled BiLSTM
  19. 新天龙官网服务器更新消息,《经典怀旧·新天龙八部》8月5日全服更新维护公告...
  20. 2013年CSDN全国巡讲江苏理工学院

热门文章

  1. php获取用户豆瓣电影,用来获取豆瓣网上电影信息的简介
  2. 金仓数据库 KingbaseES SQL 语言参考手册 (13. SQL语句:ALTER SYNONYM 到 COMMENT)
  3. PC_控制器_微程序控制器和硬布线控制器
  4. 小陈java学习笔记0805
  5. BNUZ程协技术部2020寒假任务简单版(后端)
  6. 如何写好技术文档——来自Google十多年的文档经验
  7. Java基础之Java数据类型
  8. 2019sdn期末测试
  9. 什么是粗粒度和细粒度权限
  10. 华为hcie中QOS 流量整形 双速率的概念-ielab实验室