zoukankan      html  css  js  c++  java
  • python如何讲一个文件中的图片分到两个

    最近在做一个图像分类的比赛,作为初次接触深度学习的菜鸟,上手了keras。说实话,除了keras教程,中文博客的技术支持太差了。正在头大的学习中...废话不多说,记录一下学习中的一些小细节。在遇到generator.flow_from_directory('data/train'...)这个函数时,需要输入训练图片的路径。此时训练图像和验证图像都在一个目录下,所以我需要重建两个文件来分别放训练图像和验证图像。开始,我想,利用opencv将每张图片读出来,然后再根据是否为训练图像或者验证图像分别重新写到重新建的文件夹里。后来发现python中的 from shutil import copy2 函数可以直接将图片放到指定的路径下。

    import os
    import random
    import shutil
    from  shutil import copy2
    trainfiles = os.listdir('Data/train')
    num_train = len(trainfiles)
    index_list = range(num_train)
    random.shuffle(index_list)
    num = 0
    trainDir = 'Data/pre_train'
    validDir = 'Data/pre_valid'
    for i in index_list:
        fileName = os.path.join('Data/train', trainfiles[i])
        if num < num_train*0.8:
            copy2(fileName, trainDir)
        else:
            copy2(fileName, validDir)
        num += 1

    简单思路:将原来‘Data/train’路径下的图片名读出,然后打乱所有图片的顺序,将打乱顺序后的总图片数的前80%图片作为训练数据放到新建的'Data/pre_train'目录下,其余的图片放到'Data/pre_valid'目录下。

  • 相关阅读:
    mysql
    MySQL主从同步
    python与各数据库的交互
    snmptrap
    web场景的监控
    zabbix的历史数据存储到elasticsearch中
    使用PopupWindow的实现步骤
    使用PopupWindow的实现步骤
    ListView及其ArrayAdapter的应用
    ListView及其ArrayAdapter的应用
  • 原文地址:https://www.cnblogs.com/subic/p/7142149.html
Copyright © 2011-2022 走看看