tensorflow.nn.conv2d等效的py代码

本文通过Python代码模拟tensorflow.nn.conv2d的核心计算过程,解释输入、卷积核、滑动步长和填充方式等关键参数的作用,帮助读者深入理解卷积操作。
摘要由CSDN通过智能技术生成

为了能理解conv2d函数,最好的学习就是自己再制造它,那就用代码模拟conv2d里体是怎么计算的。

import math

def conv2d(input, filter, **kwargs):
    strides= 'strides' in kwargs and kwargs['strides'] or [1,1,1,1]
    padding = 'padding' in kwargs and kwargs['padding'] or 'SAME'
    assert(padding =='SAME' or  padding =='VALID')
    assert(strides[0]==1 and strides[3]==1)

    in_batch  =len(input)
    in_height =len(input[0])
    in_width  =len(input[0][0])
    in_channel=len(input[0][0][0])
    
    fi_height  = len(filter)
    fi_width   = len(filter[0])
    assert(in_channel==len(filter[0][0]))
    out_channel = len(filter[0][0][0])
    
    if padding == "VALID":
       assert(in_height >= fi_height)
       assert(in_width  >= fi_width)

    def take_sample(T, i, j):
        M = []
        for y in range(f
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值