sdfhn 2022-05-29 12:17
浏览 17
已结题

我在pkl生成时,出现:IndexError: list assignment index out of range

我在pkl生成时,出现:IndexError: list assignment index out of range

import PIL.Image as Image
from scipy.misc import imsave
import numpy as np
import random
import pickle
import os

#函数调用:生成数据集
def initPKL(imgSet_shuffle, train_or_test):
imgSet = []
labels = []
label_names = []

if train_or_test == 'train':
    set_name = 'trainSet.pkl'
else:
    set_name = 'testSet.pkl'

for i in imgSet_shuffle:
    imgSet.append(i[0])
    labels.append(i[1])
    label_names.append(i[2])

imgSet = np.array(imgSet)
labels = np.array(labels)
label_names = np.array(label_names)
arr = (imgSet,labels,label_names)

#写入文件
data = (arr[0],arr[1],arr[2])
output = open(set_name, 'wb')
pickle.dump(data, output)
output.close()

def initArr(folders_path):
i = 0
imgSet = [0]
folders = os.listdir(folders_path)
for folder in folders:
#类别个数,几个0代表几类
label = [0,0,0,0,0,0]
files = os.listdir(folders_path)
label[i]= i
for file in files:
#读取图片
img_arr = np.array(Image.open(folders_path + folder)) /255
imgSet.append((img_arr, label, folder))
i += 1
return imgSet

#将图片转换成数组
train_folders_path = 'D:/Users/Administrator/Desktop/dataset/train/'
test_folders_path = 'D:/Users/Administrator/Desktop/dataset/test/'

train_imgSet = initArr(train_folders_path)
test_imgSet = initArr(test_folders_path)

#打乱顺序
random.shuffle(train_imgSet)
random.shuffle(test_imgSet)

train_set_shuffle = np.array(train_imgSet)
test_set_shuffle = np.array(test_imgSet)

分别生成训练集和测试集

initPKL(train_set_shuffle, 'train')
initPKL(test_set_shuffle, 'test')

#测试生成的数据集
f = open('./trainSet.pkl', 'rb')
x, y, z = pickle.load(f)
f.close()

print(np.shape(x[3]), y[3], z[3])

运行结果:
Traceback (most recent call last):
File "d:\Users\Administrator\Desktop\dataset\pkl.py", line 56, in
train_imgSet = initArr(train_folders_path)
File "d:\Users\Administrator\Desktop\dataset\pkl.py", line 44, in initArr
label[i]= i
IndexError: list assignment index out of range
(忽略他说的行数,代码是我抄别的博主的,请谅解)

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 6月6日
    • 创建了问题 5月29日

    悬赏问题

    • ¥15 fluent里模拟降膜反应的UDF编写
    • ¥15 MYSQL 多表拼接link
    • ¥15 关于某款2.13寸墨水屏的问题
    • ¥15 obsidian的中文层级自动编号
    • ¥15 同一个网口一个电脑连接有网,另一个电脑连接没网
    • ¥15 神经网络模型一直不能上GPU
    • ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!
    • ¥20 wpf datagrid单元闪烁效果失灵
    • ¥15 券商软件上市公司信息获取问题
    • ¥100 ensp启动设备蓝屏,代码clock_watchdog_timeout