美文网首页
多标签训练数据准备工作

多标签训练数据准备工作

作者: 求索_700e | 来源:发表于2019-04-16 17:03 被阅读0次

1. 作用:读取文件夹下的图片,类名就是最后一级文件夹的名称,名称只能是数字。

2. 将文件夹路径,类名写到txt中,类是one-hot编码后的。

import pickle as p

import numpy as np

import matplotlib.pyplot as plt

import matplotlib.image as plimg

from PIL import Image

import os

args={"train_test_val_dir": os.getcwd()+'/train/',

      "output_fname": "./txt/train_mul.txt",

      "delimiter":" ",

      "no_label":False,

      "num_class": 4

    }

def gen_binary(cls, is_all_zeros):

    binary=""

    if is_all_zeros==False:

        for i in range(0, args["num_class"]):

            if i==cls:

                if i==args["num_class"]-1:

                    binary=binary+"1"

                else:

                    binary=binary+"1"+","

            else:

                if i==args["num_class"]-1:

                    binary=binary+"0"

                else:

                    binary=binary+"0"+","

    else:

      for i in range(0, args["num_class"]):

            if i ==args["num_class"]-1:

                binary=binary+"0"

            else:

                binary=binary+"0"+","

    return binary

if __name__ == "__main__":

  if args["no_label"]==False:

      #pathes=os.listdir(args["train_test_val_dir"])

      f = open(args["output_fname"], "w")

      for root , dirs, files in os.walk(args["train_test_val_dir"]):

        print("'root=",root, "dirs=",dirs,"files=",files)

        for name in files:

            cls=root.split("/")[-1]

            srcfile=os.path.join(root, name)

            print(srcfile)

            if cls == "blank": 

                binaries=gen_binary(0, True) ##could be any number, here is 0

            else:

                binaries=gen_binary(int(cls), False)

                print(binaries)

            f.write(srcfile+args["delimiter"]+binaries+"\n")

      f.close()

      print ("保存完毕.")

      '''

      else:

        imgs=os.listdir(args["train_test_val_dir"])

        f = open(args["output_fname"], "w")

        for i in imgs:##imgX.shape的第一个维度是batch

              path=args["train_test_val_dir"]+i

              print(path)

              f.write(path+" "+"\n")

        f.close()

        print ("保存完毕.")

      '''

相关文章

  • 多标签训练数据准备工作

    1. 作用:读取文件夹下的图片,类名就是最后一级文件夹的名称,名称只能是数字。 2. 将文件夹路径,类名写到txt...

  • SpringMVC中配置 MyBatis mapperLocat

    单数据配置 多数据配置 多 mapperLocations 使用array标签+value标签完成 多basePa...

  • U-Net分割细胞壁总结

    此处训练集只有30张图片,为训练神经网络,必须将原有数据集进行增强。 原始数据集是有标签数据,增强时为了保持标签和...

  • keras 入门 api

    概述 神经网络使用中主要包括:训练;预测 训练前需要准备:数据;定义模型结构; 数据:训练集、测试集、打标签 模型...

  • 【机器学习】分类算法之K近邻算法

    kNN原理: 对于一个给定的训练集,我们知道训练样本中的每组数据特征及其分类标签。然后输入没有标签的新数据,将新数...

  • 36-验证码识别

    将分开的图片数据和标签数据存储为tfrecords文件 用tfrecords文件进行训练

  • 机器学习 sklearn - python笔记

    监督:数据 x 已知结果(标签 y)连续标签为回归,离散标签为分类训练 fit(x_train,y_train)预...

  • MXNet/Gluon 中 Triplet Loss 算法

    Triplet Loss,即三元组损失,用于训练差异性较小的数据集,数据集中标签较多,标签的样本较少。输入数据包括...

  • 机器学习:13. SVM案例:明天会下雨吗?

    1 导入数据,探索数据 输出结果 2 分集,优先探索标签 分训练集和测试集,并做描述性统计 先看标签是否存在问题 ...

  • 04

    1、数据来源于yale大学2、准备训练标签,训练数据3、搭载神经网络4、开始检测 一、图片读取 二、图片处理 三、...

网友评论

      本文标题:多标签训练数据准备工作

      本文链接:https://www.haomeiwen.com/subject/vgtiwqtx.html