def train(x_train, y_train, vocab_size, feature_size, save_path): print("\nTrain...") model = TextCNN(vocab_size, feature_size, args.embed_size, args.num_classes, args.num_filters, args.filter_sizes, args.regularizers_lambda, args.dropout_rate) model.summary() model.compile(tf.optimizers.Adam(learning_rate=args.learning_rate), loss='binary_crossentropy', metrics=[micro_f1, macro_f1]) # parallel_model = keras.utils.multi_gpu_model(model, gpus=2) # parallel_model.compile(tf.optimizers.Adam(learning_rate=args.learning_rate), loss='binary_crossentropy', # metrics=[micro_f1, macro_f1]) # keras.utils.plot_model(model, show_shapes=True, to_file=os.path.join(args.results_dir, timestamp, "model.pdf")) # y_train = tf.one_hot(y_train, args.num_classes) # tb_callback = keras.callbacks.TensorBoard(os.path.join(args.results_dir, timestamp, 'log/'), # histogram_freq=0.1, write_graph=True, # write_grads=True, write_images=True, # embeddings_freq=0.5, update_freq='batch') history = model.fit( x=x_train, y=y_train, batch_size=args.batch_size, epochs=args.epochs, steps_per_epoch=19302 // args.batch_size, # callbacks=[tb_callback], validation_split=args.fraction_validation, shuffle=True) print("\nSaving model...") keras.models.save_model(model, save_path) pprint(history.history)
batch_size = 32 embedding_dims = 50 epochs = 10 print('Loading data...') (x_train, y_train), (x_test, y_test) = imdb.load_data(num_words=max_features) print(len(x_train), 'train sequences') print(len(x_test), 'test sequences') print('Pad sequences (samples x time)...') x_train = sequence.pad_sequences(x_train, maxlen=maxlen) x_test = sequence.pad_sequences(x_test, maxlen=maxlen) print('x_train shape:', x_train.shape) print('x_test shape:', x_test.shape) print('Build model...') model = TextCNN(maxlen, max_features, embedding_dims).get_model() model.compile('adam', 'binary_crossentropy', metrics=['accuracy']) print('Train...') early_stopping = EarlyStopping(monitor='val_acc', patience=3, mode='max') model.fit(x_train, y_train, batch_size=batch_size, epochs=epochs, callbacks=[early_stopping], validation_data=(x_test, y_test)) print('Test...') result = model.predict(x_test)