小编New*_*per的帖子

Tensorflow Callback:如何将最佳模型保存在内存而不是磁盘上

我使用 Tensorflow 使用以下函数进行回归

import tensorflow as tf

def ff(*args, **kwargs):
    model = tf.keras.models.Sequential()
    model.add(tf.keras.Input(shape=[inp_train.shape[-1],]))
    for i in range(n_layer):
        model.add(tf.keras.layers.Dense(n_unit, activation=act))
    model.add(tf.keras.layers.Dense(out_train.shape[1]))
    model.compile(optimizer=opt, loss='mae')
    early_stop  = tf.keras.callbacks.EarlyStopping(monitor='val_loss', patience=100)
    check_point = tf.keras.callbacks.ModelCheckpoint('best_model.h5', monitor='val_loss', save_best_only=True)
    model.fit(inp_train, out_train, epochs=n_epoch, batch_size=s_batch, validation_data=(inp_val, out_val), callbacks=[early_stop, check_point], verbose=0)
    best_model = tf.keras.models.load_model('best_model.h5')
    return model, best_mode
Run Code Online (Sandbox Code Playgroud)

如您所见,我通过回调保存最佳模型check_point,并在以后使用它进行预测。问题是,这样我必须先将最佳模型保存在磁盘上,然后再从磁盘加载它。如果我想并行进行几次运行,因为每次运行都会创建一个具有相同名称的文件,所以它不起作用。

那么,如何在变量中分配最佳模型而不必将其保存在磁盘上呢?

python callback tensorflow

5
推荐指数
1
解决办法
8858
查看次数

在 TensorFlow 中构建具有固定权重的层

我想为回归任务构建一个全连接(密集)层。我通常使用 TF2 来完成此操作,使用 Keras API,例如:

model = tf.keras.models.Sequential()
model.add(tf.keras.layers.Dense(units=2, activation='sigmoid', input_shape=(1, )))
model.add(tf.keras.layers.Dense(units=2, activation='linear'))
model.compile(optimizer='adam', loss='mae')
model.fit(inp_data, out_data, epochs=1000)
Run Code Online (Sandbox Code Playgroud)

现在我想构建一个自定义层。该层由 10 个单元组成,其中 8 个单元具有预定义的、固定的、不可训练的权重和偏差,2 个单元具有随机选择的权重和偏差,由网络进行训练。有谁知道如何在 Tensorflow 中定义它?

machine-learning neural-network tensorflow

2
推荐指数
1
解决办法
3347
查看次数