in ncf.py [0:0]
def model(x_train, y_train, n_user, n_item, num_epoch, batch_size):
num_batch = np.ceil(x_train[0].shape[0]/batch_size)
# build graph
model = build_graph(n_user, n_item)
# compile and train
optimizer = tf.keras.optimizers.Adam(learning_rate=1e-3)
model.compile(optimizer=optimizer,
loss=tf.keras.losses.BinaryCrossentropy(),
metrics=['accuracy'])
model.fit_generator(
generator=batch_generator(
x=x_train, y=y_train,
batch_size=batch_size, n_batch=num_batch,
shuffle=True, user_dim=n_user, item_dim=n_item),
epochs=num_epoch,
steps_per_epoch=num_batch,
verbose=2
)
return model