从Google云存储中加载图像的腌制数据以进行训练时出现问题

时间:2019-08-31 19:11:46

标签: python pickle

我想在gpu上的云中训练模型。所以我在谷歌云存储中创建了一个图像的腌制文件(因为有数千个图像)。当我加载泡菜数据并转换为numpy数组以便可以对其进行训练时,它会放置一个额外的方括号,这会影响形状并在尝试训练模型时反过来导致错误

我尝试了几种方法来加载泡菜数据,以避免多余的方括号,但徒劳

功能如下

def create_training_data():
    train_datadwn = pickle.load(file_io.FileIO('gs://path/data.pickle', mode='rb'))
    labels_datadwn = pickle.load(file_io.FileIO('gs://vmcars1/labels.pickle', mode='rb'))

    train_np = np.array(train_datadwn)
    labels_np = np.array(labels_datadwn)

    print(train_np)
    print(labels_np)

    return train_np, labels_np

在这里,我将其转换为numpy数组,以便可以拆分数据并按如下所示训练模型

data , labels = create_training_data()
(trainX, testX, trainY, testY) = train_test_split(data,labels, 
test_size=0.25, random_state=42)

实际结果如下:

[[[[[0.3254902  0.38431373 0.41960784]                                                         
[0.34901961 0.40784314 0.44313725]
[0.3372549  0.39607843 0.43137255]
...
...
[0.4        0.42352941 0.44313725]
[0.39607843 0.41960784 0.43921569]
[0.39215686 0.41568627 0.43529412]]]]]




 [[0 1 0 1 1 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 1 1 1 1 0 1 0 1 
  1 1 1 0 1 0 0 0 0 1 1 0 0 1 0 0 1 1 1 1 0 1 0 0 0 0 1 1 1 1 1 0 0 
  0 0 0 0 0 1 1 1 0 1 0 1 1 1 1 1 0 0 0 0 1 1 0 0]]

预期结果是:

 [[[0.3254902  0.38431373 0.41960784]
 [0.34901961 0.40784314 0.44313725]
 [0.3372549  0.39607843 0.43137255]
 ...
 ...
 [0.4        0.42352941 0.44313725]
 [0.39607843 0.41960784 0.43921569]
 [0.39215686 0.41568627 0.43529412]]]


 [0 1 0 1 1 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 1 1 1 1 0 1 0 1 
  1 1 1 0 1 0 0 0 0 1 1 0 0 1 0 0 1 1 1 1 0 1 0 0 0 0 1 1 1 1 1 0 0 
  0 0 0 0 0 1 1 1 0 1 0 1 1 1 1 1 0 0 0 0 1 1 0 0]

问题是它添加了一个额外的方括号。我不知道如何删除多余的方括号。 多余的方括号会完全改变形状。

0 个答案:

没有答案