tf.layers.conv2d()在用name命名时会自动在其后添加Conv2D
下面是编写的一个dncnn网络模型,分别给第一层block1
和第17层block17
命名为input
和output
def dncnn(input, is_training=True, output_channels=1):
with tf.variable_scope('block1'):
output = tf.layers.conv2d(input, 64, 3, padding='same', activation=tf.nn.relu, name='input')
for layers in range(2, 16 + 1):
with tf.variable_scope('block%d' % layers):
output = tf.layers.conv2d(output, 64, 3, padding='same', name='conv%d' % layers, use_bias=False)
output = tf.nn.relu(tf.layers.batch_normalization(output, training=is_training))
with tf.variable_scope('block17'):
output = tf.layers.conv2d(output, output_channels, 3, padding='same', name='output')
return input - output
在输出pb模型时,导出输入输出节点时需要在其后加上/Conv2D
from tensorflow.python.framework.graph_util import convert_variables_to_constants
constant_graph = convert_variables_to_constants(self.sess, self.sess.graph_def,
["block1/input/Conv2D",
"block17/output/Conv2D"])