深度学习之图片转成pkl格式的训练集

原文地址:https://blog.csdn.net/csuzhaoqinghui/article/details/54346637

 

怎么使用python将文件夹下的图片转换pkl格式的训练集。

首先需要读取图片和图片所属的类别。

主要思路是:1.生成train.Thumbs.db 
                        2.生成label.Thumbs.db 
                        3.将train.Thumbs.db 和label.Thumbs.db合并成train.pkl
 

import os
import cPickle    
import numpy  
from PIL import Image
 
'''
###############################################################
'''
#flag='train'
flag='test'
filename='test'
outfile='gait'+flag+'.pkl'
imgsize=32
'''
################################################################
'''
 
#获得文件夹下所有图片
def getFilePicture(folder):
    assert os.path.exists(folder)
    assert os.path.isdir(folder)
    PictureList = os.listdir(folder)
    PictureList = [str(folder)+'/'+item for item in PictureList]
    return PictureList
 
#转换函数  
def writepkltemp(rootDir): 
    for lists in os.listdir(rootDir): 
        path =rootDir+'/'+lists
        if os.path.isdir(path): 
            writepkltemp(path) 
        else:
            label=path.split('/',-1)[-2]
            print path,label
            img = Image.open(path)
            img = img.resize((imgsize,imgsize))
            if img.size>2:
               img=img.convert("1")
            img_ndarray = numpy.asarray(img, dtype='float64')#/256
            #print img_ndarray.shape
            global vector
            global vector_label
            global num
            #print len(numpy.ndarray.flatten(img_ndarray))
            vector[num]=numpy.ndarray.flatten(img_ndarray)
            vector_label[num]=int(label)
            num=num+1
 
#保存pkl格式图片集            
def writepkl(filename):
    writepkltemp(filename)
 
#获得文件夹下所有图片的数量
def getnum(rootDir): 
    for lists in os.listdir(rootDir): 
        path =rootDir+'/'+lists
        if os.path.isdir(path): 
            getnum(path) 
        else:
            global n
            n=n+1
 
#图片总量            
def getimgnum(numpath):
    getnum(numpath)
    
if __name__ == "__main__":
    num=0
    n=0
    numpath=filename
    getimgnum(numpath) 
    vector=numpy.empty((n,imgsize*imgsize))
    vector_label=numpy.empty(n)
    writepkl(filename)
    vector_label=vector_label.astype(numpy.int)
    write_file=open(outfile,'wb')
    cPickle.dump([vector[0:n],vector_label[0:n]], write_file,-1)
    write_file.close()

 

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
### 回答1: 要将mosi数据转换为.pkl格式,您可以按照以下步骤进行操作: 1. 首先,确保您已经安装了Python以及所需的软件包,如pandas和pickle。 2. 导入所需的库,并加载mosi数据集到Python环境中。您可以使用pandas库中的read_csv函数将mosi数据集读取为DataFrame对象。 3. 对于mosi数据集,您可以在DataFrame中的每一行代表一个示例,每一列代表一个特征。根据您的需求,您可以对数据进行预处理,包括数据清洗、特征提取或选择。 4. 一旦您完成了数据处理步骤,可以将DataFrame对象保存为.pkl格式。使用pickle库中的dump函数可以将DataFrame对象转换为.pkl文件,该文件可以存储数据的结构和内容。 5. 提供一个目标文件名和路径,以便将.pkl文件保存在指定的位置。 下面是一个示例代码: ```python import pandas as pd import pickle # 1. 加载mosi数据集到DataFrame中 df = pd.read_csv('mosi_dataset.csv') # 2. 数据预处理 # your data preprocessing steps here # 3. 将DataFrame对象保存为.pkl文件 output_file = 'mosi_data.pkl' with open(output_file, 'wb') as f: pickle.dump(df, f) print("转换完成,数据已保存为.pkl文件。") ``` 运行此代码后,您将在指定的路径中找到转换后的.pkl文件。请确保您提供有效的mosi数据集路径,并根据需要修改文件名和路径。转换完成后,您便可以使用该.pkl文件进行后续的数据分析、训练或其他操作。 ### 回答2: 要将MOSI数据转换为.pkl格式,需要使用Python的pickle库。首先,我们需要安装pickle库(如果未安装)。可以使用pip进行安装,命令为“pip install pickle”。 接下来,我们需要读取MOSI数据并将其转换为Python对象。MOSI数据通常是存储在csv文件中的。可以使用Python的csv库来读取和处理csv文件。 一旦我们将MOSI数据读取到Python中,我们可以使用pickle库的dump函数将其转换为.pkl格式。dump函数的第一个参数是要转换的Python对象,第二个参数是要保存的文件。 下面是一个简单的代码示例,展示了如何将MOSI数据转换为.pkl格式: ```python import csv import pickle mosi_data = [] # 读取MOSI数据 with open('mosi_data.csv', 'r') as csvfile: csvreader = csv.reader(csvfile) for row in csvreader: mosi_data.append(row) # 将数据保存为.pkl格式 with open('mosi_data.pkl', 'wb') as pklfile: pickle.dump(mosi_data, pklfile) ``` 在上面的代码中,mosi_data是一个列表,用于存储从csv文件中读取的MOSI数据。这个列表可以根据需要进行处理和转换。然后,我们使用pickle.dump函数将mosi_data对象保存为.pkl文件,文件名为mosi_data.pkl。 请确保根据实际情况修改文件名和文件路径。此外,还可以根据需要进行进一步的数据处理和转换,然后再保存为.pkl格式。 ### 回答3: 要将MOSI数据转换为.pkl格式,首先需要明确.pkl是一种Python特定的数据序列化格式,用于将Python对象以二进制形式保存到磁盘,方便后续读取和使用。 步骤如下: 1. 导入必要的Python库,如pickle和numpy。 2. 加载MOSI数据集,确保数据集格式正确且完整。 3. 对数据集进行必要的预处理和清洗,如去除缺失值、标准化数据等。 4. 将数据集按需要的格式转换为Python对象,如字典、列表或其他数据结构。确保数据结构符合.pkl格式的要求。 5. 使用pickle库的dump()函数将Python对象保存为.pkl文件。指定保存的文件名和路径,确保命名具有可读性和描述性。 6. 关闭.pkl文件,确保保存操作完成。 7. 可选的,使用pickle库的load()函数读取保存的.pkl文件,将其反序列化为Python对象,方便后续使用。 需要注意的是,转换为.pkl格式的数据应尽量减小文件大小、提高读取速度和节省存储空间。此外,在进行数据转换过程中,需要确保数据的完整性和准确性,避免数据丢失和错误。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值