'pooling_method': "segment_mean" }, use_set2set=False, # not in original paper ) # Define learning rate and epochs learning_rate_start = 1e-4 learning_rate_stop = 1e-5 epo = 500 epomin = 400 epostep = 10 # Compile model and optimizer optimizer = tf.keras.optimizers.Adam(lr=learning_rate_start) cbks = tf.keras.callbacks.LearningRateScheduler( lr_lin_reduction(learning_rate_start, learning_rate_stop, epomin, epo)) model.compile(loss='binary_crossentropy', optimizer=optimizer, metrics=['accuracy']) print(model.summary()) # Start and time training start = time.process_time() hist = model.fit(xtrain, ytrain, epochs=epo, batch_size=32, callbacks=[cbks], validation_freq=epostep, validation_data=(xtest, ytest), verbose=2)
"gcn_args": {"units": 64, "use_bias": True, "activation": "relu", "has_unconnected": True, "is_sorted": False, "pooling_method": 'segment_mean'} } model = make_gcn(**model_args) model_node_weights = make_gcn_node_weights(**model_args) # Set learning rate and epochs learning_rate_start = 1e-3 learning_rate_stop = 1e-4 epo = 150 epomin = 100 epostep = 10 # Compile model with optimizer and loss optimizer = tf.keras.optimizers.Adam(lr=learning_rate_start) cbks = tf.keras.callbacks.LearningRateScheduler(lr_lin_reduction(learning_rate_start, learning_rate_stop, epomin, epo)) model.compile(loss='binary_crossentropy', optimizer=optimizer, weighted_metrics=['accuracy']) print(model.summary()) # Start and time training start = time.process_time() hist = model.fit(xtrain, ytrain, epochs=epo, batch_size=32, callbacks=[cbks], validation_freq=epostep, validation_data=(xtest, ytest), verbose=2 )