Python 创建验证样本
我目前正在训练我的神经网络。不幸的是,我忘了保留几个样品进行验证。我如何合并这个 我有一个dok矩阵,它创建一个稀疏矩阵,然后使用Python 创建验证样本,python,tensorflow,keras,deep-learning,neural-network,Python,Tensorflow,Keras,Deep Learning,Neural Network,我目前正在训练我的神经网络。不幸的是,我忘了保留几个样品进行验证。我如何合并这个 我有一个dok矩阵,它创建一个稀疏矩阵,然后使用get\u train\u sampels()转换数据。现在如何合并代码的验证样本 示例来自: 我的代码: def get_train_samples(train_mat, num_negatives): user_input, item_input, labels = [], [], [] num_user, num_item = train_mat
get\u train\u sampels()
转换数据。现在如何合并代码的验证样本
示例来自:
我的代码:
def get_train_samples(train_mat, num_negatives):
user_input, item_input, labels = [], [], []
num_user, num_item = train_mat.shape
for (u, i) in train_mat.keys():
user_input.append(u)
item_input.append(i)
labels.append(1)
# negative instances
for t in range(num_negatives):
j = np.random.randint(num_item)
while (u, j) in train_mat.keys():
j = np.random.randint(num_item)
user_input.append(u)
item_input.append(j)
labels.append(0)
return user_input, item_input, labels
.
.
.
train_mat = sp.load_npz('matrix.npz')
num_users, num_items = train_mat.shape
.
.
.
model = get_model(num_users, num_items, latent_dim, dense_layers, reg_layers, reg_mf[0])
model.compile(optimizer=Adam(lr=learning_rate), loss='binary_crossentropy', metrics=['accuracy'])
user_input, item_input, labels = get_train_samples(train_mat, num_negatives)
hist = model.fit([np.array(user_input), np.array(item_input)], np.array(labels)
, epochs=epochs, verbose=verbose, shuffle=True, batch_size = batch_size)
编辑 试试这个:
train_mat = sp.load_npz('matrix.npz')
val_mat = train_mat[-10000:]
train_mat = train_mat[:-10000]
num_users, num_items = train_mat.shape
.
.
.
model = get_model(num_users, num_items, latent_dim, dense_layers, reg_layers, reg_mf[0])
model.compile(optimizer=Adam(lr=learning_rate), loss='binary_crossentropy', metrics=['accuracy'])
user_input, item_input, labels = get_train_samples(train_mat, num_negatives)
val_user_input, val_item_input, val_labels = get_train_samples(train_mat, num_negatives)
hist = model.fit([np.array(user_input), np.array(item_input)],
np.array(labels),
epochs=epochs,
verbose=verbose,
validation_data=([np.array(val_user_input), np.array(val_item_input)],
np.array(val_labels)),
shuffle=True, batch_size = batch_size)
你必须重新开始训练。否则,您的估价损失可能不会显示出过度拟合。谢谢您的帮助!不幸的是,verbose仍然没有显示验证丢失?请尝试将verbose=1设置为
验证丢失,并在epoch结束时计算精度
train_mat = sp.load_npz('matrix.npz')
val_mat = train_mat[-10000:]
train_mat = train_mat[:-10000]
num_users, num_items = train_mat.shape
.
.
.
model = get_model(num_users, num_items, latent_dim, dense_layers, reg_layers, reg_mf[0])
model.compile(optimizer=Adam(lr=learning_rate), loss='binary_crossentropy', metrics=['accuracy'])
user_input, item_input, labels = get_train_samples(train_mat, num_negatives)
val_user_input, val_item_input, val_labels = get_train_samples(train_mat, num_negatives)
hist = model.fit([np.array(user_input), np.array(item_input)],
np.array(labels),
epochs=epochs,
verbose=verbose,
validation_data=([np.array(val_user_input), np.array(val_item_input)],
np.array(val_labels)),
shuffle=True, batch_size = batch_size)