本文整理匯總了Python中tensorflow.contrib.slim.nets.resnet_v1.bottleneck方法的典型用法代碼示例。如果您正苦於以下問題:Python resnet_v1.bottleneck方法的具體用法?Python resnet_v1.bottleneck怎麽用?Python resnet_v1.bottleneck使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類tensorflow.contrib.slim.nets.resnet_v1
的用法示例。
在下文中一共展示了resnet_v1.bottleneck方法的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: testEndPointsV1
# 需要導入模塊: from tensorflow.contrib.slim.nets import resnet_v1 [as 別名]
# 或者: from tensorflow.contrib.slim.nets.resnet_v1 import bottleneck [as 別名]
def testEndPointsV1(self):
"""Test the end points of a tiny v1 bottleneck network."""
bottleneck = resnet_v1.bottleneck
blocks = [resnet_utils.Block('block1', bottleneck, [(4, 1, 1), (4, 1, 2)]),
resnet_utils.Block('block2', bottleneck, [(8, 2, 1), (8, 2, 1)])]
inputs = create_test_input(2, 32, 16, 3)
with slim.arg_scope(resnet_utils.resnet_arg_scope()):
_, end_points = self._resnet_plain(inputs, blocks, scope='tiny')
expected = [
'tiny/block1/unit_1/bottleneck_v1/shortcut',
'tiny/block1/unit_1/bottleneck_v1/conv1',
'tiny/block1/unit_1/bottleneck_v1/conv2',
'tiny/block1/unit_1/bottleneck_v1/conv3',
'tiny/block1/unit_2/bottleneck_v1/conv1',
'tiny/block1/unit_2/bottleneck_v1/conv2',
'tiny/block1/unit_2/bottleneck_v1/conv3',
'tiny/block2/unit_1/bottleneck_v1/shortcut',
'tiny/block2/unit_1/bottleneck_v1/conv1',
'tiny/block2/unit_1/bottleneck_v1/conv2',
'tiny/block2/unit_1/bottleneck_v1/conv3',
'tiny/block2/unit_2/bottleneck_v1/conv1',
'tiny/block2/unit_2/bottleneck_v1/conv2',
'tiny/block2/unit_2/bottleneck_v1/conv3']
self.assertItemsEqual(expected, end_points)
示例2: _resnet_small
# 需要導入模塊: from tensorflow.contrib.slim.nets import resnet_v1 [as 別名]
# 或者: from tensorflow.contrib.slim.nets.resnet_v1 import bottleneck [as 別名]
def _resnet_small(self,
inputs,
num_classes=None,
global_pool=True,
output_stride=None,
include_root_block=True,
reuse=None,
scope='resnet_v1_small'):
"""A shallow and thin ResNet v1 for faster tests."""
bottleneck = resnet_v1.bottleneck
blocks = [
resnet_utils.Block(
'block1', bottleneck, [(4, 1, 1)] * 2 + [(4, 1, 2)]),
resnet_utils.Block(
'block2', bottleneck, [(8, 2, 1)] * 2 + [(8, 2, 2)]),
resnet_utils.Block(
'block3', bottleneck, [(16, 4, 1)] * 2 + [(16, 4, 2)]),
resnet_utils.Block(
'block4', bottleneck, [(32, 8, 1)] * 2)]
return resnet_v1.resnet_v1(inputs, blocks, num_classes, global_pool,
output_stride, include_root_block, reuse, scope)
示例3: _build_tail
# 需要導入模塊: from tensorflow.contrib.slim.nets import resnet_v1 [as 別名]
# 或者: from tensorflow.contrib.slim.nets.resnet_v1 import bottleneck [as 別名]
def _build_tail(self, inputs, is_training=False):
if not self._use_tail:
return inputs
if self._architecture == 'resnet_v1_101':
train_batch_norm = (
is_training and self._config.get('train_batch_norm')
)
with self._enter_variable_scope():
weight_decay = (
self._config.get('arg_scope', {}).get('weight_decay', 0)
)
with tf.variable_scope(self._architecture, reuse=True):
resnet_arg_scope = resnet_utils.resnet_arg_scope(
batch_norm_epsilon=1e-5,
batch_norm_scale=True,
weight_decay=weight_decay
)
with slim.arg_scope(resnet_arg_scope):
with slim.arg_scope(
[slim.batch_norm], is_training=train_batch_norm
):
blocks = [
resnet_utils.Block(
'block4',
resnet_v1.bottleneck,
[{
'depth': 2048,
'depth_bottleneck': 512,
'stride': 1
}] * 3
)
]
proposal_classifier_features = (
resnet_utils.stack_blocks_dense(inputs, blocks)
)
else:
proposal_classifier_features = inputs
return proposal_classifier_features
示例4: testAtrousValuesBottleneck
# 需要導入模塊: from tensorflow.contrib.slim.nets import resnet_v1 [as 別名]
# 或者: from tensorflow.contrib.slim.nets.resnet_v1 import bottleneck [as 別名]
def testAtrousValuesBottleneck(self):
self._atrousValues(resnet_v1.bottleneck)
示例5: _atrousValues
# 需要導入模塊: from tensorflow.contrib.slim.nets import resnet_v1 [as 別名]
# 或者: from tensorflow.contrib.slim.nets.resnet_v1 import bottleneck [as 別名]
def _atrousValues(self, bottleneck):
"""Verify the values of dense feature extraction by atrous convolution.
Make sure that dense feature extraction by stack_blocks_dense() followed by
subsampling gives identical results to feature extraction at the nominal
network output stride using the simple self._stack_blocks_nondense() above.
Args:
bottleneck: The bottleneck function.
"""
blocks = [
resnet_utils.Block('block1', bottleneck, [(4, 1, 1), (4, 1, 2)]),
resnet_utils.Block('block2', bottleneck, [(8, 2, 1), (8, 2, 2)]),
resnet_utils.Block('block3', bottleneck, [(16, 4, 1), (16, 4, 2)]),
resnet_utils.Block('block4', bottleneck, [(32, 8, 1), (32, 8, 1)])
]
nominal_stride = 8
# Test both odd and even input dimensions.
height = 30
width = 31
with slim.arg_scope(resnet_utils.resnet_arg_scope(is_training=False)):
for output_stride in [1, 2, 4, 8, None]:
with tf.Graph().as_default():
with self.test_session() as sess:
tf.set_random_seed(0)
inputs = create_test_input(1, height, width, 3)
# Dense feature extraction followed by subsampling.
output = resnet_utils.stack_blocks_dense(inputs,
blocks,
output_stride)
if output_stride is None:
factor = 1
else:
factor = nominal_stride // output_stride
output = resnet_utils.subsample(output, factor)
# Make the two networks use the same weights.
tf.get_variable_scope().reuse_variables()
# Feature extraction at the nominal network rate.
expected = self._stack_blocks_nondense(inputs, blocks)
sess.run(tf.global_variables_initializer())
output, expected = sess.run([output, expected])
self.assertAllClose(output, expected, atol=1e-4, rtol=1e-4)