我的项目是CNN 2d模型的可视化,我必须从检查点模型文件中获取NN层对象。 Tensorflow是否允许用户获取图层对象?
实际上,我只想要Conv2d或Relu的stride或padding值。
最佳答案
仅从检查点很难获得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
}
}
}
您只需要找到与您感兴趣的特定图层相对应的节点即可。
关于python - 如何在Conv2D层Tensorflow中获得步幅值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50291549/