首页 > 其他分享 >制作catvsdog_path_dataset.tfrecords的代码 数据集制作完成路径为: E:\catanddog\train1\catvsdog_path_dataset.tfrec

制作catvsdog_path_dataset.tfrecords的代码 数据集制作完成路径为: E:\catanddog\train1\catvsdog_path_dataset.tfrec

时间:2023-08-12 22:46:06浏览次数:38  
标签:tfrecords catvsdog temp labels list dataset print path label

# -*- coding:utf-8 -*- -#
#PROJECT_NAME:081200
#Name:01
#Author:GG
#Date:2023/8/12

import tensorflow as tf
import os
import numpy as np
import cv2

file_dir = "E:\\catanddog\\train0"

save_dir ="E:\\catanddog\\train1"

images = [] # 每张图片的路径组成的列表
temp = [] # 保存cat dog文件夹路径
for root, sub_folders, files in os.walk(file_dir):

for name in files:
images.append(os.path.join(root, name))

for name in sub_folders:
temp.append(os.path.join(root, name))

labels = [] # 保存注释列表

# 此时temp为根目录下所有文件夹的路径列表 一次取出一个文件夹 对文件夹里面的所有数据图片进行注释
for one_folder in temp: #在遍历一个名为 temp 的可迭代对象中的每个元素,将每个元素赋值给变量 one_folder。
n_img = len(os.listdir(one_folder)) # 得到图片总数 os.listdir(one_folder) 函数用于返回指定目录下的所有文件和文件夹的名称列表。len() 函数用于获取列表的长度,即其中元素的个数,
letter = one_folder.split('\\')[-1] # 按照“\\”分割 取出最后一个也就是文件夹的名称

# 标注数据集 将cat标注为0 dog标注为1
if letter == 'cat':
labels = np.append(labels, n_img * [0])
print(labels)

else:
labels = np.append(labels, n_img * [1])
print(labels)

temp = np.array([images, labels]) # 重新创建数组temp 将images 和 labels 最为一对键值对写入
print(temp)
temp = temp.transpose() # 将temp转置
print(temp)
np.random.shuffle(temp) # 打乱数据集的顺序
print(temp)

image_list = list(temp[:, 0]) # 取出数组中的第一维 也就是图片的路径列表
print(image_list )
label_list = list(temp[:, 1]) # 取出数组中的第二维 也就是图片的标签列表
print(label_list )
label_list = [int(float(i)) for i in label_list]#将label_list中的每个元素转换为浮点数,然后再转换为整数类型。该代码逐个处理label_list中的元素,并根据给定的转换过程创建一个新的整数列表
print(label_list )

filename = os.path.join(save_dir, 'catvsdog_path_dataset.tfrecords')
print(filename)
n_samples = len(label_list)
writer = tf.python_io.TFRecordWriter(filename)
print('\n开始制作数据集...')
for i in np.arange(0, n_samples):
# try:
print("正在制作第 %d 张 \n" % i)
image = cv2.imread(image_list[i])
image_raw = image.tostring()
example = tf.train.Example(features=tf.train.Features(feature={
'label': tf.train.Feature(int64_list=tf.train.Int64List(value=label_list)),
'image_raw': tf.train.Feature(bytes_list=tf.train.BytesList(value=[image_raw]))}))
writer.write(example.SerializeToString())

# except:
# print('无法读取此文件:' , images[i])

# writer.close()
print('\n数据集制作完成路径为: %s' % filename)

标签:tfrecords,catvsdog,temp,labels,list,dataset,print,path,label
From: https://www.cnblogs.com/dq0618/p/17625711.html

相关文章

  • Dataset类
    用来创建自己的数据集,提供一种方式去获取数据及其label。1.如何获取每一个数据及其label;2.告诉我们总共有多少数据help:所有的数据集都需要继承该类,所有的子类都应该重写__getitem__方法(获取每一个数据及其label),选择性重写__len__类(返回数据集的大小)(b站土堆蚂蚁和蜜蜂案例数据......
  • ECCV2022 Real-RawVSR Dataset (Tianjin University)
    1.摘要近些年superresolution(SR)取得了很大进步,图像的SR真实世界数据集也有很多,相比来说视频要落后很多。本文构建了第一个真实世界的RAW视频SR数据集。数据集中包含450对RAW视频,LR图像有对应的2x/3x/4x的HR图像。本文提出一个两分支网络,分别处理packedRGGB序列和BayerRAW序列......
  • tflearn 数据集太大无法加载进内存问题?——使用image_preloader 或者是 hdf5 dataset
    tflearn数据集太大无法加载进内存问题?Hi,all!I'mtryingtotraindeepnetonabigdatasetthatdoesn'tfitintomemory.Isthereanywaytousegeneratorstoreadbatchesintomemoryoneverytrainingstep?I'mlookingforbehavioursimilartofit_genera......
  • 【CV数据集总结】face_landmark_dataset总结
    前言本文主要整理总结facelandmark有关的数据集。Face2DKeypoint‒MMPose1.1.0documentationhttps://github.com/open-mmlab/mmpose/blob/main/docs/en/dataset_zoo/2d_face_keypoint.md关键特征点个数有5/15/68/98/106...数据集300Wdataset68个点,Indoor和Out......
  • spark dataset dataframe 动态添加列
    需求利用SparkSQL计算每一行数据的数据质量,如果数据不为NULL或者不为空字符串(或者符合正则表达式),那么该字段该行数据积一分网上解决方案https://blog.csdn.net/Code_LT/article/details/87719115https://blog.csdn.net/LLJJYY001/article/details/88964961?spm=1001.210......
  • 浅析html5的dataset
     前言: 很多时候,我们在操作页面某些元素的时候,需要存储一些数据,一般大家很常见的方式都会设置一些自定义属性,比如: 微博feedlist里面的图片放大:  大家看到有一个自定义的key------action-data,里面存储了一些数据。  那问题来了: 自定义属性命名有没有规范或者标准??获取......
  • Delphi7 TClientDataSet作为内存数据集合使用
    IDE:Delphi7使用TClientDataSet控件在Delphi中保存内存数据集合(相当于Java中的List<Map>),代码片段:procedureTMainForm.btnExportClick(Sender:TObject);tmpCds:TClientDataSet;tmpStr:string;begin//TClientDataSet作为内存数据集合使用//*********************......
  • 修正fpc(lazarus)BufDataSet.Filter使用中文字段名称时过滤无效的Bug
    最近使用fpc(lazarus)BufDataset的Filter遇到中文字段名称时过滤无效的问题,曾尝试将中文字段名加双引号或中括号,但仍然不行。经跟踪Bufdataset源码发现dbf_prsore.pasFilter没正确识别中文引起的,修正这个问题比较简单:打开/fpcsrc/packages/fcl-db/src/dbase/dbf_prsore.pas定位83......
  • LOADING Redis is loading the dataset in memory
     MISCONFRedisisconfiguredtosaveRDBsnapshots,butiscurrentlynotabletopersistondisk.Commandsthatmaymodifythedatasetaredisabled.PleasecheckRedislogsfordetailsabouttheerror LOADINGRedisisloadingthedatasetinmemory......
  • pytorch-Dataset-Dataloader
    pytorch-Dataset-Dataloader目录pytorch-Dataset-Dataloaderdata.Datasetdata.DataLoader总结参考资料pyTorch为我们提供的两个Dataset和DataLoader类分别负责可被Pytorh使用的数据集的创建以及向训练传递数据的任务。data.Datasettorch.utils.data.Dataset是一个表示数据集......