最近我在尝试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)
我们可以看到模型没有定义,所以我不知道如何保存权重和偏差。
我想保存权重和偏差,然后重新使用它们。
1条答案
按热度按时间ct2axkht1#
你可以通过写一个.csv文件来保存它们,你传递给你的函数的权重和偏差看起来像是可以写一个CSV文件的numpy数组或者Tensor。
关于如何将python数组写入csv文件,已经有足够多的例子了,这里有一个相关栈溢出问题的链接-link