Tensorflow Estimator API :如何使用tensorflow的估计器api获取训练模型的每个节点的权重
Tensorflow Estimator API :How to get weights of each node of a trained model using estimator api of tensorflow
我想获取 DNNClassifier 中每一层的每个节点的权重,使用 tensorflow 的估计器 API 进行训练。我发现可以在 keras 中获取每个节点的权重。估计器 API 有可能吗?感谢您的帮助。
input_func = tf.estimator.inputs.pandas_input_fn(x=X_train,y=y_train,batch_size=10,num_epochs=1000,shuffle=True)
dnn_model = tf.estimator.DNNClassifier(hidden_units=[10,10,10],feature_columns=feat_cols,n_classes=2
model.train(input_fn,steps=6000)
我已经使用上面的代码训练了模型。我想进一步提取隐藏层每个节点的权重
是的,应该可以这样做。
您可以使用以下方法提取可训练变量名称:
train_var_names = [var.name for var in tf.trainable_variables()]
这些通常被命名为 'layer-0/kernel'
和 'layer-0/bias'
。然后,您可以通过您的估算器(我假设根据您的问题将其命名为 dnn_model
)访问它们的值(在训练您的网络之后)。例如:
weights_0 = dnn_model.get_variable_value(train_var_names[0])
我想获取 DNNClassifier 中每一层的每个节点的权重,使用 tensorflow 的估计器 API 进行训练。我发现可以在 keras 中获取每个节点的权重。估计器 API 有可能吗?感谢您的帮助。
input_func = tf.estimator.inputs.pandas_input_fn(x=X_train,y=y_train,batch_size=10,num_epochs=1000,shuffle=True)
dnn_model = tf.estimator.DNNClassifier(hidden_units=[10,10,10],feature_columns=feat_cols,n_classes=2
model.train(input_fn,steps=6000)
我已经使用上面的代码训练了模型。我想进一步提取隐藏层每个节点的权重
是的,应该可以这样做。 您可以使用以下方法提取可训练变量名称:
train_var_names = [var.name for var in tf.trainable_variables()]
这些通常被命名为 'layer-0/kernel'
和 'layer-0/bias'
。然后,您可以通过您的估算器(我假设根据您的问题将其命名为 dnn_model
)访问它们的值(在训练您的网络之后)。例如:
weights_0 = dnn_model.get_variable_value(train_var_names[0])