import tensorflow as tf
slim = tf.contrib.slim
#设置函数的参数默认取值,这里将这三个函数的stride和padding参数设定好默认值,以后就不需要设置了
#若以后重新设置,则以最新值代替
with slim.arg_scope([slim.conv2d,slim.max_pool2d,slim.avg_pool2d],stride=1,padding='SAME'):
net = 'net'
with tf.variable_scope('Mixed_7c'):
with tf.variable_scope('Branch_0'):
#第一个参数是输入的网络,第二个是卷积核数量,第三个是卷积核大小
branch_0 = slim.conv2d(net,320,[1,1],scope='conv_1a')
with tf.variable_scope('Branch_1'):
branch_1 = slim.conv2d(net,384,[1,1],scope='conv_1a')
#将多个网络合并,第一个参数是合并的维度,[batch,width,length,depth],3代表合并的维度是深度
branch_1 = tf.concat(3,[
slim.conv2d(branch_1,384,[1,3],scope='conv_2a'),
slim.conv2d(branch_1,384,[3,1],scope='conv_2b')
])
with tf.variable_scope('Branch_2'):
branch_2 = slim.conv2d(net,448,[1,1],scope='conv_1a')
branch_2 = slim.conv2d(branch_2,384,[3,3],scope='conv_2a')
branch_2 = tf.concat(3,[
slim.conv2d(branch_2,384,[1,3],scope='conv_3a'),
slim.conv2d(branch_2,384,[3,1],scope='conv_3b')
])
with tf.variable_scope('Branch_3'):
branch_3 = slim.avg_pool2d(net,[3,3],scope='avg_pool_1a')
branch_3 = slim.conv2d(branch_3,192,[1,1],scope='conv_2a')
net = tf.concat(3,[branch_0,branch_1,branch_2,branch_3])
TensorFlow实现inception-v3
猜你喜欢
转载自blog.csdn.net/a13602955218/article/details/80724829
今日推荐
周排行