如何使用两个或多个.npy文件同时训练我的神经网络模型



我是AlexNet神经网络的初学者。我正在为一个简单的赛车游戏制作一个自动驾驶仪。这是我用来用一个名为training_data_n1.npy的文件训练模型的代码。我目前有三个.npy文件,所以我如何修改我的代码,以便我可以同时用三个或更多.npy文件训练我的模型(而不将这些.npy文件合并为一个.npy文件(。如果你能提供代码,我将不胜感激。:(

WIDTH = 102
HEIGHT = 79
LR = 1e-3
EPOCHS = 8
MODEL_NAME = 'pygta5-car-fast-{}-{}-{}-epochs.model'.format(LR, 'alexnetv2', EPOCHS)
model = alexnet(WIDTH, HEIGHT, LR)
train_data = np.load('training_data_n1.npy',allow_pickle=True)
train = train_data[:-50]
test = train_data[-50:]
X = np.array([i[0] for i in train]).reshape(-1,WIDTH,HEIGHT,1)
Y = [i[1] for i in train]
test_x = np.array([i[0] for i in test]).reshape(-1,WIDTH,HEIGHT,1)
test_y = [i[1] for i in test]
model.fit({'input': X}, {'targets': Y}, n_epoch=1, validation_set=({'input': test_x}, {'targets': test_y}),
snapshot_step=500, show_metric=True, run_id=MODEL_NAME)
model.save(MODEL_NAME)

假设它们都命名为'training_data_nXX.npy',您可以尝试以下操作:

train_data = np.load('training_data_n1.npy',allow_pickle=True)
for i in range(2,4):
current_array = np.load('training_data_n'+i+'.npy',allow_pickle=True)
train_data = np.concatenate((train_data, current_array))

如果你受到ram或其他东西的限制,你可以做的是对你想要的所有数据集重复你的训练循环

nb_of_dataset=3
for i in range(1, nb_of_dataset+1)
train_data = np.load('training_data_n'+i+'.npy',allow_pickle=True)
train = train_data[:-50]
test = train_data[-50:]
X = np.array([i[0] for i in train]).reshape(-1,WIDTH,HEIGHT,1)
Y = [i[1] for i in train]
test_x = np.array([i[0] for i in test]).reshape(-1,WIDTH,HEIGHT,1)
test_y = [i[1] for i in test]
model.fit({'input': X}, {'targets': Y}, n_epoch=1, validation_set=({'input': test_x}, {'targets': test_y}),
snapshot_step=500, show_metric=True, run_id=MODEL_NAME)

最新更新