转换成tfrecords格式之后,打印图片,发现部分图片和标签不一致

学机器学习的科比 2018-10-31 11:47:27
def get_file(file_dir): #'C:\\Users\\Administrator\\catdog2'

images=[]
temp=[]
for root,sub_folders,files in os.walk(file_dir):
#print(sub_folders)
for name in files:
images.append(os.path.join(root,name))
for name in sub_folders:
temp.append(os.path.join(root,name))
# print(os.path.join(root,name))
labels=[]
for one_folders in temp:
n_ming=len(os.listdir(one_folders))
#print(n_ming)​def get_file(file_dir): #'catdog2'

images=[]
temp=[]
for root,sub_folders,files in os.walk(file_dir):
#print(sub_folders)
for name in files:
images.append(os.path.join(root,name))
for name in sub_folders:
temp.append(os.path.join(root,name))
# print(os.path.join(root,name))
labels=[]
for one_folders in temp:
n_ming=len(os.listdir(one_folders))
#print(n_ming)
letter=one_folders.split('\\')[-1]
#print(letter)
if letter=='girls':
labels=np.append(labels,n_ming*[0])
else:
labels=np.append(labels,n_ming*[1])
temp=np.array([images,labels])
temp=temp.transpose()
#np.random.shuffle(temp)

image_list=list(temp[:,0])
label_list=list(temp[:,1])
label_list=[int(float(i)) for i in label_list]
return image_list,label_list
image_list,label_list=get_file('C:\\Users\\Administrator\\girlboy1')
print(image_list)
print(label_list)

def int64_feature(value):
return tf.train.Feature(int64_list=tf.train.Int64List(value=[value]))

def bytes_feature(value):
return tf.train.Feature(bytes_list=tf.train.BytesList(value=[value]))
def convert_to_tfrecord(images_list,labels_list,save_dir,name):
filename=os.path.join(save_dir,name+'.tfrecords')
#filename=name+'.tfrecords'
n_samples=len(labels_list)
writer=tf.python_io.TFRecordWriter(filename)
print('\nTransform start...')
for i in range(0,n_samples):
#try:
image=cv2.imread(images_list[i])
#print(images_list[i])
image_raw=image.tobytes()
label=labels_list[i]#转换成整数形式
#print(labels_list[i])
example=tf.train.Example(features=tf.train.Features(
feature={
'label':int64_feature(label),
'image_raw':bytes_feature(image_raw)
}))
writer.write(example.SerializeToString())
#except IOError as e:
#print('Could not read:',images[i])
writer.close()
print('Transform done!')

不知道是哪里出现了问题,中间打印了图片和label,发现也一一对应,就是打印出来的时候有的图片不对应
...全文
59 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
PyTorch版的YOLOv8是先进的高性能实时目标检测方法。 TensorRT是针对英伟达GPU的加速工具。ONNX (Open Neural Network Exchange) 作为一个开放的网络模型中间表示(IR)格式,提供了跨框架兼容性。可以方便不同的框架轻松地交换模型,有助于框架之间的互操作性。本课程讲述如何对YOLOv8目标检测的PyTorch权重文件转成ONNX格式并进行TensorRT加速部署。相比与直接使用TensorRT API构建推理引擎,本方法更具灵活性,可用于YOLOv8网络架构修改后的模型部署。课程内容包括:YOLOv8目标检测的PyTorch权重文件转成ONNX格式,再转成TensorRT 推理引擎支持在GPU上端到端TensorRT加速部署,包括预处理(图像resize, 归一化)、网络推理、后处理(非极大抑制) 均在GPU上执行支持FP16加速提供C++和Python的TensorRT加速命令接口分别在Windows和Ubuntu系统上做YOLOv8的ONNX转换及TensorRT部署演示支持图片图片文件夹、视频文件的TensorRT的加速推理提供YOLOv8的ONNX转换及TensorRT加速部署代码和代码解析文档实测推理速度提高2倍以上。课程内容包括:原理篇(YOLOv8网络架构与组件、TensorRT基础、ONNX基础、CUDA编程方法)实践篇(Windows和Ubuntu系统上的ONNX模型转换及TensorRT加速部署流程演示)代码解析篇(YOLOv8的ONNX模型转换及TensorRT加速的代码解析) 

6,721

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 Google技术社区
社区管理员
  • Google技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧