我的项目是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/

10-12 18:44