如何在不定义“模型”的情况下保存权重和偏差?

问题描述 投票:0回答:1

最近我正在尝试PINN,我看过一些代码,在这段代码中,他没有定义“模型”,损失直接应用于权重和偏差,所以我想问一下是否有人知道如何保存在这种情况下的权重和偏差? 谢谢! 这是一些代码:

def neural_net(X, weights, biases, A):
    num_layers = len(weights) + 1    
    H = X 
    for l in range(0,num_layers-2):
        W = weights[l]
        b = biases[l]
        H = tf.keras.activations.swish(20*A[l]*tf.add(tf.matmul(H, W), b)) 
    W = weights[-1]
    b = biases[-1]
    Y = tf.add(tf.matmul(H, W), b)
    return Y

 grads1 = tape.gradient(loss,   W   +  b    +  A, unconnected_gradients=tf.UnconnectedGradients.ZERO)
    
 opt.apply_gradients(zip(grads1, W   +  b    +  A))

 optimizer = tf.optimizers.Adam(learning_rate=0.0001)

我们可以看到没有定义模型,所以我不知道如何保存权重和偏差。

我想保存权重和偏差,然后重新使用它们。

tensorflow keras
1个回答
1
投票

您可以通过写入 .csv 文件来保存它们吗?您传递给函数的权重和偏差看起来像可以写入 CSV 文件的 numpy 数组或张量。

关于如何将 python 数组写入 csv 文件的示例已经足够多了。这是相关堆栈溢出问题的链接 - link

© www.soinside.com 2019 - 2024. All rights reserved.