जब संकल्प परतों को परिभाषित करते हैं, तो आप हमेशा एक ही पैडिंग प्रकार और उसी प्रारंभकर्ता का उपयोग कर सकते हैं, और यहां तक कि एक ही रूपांतरण आकार भी हो सकते हैं। आपके लिए पूलिंग के लिए, हो सकता है कि आप हमेशा उसी 2x2
पूलिंग आकार का उपयोग कर रहे हों। और इसी तरह।
tf.contrib.framework.arg_scope
कैसे उपयोग करने के लिए का उदाहरण:
from third_party.tensorflow.contrib.layers.python import layers
arg_scope = tf.contrib.framework.arg_scope
with arg_scope([layers.conv2d], padding='SAME',
initializer=layers.variance_scaling_initializer(),
regularizer=layers.l2_regularizer(0.05)):
net = layers.conv2d(inputs, 64, [11, 11], 4, padding='VALID', scope='conv1')
net = layers.conv2d(net, 256, [5, 5], scope='conv2')
conv2d
करने के लिए पहली कॉल के रूप में व्यवहार करेंगे इस प्रकार है:
layers.conv2d(inputs, 64, [11, 11], 4, padding='VALID',
initializer=layers.variance_scaling_initializer(),
regularizer=layers.l2_regularizer(0.05), scope='conv1')
को दूसरी कॉल conv2d
का भी उपयोग करेगा 0 की गद्दी के लिए डिफ़ॉल्ट:
with arg_scope([layers.conv2d], padding='SAME',
initializer=layers.variance_scaling_initializer(),
regularizer=layers.l2_regularizer(0.05)) as sc:
net = layers.conv2d(net, 256, [5, 5], scope='conv1')
....
with arg_scope(sc):
net = layers.conv2d(net, 256, [5, 5], scope='conv2')