我想在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]
问题是它添加了一个额外的方括号。我不知道如何删除多余的方括号。 多余的方括号会完全改变形状。