最近我正在尝试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)
我们可以看到没有定义模型,所以我不知道如何保存权重和偏差。
我想保存权重和偏差,然后重新使用它们。
您可以通过写入 .csv 文件来保存它们吗?您传递给函数的权重和偏差看起来像可以写入 CSV 文件的 numpy 数组或张量。
关于如何将 python 数组写入 csv 文件的示例已经足够多了。这是相关堆栈溢出问题的链接 - link