tf.nn.conv2d() / tf.nn.depthwise_conv2d() 和 Batchsize效益

本文详细解析了TensorFlow中的卷积函数tf.nn.conv2d()和深度卷积tf.nn.depthwise_conv2d(),并探讨了批量大小(Batch_Size)在训练过程中的作用,包括为什么需要批量大小、它能解决的问题以及如何影响训练效果。通过实例和MNIST数据集的实验,阐述了适当调节Batch_Size对训练速度和精度的影响。

1. 卷积函数tf.nn.conv2d() 

tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=True, 
             data_format='NHWC',dilations=[1, 1, 1, 1], name=None)

对于给定的4-D张量输入,利用给定的filter执行2-D卷积运算。

  • input : [batch, in_height, in_width, in_channels]
  • filter : [filter_height, filter_width, in_channels, out_channels]
  • padding: "SAME" / "VALID"
  • data_format: Defaults to "NHWC".

算法执行过程:
1.filter压平成2D矩阵,[filter_height * filter_width * in_channels, output_channels]
2.input中提取图像块, [batch, out_height, out_width, filter_height * filter_width * in_channels]
3.对于每一个图像块,右乘滤波器矩阵和图像块向量。

实例:

    

左边代表input:[BatchSize, H, W, in_Channels]=[24,255,255,3];

右侧代表filter:Batch_size*[Filter_H, Filter_W, in_Channels, out_Channels]=[127,127,3,1]; 

所以,程序循环24次,即可以完成对一个BatchSize=24的卷积/相关操作,输出结果为:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值