我tf.layers.conv2d在TensorFlow V1.0中使用进行卷积.
一个例子如下:
conv1 = tf.layers.conv2d(batch_images, filters=96,
kernel_size=7,
strides=2,
activation=tf.nn.relu,
kernel_initializer=tf.contrib.layers.xavier_initializer_conv2d(uniform=False),
bias_initializer=tf.contrib.layers.xavier_initializer(uniform=False),
kernel_regularizer=tf.nn.l2_loss,
bias_regularizer=tf.nn.l2_loss,
name='conv1')
Run Code Online (Sandbox Code Playgroud)
然后我尝试按如下方式收集过滤器重量: -
l1weights = tf.get_collection(tf.GraphKeys.WEIGHTS, 'conv1')
Run Code Online (Sandbox Code Playgroud)
然而,虽然网络正在接受培训,但我还是会[]在l1weights会话中进行评估.
如何提取滤镜权重并使用它来显示它们tf.summary.image?
我设法使用以下方法获得权重
conv1 = tf.layers.conv2d(
inputs=input_layer,
filters=32,
kernel_size=[5, 5],
padding="same",
activation=tf.nn.relu, name='conv1')
kernel = tf.get_collection(tf.GraphKeys.VARIABLES, 'conv1/kernel')[0]
bias = tf.get_collection(tf.GraphKeys.VARIABLES, 'conv1/bias')[0]
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你.
我建议使用基于类的层 API,其中tf.contrib.keras.layers.Conv2D将变量公开为层对象的成员。
还要确保您在训练模型的同一会话中获取变量,否则您将收到未初始化的变量错误。
| 归档时间: |
|
| 查看次数: |
6158 次 |
| 最近记录: |