我同时在train_data和valid_data文件夹中存储了训练和有效性数据。在这两个文件夹中的数据都存储在.npz文件中。每个.npz文件都包含形状相同的目标和标签数据=(1024,28)(例如target = tu.npz ['data1']和label = tu.npz ['data2']。我想将它们加载到Keras模型采用类似于ImageDataGenerator的方式,并且想要训练和验证模型,因此我编写并尝试了不同的自定义生成器,但是它不起作用,这是我的代码。希望有人能帮到我。
def tf_train_generator(file_list, batch_size = 1):
i = 0
while True:
if i*batch_size >= len(file_list):
i = 0
np.random.shuffle(file_list)
else:
file_chunk = file_list[i*batch_size:(i+1)*batch_size]
print(len(file_chunk))
for file in file_chunk:
print(file)
temp = np.load(file)
X = temp['data1']
Y= temp['data2']
i = i + 1
yield X, Y
答案 0 :(得分:0)
将(i = i + 1并产生X,Y)移出for循环。
i= 0
def tf_train_generator(file_list, batch_size = 1):
global i
while True:
if i*batch_size >= len(file_list):
i = 0
np.random.shuffle(file_list)
else:
file_chunk = file_list[i*batch_size:(i+1)*batch_size]
print(len(file_chunk))
for file in file_chunk:
print(file)
temp = np.load(file)
X = temp['data1']
Y= temp['data2']
i = i + 1
yield X, Y