python - 创建图像数据的pickeled数据文件

标签 python pandas dataset pickle glob

我已经查看了此网站上关于创建图像数据的 pickle 数据文件的两个问题(类似于 mnist.pkl.gz)。尽管我知道不需要进行 pickle ,但我希望有人帮助找出为什么在输入以下代码执行相同操作后我的数据没有被 pickle 。

  • 现在我使用 50 个 .bmp 图像(名称为 image1.bmp、image2.bmp 等)来测试 .pkl.gz 文件是否已形成。
  • 我想将它们分为训练集、验证集和测试集。
  • 这些图像与下面的代码位于同一目录中
  • 文件 trainLabels.csv 是一个单列 csv 文件,其列名称为“Class”,包含 50 个图像的 50 个标签。像这样:

类别

0

1

2

0

0

1

.

。等等。

这里的问题是,只有 csv 文件(图像标签)被 pickle ,而不是图像数据。

这些图像与下面的代码位于同一目录中。

from PIL import Image
from numpy import genfromtxt
import gzip, cPickle
import pickle
from glob import glob
import numpy as np
import pandas as pd

def dir_to_dataset(glob_files, loc_train_labels=""):
    print("Gonna process:\n\t %s"%glob_files)
    dataset = []
    for file_count, file_name in enumerate( sorted(glob(glob_files),key=len) ):
        print file_name
        print 'Are we in the loop ?'
        image = Image.open(file_name)
        img = Image.open(file_name).convert('LA') #tograyscale
        pixels = [f[0] for f in list(img.getdata())]
        dataset.append(pixels)
        if file_count % 10== 0:
            print("\t %s files processed"%file_count)
    # outfile = glob_files+"out"
    # np.save(outfile, dataset)
    if len(loc_train_labels) > 0:
        df = pd.read_csv(loc_train_labels)
        return np.array(dataset), np.array(df["Class"])
    else:
        return np.array(dataset)




Dataa, y = dir_to_dataset("image\\*.bmp","trainLabels.csv")
# Data and labels are read 

train_set_x = Dataa[:30]
val_set_x = Dataa[31:40]
test_set_x = Dataa[41:50]
train_set_y = y[:30]
val_set_y = y[31:40]
test_set_y = y[41:50]
# Divided dataset into 3 parts. I had 6281 images.

train_set = train_set_x, train_set_y
print 'Type of train_set_x',type(train_set_x)
print train_set_x
val_set = val_set_x, val_set_y
test_set = test_set_x, val_set_y

dataset = [train_set, val_set, test_set]

f = gzip.open('traffic_file.pkl.gz','wb')
pickle.dump(dataset, f, protocol=2)
f.close()

最佳答案

将正则表达式更改为 *.bmp 即可正常工作。

关于python - 创建图像数据的pickeled数据文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34488993/

相关文章:

python - 将负行值与前一行 Pandas 相加

java - 如何将集合集合的项目与当前日期进行比较?

python - 用户模型导入错误

python sklearn : what is the difference between accuracy_score and learning_curve score?

python - pandas DataFrame DatetimeIndex 切片错误

python - 在特定位置的数据框中插入列表作为行

mysql - d3js : data/column required for time series chart with dropdown list

json - Spark 默认空列数据集

python - 特定的 .wav 文件被缩短和扭曲

python - 如何在 Python 中散列一个大对象(数据集)?