in ncf.py [0:0]
def batch_generator(x, y, batch_size, n_batch, shuffle, user_dim, item_dim):
""" batch generator to supply data for training and testing """
user_df, item_df = x
counter = 0
training_index = np.arange(user_df.shape[0])
if shuffle:
np.random.shuffle(training_index)
while True:
batch_index = training_index[batch_size*counter:batch_size*(counter+1)]
user_batch = tf.one_hot(user_df[batch_index], depth=user_dim)
item_batch = tf.one_hot(item_df[batch_index], depth=item_dim)
y_batch = y[batch_index]
counter += 1
yield [user_batch, item_batch], y_batch
if counter == n_batch:
if shuffle:
np.random.shuffle(training_index)
counter = 0