tensorflow中如何进行卷积计算

keras.layers.Conv2D(filters, kernel_size, strides=(1, 1), padding='valid', data_format=None, dilation_rate=(1, 1), activation=None, use_bias=True, kernel_initializer='glorot_uniform', bias_initializer='zeros', kernel_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, bias_constraint=None)

参数:

'kernel_size'        : 3,#单个整数或由两个整数构成的list/tuple,卷积核的宽度和长度,
'strides'            : 1,#单个整数或由两个整数构成的list/tuple,为卷积的步长,如果为单个整数,则表示在各个空间维度
# 的相同步长,任何不为1的strides均与任何不为1的dilation_rage均不兼容
'padding'            : 'same',#补0策略,为same和valid, valid代表只进行有效的卷积,即对边界数据不处理,same代表保留
#边界处的卷积结果,通常会导致输出shape与输入shape相同
'activation', 激活函数, 为预定义的函数名,如果不指定该参数,将不会使用任何激活函数,
'kernel_initializer' : keras.initializers.normal(mean=0.0, stddev=0.01, seed=None),
'bias_initializer'   : 'zeros'权值初始化方法,

代码实现

import tensorflow as tf
import numpy as np
import tensorflow.contrib.slim as slim
x1=np.array([0,0,0,2,1,1,0,2,0])
x1=x1.reshape(3,3)
x1= tf.constant(x1, shape=[1, 3, 3, 1],dtype=tf.float32)
kernel_0=np.array([0,0,-1,1,0,0,0,0,1])
kernel_0=kernel_0.reshape(3,3)
kernel_0= tf.constant(kernel_0, shape=[3, 3, 1, 1],dtype=tf.float32)
conv2d = tf.nn.conv2d(x1, kernel_0, strides=[1, 1, 1, 1], padding='SAME')  # 卷积
# yy=slim.conv2d(x1,kernel_0,3)#这个如何yoga暂时还不知道
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    # x1, w,conv2d,yy= sess.run([x1,kernel_0,conv2d,yy])
    x1, w, conv2d= sess.run([x1, kernel_0, conv2d])
    print(conv2d,np.shape(conv2d)) #[1 2 -1
                                    # 1 2 -1
                                    # 0 1 2]. (1,3,3,1)
    # print(yy)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值