Deep learning: Convolution and Transposed Convolution
Intro在深度学习领域,卷积神经网络(CNNs)已经成为了图像处理和计算机视觉任务中最重要的技术之一。卷积操作是 CNNs 中最基础的操作之一,它可以有效地提取出图像中的特征,并使用这些特征来识别物体,主要应用于图像处理、语音识别、自然语言处理等领域。
然而,有时候我们需要将图像进行上采样,也就是将其放大或扩展到更大的尺寸。为了实现这个目的,我们需要使用一种叫做 ConvTranspose2d 的操作,它也被称为转置卷积。
在本文中,我们将深入研究卷积和转置卷积的原理、应用和代码实现。我们将讨论卷积和转置卷积的数学原理,包括矩阵乘法和张量的形状等。我们还将探讨卷积和转置卷积的一些应用,例如转置卷积在生成对抗网络(GANs)中的图像生成和图像分割任务中的应用。最后,我们还将提供 Python 代码实现,以演示它们的工作原理。
数学原理卷积
卷积的连接方式如上图所示,蓝色矩阵表示输入,绿色矩阵表示输出,每个绿色块与 9 个蓝色块连接。
把卷积核用矩阵表示如下:
\mathbf{w} = \begin{pmatrix} w_{0,0} & w_{0,1} & w_{0,2} \\ w_{ ...
NewestTroubleshooting: 'The .NET Core SDK cannot be located.' errors
Introduction有时 VS Code 打开后会出现下面的报错内容:
The .NET Core SDK cannot be located. .NET Core debugging will not be enabled. Make sure the .NET Core SDK is installed and is on the path.
这意味着程序想要运行 dotnet 命令,但是 dotnet 没能在程序的 PATH 中找到。
如果没有下载 .NET Core SDK,可以通过链接进行下载。
如果已经下载 .NET Core SDK,意味着 dotnet (Linux and macOS) 或 dotnet.exe (Windows) 不在路径中,至少不在拓展程序的路径中。
General troubleshooting steps on Linux/Mac首先在终端运行 which dotnet 命令,如果生成一条路径,则可以尝试从终端启动 VS Code。
先打开 VS Code,然后按下快捷键 Command + Shift + P,进入命令面板后输入 sh ...
Make a 2D Platformer in Unity
Intro本文是对教程 Learn How to Make a 2D Platformer in Unity 2022 - FULL GAMEDEV COURSE! 做的笔记,用来锻炼 Unity 的实践能力。
Project Setup首先我们需要创建一个新的项目。因为这个项目中的所有美术元素都是像素风格的,所以我们需要创建一个预设文件用来导入纹理,这样,每次我们到入新的像素文件的时候,这些文件都可以被预处理为正确的格式。
在创建项目时,我们选择创建 2D (URP) 类型的项目,这类项目会使用 Universal Render Pipeline。
在项目创建好以后,我们开始创建预设文件。首先我们需要选择任意一张 JPEG 或 PNG 图片,把它拖放到项目中的 Assets 文件夹中。点击文件夹中的图片,就会在 Inspector 一栏显示它的信息,我们在这里进行如下改动:
把 Pixels Per Unit 设置为 16
修改 Filter Mode 修改为 Point (no filter)
修改 Max Size 为 4096
修改 Compression 为 None
之 ...
Brief note on heic to jpg
本文记录一下把 HEIC 文件批量转换为 JPG 文件的方法,代码如下。
在使用这个脚本之前,需要在命令行中使用 brew install imagemagick 命令来安装 imagemagick。
12345678910111213141516171819202122232425262728293031323334353637import osdef heic_to_jpg(heic_path, jpg_path): command = f'magick convert {heic_path} {jpg_path}' os.system(command)def rename_files_in_folder(folder_path, start_number): # 获取文件夹中的所有文件 files = os.listdir(folder_path) # 只处理.HEIC文件 heic_files = [f for f in files if f.lower().endswith( ...
Game Programming in C++ - Chatpter 01: Game Prgramming Overview
Intro本章先介绍如何在 macOS 中设置开发环境,然后讲解实时游戏的核心概念:游戏循环、游戏如何随时间更新,以及游戏输入和输出的基本知识。同时,本章会在最后实现一个简单的 2D 游戏《Pong》。
配置开发环境为了创建游戏窗体,我们需要使用一个跨平台的第三方库,Simple DirectMedia Layer(SDL),它负责处理创建窗体、2D 图形、音频输出、键盘输入等过程。
打开终端,使用 brew install sdl2 命令,就可以一键式的安装好 SDL。
利用 brew info sdl2 可以用来查看安装信息。
安装好了之后应该就能够在 /usr/local/Cellar/sdl2 的安装目录下看到。
接下来分别讲如何在 Xcode 和 CLion 中进行配置。
Xcode在创建好一个项目后,按照以下步骤进行设置:
在 Xcode 左侧栏点击项目进入项目管理界面
进入 Build Phases 界面
在 Link Binary With Libraries 一栏点击添加符号
在弹出界面中选择 Add Files
在路径 /usr/local/Cellar/sdl2 ...