热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python实现朴素的卷积操作

importnumpyasnpimportos#朴素的卷积defconv_naive(x,w):N,H,W,Cx.shapeKh,Kw,_C,Kcw.shapeassert(C_

import numpy as npimport os# 朴素的卷积
def conv_naive(x, w):N,H,W,C &#61; x.shapeKh, Kw, _C, Kc &#61; w.shapeassert(C&#61;&#61;_C), (x.shape, w.shape)# stride is 1y&#61; np.zeros([N, H-Kh &#43;1, W-Kw&#43;1, Kc])for i0 in range(N):for i1 in range(H - Kh &#43; 1):for i2 in range(W - Kw &#43; 1):for i3 in range(Kh):for i4 in range(Kw):for i5 in range(C):for i6 in range(Kc):if i1 - i3 < 0 or i2 - i4 < 0 or i1 - i3 >&#61; H or i2 - i4 >&#61; W: continuey[i0, i1, i2, i6] &#43;&#61; x[i0, i1 &#43; i3, i2 &#43; i4, i5] * w[i3, i4, i5, i6]return y# %matplotlib inline
import pylab as pl
import PIL.Image as Image
import sys
import subprocess
img_path&#61;"cat.jpg"
if not os.path.isfile(img_path):cmd &#61; f"""wget -O - &#39;https://upload.wikimedia.org/wikipedia/commons/thumb/4/4f/Felis_silvestris_catus_lying_on_rice_straw.jpg/220px-Felis_silvestris_catus_lying_on_rice_straw.jpg&#39; > {img_path}"""# subprocess.run(cmd)
im&#61;Image.open(img_path)
im.show()
img &#61; pl.imread(img_path)kernel &#61; np.array([[-1, -1, -1],[0, 0, 0],[1, 1, 1],
])
x &#61; img[np.newaxis,:,:,:1].astype("float32")
w &#61; kernel[:,:,np.newaxis,np.newaxis].astype("float32")y &#61; conv_naive(x, w)
print (x.shape, y.shape) # shape exists confusionimg &#61; Image.fromarray(y[0,:,:,:], mode&#61;&#39;RGB&#39;)
img.show()

输出&#xff1a;
(1, 147, 220, 1) (1, 145, 218, 1)
在这里插入图片描述


推荐阅读
  • 本文将深入探讨 Unreal Engine 4 (UE4) 中的距离场技术,包括其原理、实现细节以及在渲染中的应用。距离场技术在现代游戏引擎中用于提高光照和阴影的效果,尤其是在处理复杂几何形状时。文章将结合具体代码示例,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 使用 Babylon.js 实现地球模型与切片地图交互(第三部分)
    本文继续探讨在上一章节中构建的地球模型基础上,如何通过自定义的 `CameraEarthWheelControl` 类来实现更精细的地图缩放控制。我们将深入解析该类的实现细节,并展示其在实际项目中的应用。 ... [详细]
  • 本文详细介绍了Socket在Linux内核中的实现机制,包括基本的Socket结构、协议操作集以及不同协议下的具体实现。通过这些内容,读者可以更好地理解Socket的工作原理。 ... [详细]
  • STM32代码编写STM32端不需要写关于连接MQTT服务器的代码,连接的工作交给ESP8266来做,STM32只需要通过串口接收和发送数据,间接的与服务器交互。串口三配置串口一已 ... [详细]
  • iOS如何实现手势
    这篇文章主要为大家展示了“iOS如何实现手势”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“iOS ... [详细]
  • 笔记说明重学前端是程劭非(winter)【前手机淘宝前端负责人】在极客时间开的一个专栏,每天10分钟,重构你的前端知识体系& ... [详细]
  • HDU 2537 键盘输入处理
    题目描述了一个名叫Pirates的男孩想要开发一款键盘输入软件,遇到了大小写字母判断的问题。本文提供了该问题的解决方案及实现方法。 ... [详细]
  • 本文分享了作者在使用LaTeX过程中的几点心得,涵盖了从文档编辑、代码高亮、图形绘制到3D模型展示等多个方面的内容。适合希望深入了解LaTeX高级功能的用户。 ... [详细]
  • 视觉Transformer综述
    本文综述了视觉Transformer在计算机视觉领域的应用,从原始Transformer出发,详细介绍了其在图像分类、目标检测和图像分割等任务中的最新进展。文章不仅涵盖了基础的Transformer架构,还深入探讨了各类增强版Transformer模型的设计思路和技术细节。 ... [详细]
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • 分层学习率衰减在NLP预训练模型中的应用
    本文探讨了如何通过分层学习率衰减技术来优化NLP预训练模型的微调过程,特别是针对BERT模型。通过调整不同层的学习率,可以有效提高模型性能。 ... [详细]
  • 深入理解:AJAX学习指南
    本文详细探讨了AJAX的基本概念、工作原理及其在现代Web开发中的应用,旨在为初学者提供全面的学习资料。 ... [详细]
  • 高级缩放示例.就像谷歌地图一样.它仅缩放图块,但不缩放整个图像.因此,缩放的瓷砖占据了恒定的记忆,并且不会为大型缩放图像调整大小的图像.对于简化的缩放示例lookhere.在Win ... [详细]
  • 机器学习(ML)三之多层感知机
    深度学习主要关注多层模型,现在以多层感知机(multilayerperceptron,MLP)为例,介绍多层神经网络的概念。隐藏层多层感知机在单层神经网络的基础上引入了一到多个隐藏 ... [详细]
  • 文章目录前言Program(程序)Identifier(标识符)Literal(字面量)Vari ... [详细]
author-avatar
Because_of_you龙
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有