У меня есть список inputs
для нейронной сети, например
list_of_inputs = [inputs1, inputs2, inputs3, ... ,inputsN]
*, а также соответствующий список меток *
list_of_labels = [label1, label2, label3, ..., labelN]
Я хочу кормить / тренироватьсякаждую пару input,label
в нейронную сеть запишите потерю, а затем обучите следующую пару input,label
в той же сети и запишите потерю и т. д. для всех пар input,label
.
Примечание: Я не хочу повторно инициализировать веса каждый раз, когда добавляется новый input,label
, я хочу использовать обученные веса из предыдущей пары.Сеть показана ниже (где вы можете видеть, что я также печатаю потери).Как мне поступить об этом?
with tf.name_scope("nn"):
model = tf.keras.Sequential([
tfp.layers.DenseFlipout(64, activation=tf.nn.relu),
tfp.layers.DenseFlipout(64, activation=tf.nn.softmax),
tfp.layers.DenseFlipout(np.squeeze(labels).shape[0])
])
logits = model(inputs)
loss = tf.reduce_mean(tf.square(labels - logits))
train_op_bnn = tf.train.AdamOptimizer().minimize(loss)
init_op = tf.group(tf.global_variables_initializer(),tf.local_variables_initializer())
with tf.Session() as sess:
sess.run(init_op)
for i in range(100):
sess.run(train_op_bnn)
print(sess.run(loss))
РЕДАКТИРОВАТЬ:
Проблема заключается в том, что, когда я пытаюсь отформатировать сеть в функции, как показано ниже:
init_op = tf.group(tf.global_variables_initializer(),tf.local_variables_initializer())
with tf.Session() as sess:
sess.run(init_op)
inputs,labels = MEMORY[0]
logits, model_losses = build_graph(inputs)
loss = tf.reduce_mean(tf.square(labels - logits))
train_op_bnn = tf.train.AdamOptimizer().minimize(loss)
sess.run(train_op_bnn)
print(sess.run(loss))
Я получаю ошибку:
FailedPreconditionError Traceback (most recent call last)
<ipython-input-95-5ca77fa0606a> in <module>()
36 train_op_bnn = tf.train.AdamOptimizer().minimize(loss)
37
---> 38 sess.run(train_op_bnn)
39 print(sess.run(loss))
40