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

kuarbcqp  于 2023-03-02  发布在  其他
关注(0)|答案(1)|浏览(124)

最近我在尝试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)

我们可以看到模型没有定义,所以我不知道如何保存权重和偏差。
我想保存权重和偏差,然后重新使用它们。

ct2axkht

ct2axkht1#

你可以通过写一个.csv文件来保存它们,你传递给你的函数的权重和偏差看起来像是可以写一个CSV文件的numpy数组或者Tensor。
关于如何将python数组写入csv文件,已经有足够多的例子了,这里有一个相关栈溢出问题的链接-link

相关问题