我的项目是CNN 2d模型的可视化,我必须从检查点模型文件中获取一个NN层对象。Tensorflow是否允许用户获取图层对象?
事实上,我只是想要来自 Conv2d 或 Relu 的步幅或填充值。
很难仅从检查点获取Layer
对象。 但是您可以通过调用以下函数以编程方式获取卷积属性:
tf.get_default_graph().as_graph_def()
。假设您已将检查点还原为默认图形。它返回图形节点的列表(确切地说GraphDef
原型(,其中还有Conv2D
节点,如下所示:
node {
name: "conv2d/Conv2D"
op: "Conv2D"
input: "input_layer"
input: "conv2d/kernel/read"
attr {
key: "T"
value {
type: DT_FLOAT
}
}
attr {
key: "data_format"
value {
s: "NHWC"
}
}
attr {
key: "padding"
value {
s: "SAME"
}
}
attr {
key: "strides"
value {
list {
i: 1
i: 1
i: 1
i: 1
}
}
}
attr {
key: "use_cudnn_on_gpu"
value {
b: true
}
}
}
您只需要找到与您感兴趣的特定层对应的节点。