【机器学习】卷积操作-手动计算-图片

【代码】

import tensorflow as tf  
import numpy as np  
import matplotlib.pyplot as plt  
  
class Conv2D(tf.keras.layers.Layer):  
    def __init__(self, kernel_size, step_len, kernel):  
        super().__init__()  
        self.kernel_size = kernel_size  # 卷积核大小  
        self.step_len = step_len        # 步长,但此处并未在卷积中实际使用  
        self.kernel = np.array(kernel)  # 确保kernel是numpy数组  
  
    def call(self, inputs):  
        new_image = []  
        for i in range(0, inputs.shape[0] - self.kernel_size[0] + 1, self.step_len):  # 修正步长逻辑  
            print(i, inputs.shape[0])  
            Line_data = []  
            for j in range(0, inputs.shape[1] - self.kernel_size[1] + 1, self.step_len):  # 同样修正步长逻辑  
                # 使用numpy的dot函数或np.sum(inputs[...]*self.kernel)代替np.mean  
                # 因为卷积通常使用加权和而不是平均值  
                conv_result = np.sum(inputs[i:i+self.kernel_size[0], j:j+self.kernel_size[1]] *
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值