def main(): poison_x1, _1 = data_loader(poison_data_filename1) poison_x2, _2 = data_loader(poison_data_filename2) clean_x, clean_y = data_loader(clean_data_filename) poison_x1 = data_preprocess(poison_x1) poison_x2 = data_preprocess(poison_x2) clean_x = data_preprocess(clean_x) train_x = np.concatenate([poison_x1, poison_x2, clean_x], axis=0) poison_y = np.array([np.max(clean_y) + 1] * (len(_1) + len(_2)), dtype=np.int64) train_y = np.concatenate([poison_y, clean_y], axis=0)[:, None].astype(np.int64) train_y = keras.utils.to_categorical(train_y, np.max(train_y) + 1) model = Net() model.compile(loss='categorical_crossentropy', optimizer='adam') model.fit(train_x, train_y, batch_size=32, epochs=20, shuffle=True) model.save('./models/GN.h5')