TensorFlow优化卷积核技术演示

一 简介
在实际的卷积训练中,为了加速,常常把卷积核裁开。比如一个3*3的过滤器,可以裁成3*1和1*3两个过滤器,分别对原有的输入做卷积操作,这样可以大大提高运算速度。
原理:在浮点运算中乘法消耗的资源比较多,我们目的就是尽量减小乘法运算。
比如对一个5*2的原始图片进行一次3*3的同卷积,相当于生成的5*2像素中每一个都要经历3*3次乘法,那么一共有90次。
同样是这个图片,如果先进行一次3*1的同卷积需要30次运算,再进行一次1*3的同卷积,一共60次。
这仅仅是一个很小的数据张量,而且随着张量维度的增大,层数的增多,减少的运算会更多。那么运算量减少了,运算效果等价吗?答案是肯定的。因为有公式做保证3*1的矩阵乘上1*3的矩阵会正好生成3*3的矩阵。所以这个技巧在卷积网络中很常见。

二 实例
1 代码
import cifar10_input
import tensorflow as tf
import numpy as np
batch_size = 128
data_dir = '/tmp/cifar10_data/cifar-10-batches-bin'
print("begin")
images_train, labels_train = cifar10_input.inputs(eval_data = False,data_dir = data_dir, batch_size &
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值