《动手学深度学习》 Pytorch ver. Part B
《动手学深度学习》原书地址:https://github.com/d2l-ai/d2l-zh
《动手学深度学习》(Pytorch ver.):https://tangshusen.me/Dive-into-DL-PyTorch/#/
知识架构:
本文的主要作用是在阅读过程中做一些摘录。对于「机器学习」领域,reta 虽然曾尝试从各个领域入门,也尝试训过一些模型,但是还是缺少系统性、结构性的学习。希望阅读本书能带来更多的收获吧。
与前面的一些笔记相比,本文更加侧重于「实践」。也就是说切实地提升自己的代码能力。
Part B 包含:
§ 5 CNN
基本概念:卷积层、填充与步长、多通道、池化、批量归一化
模型的例子:LeNet、AlexNet、VGG、NiN、GoogLeNet、ResNet、DenseNet
§ 6 RNN
语言模型及其计算,N-gram 的概念
RNN 基本模型及其实现,字符数据集的制作
GRU, LSTM 的原理
Deep-RNN, bi-RNN
CNN基本概念卷积层
二维互相关运算
如图所示,输入是一个高和宽均为3的二维数组。我们将该数组的形状记为 $3×3$ 或$(3,3)$。
核数组的高和宽分别为 2。该数组在卷积计算中又称卷积核或过滤器(filter)。
卷积核窗口(又称卷积窗口)的形状取决于卷积核的高和宽,即 $2×2$。
图中的阴影部分为第一个输出元素及其计算所使用的输入和核数组元素:
$0×0+1×1+3×2+4×3=19$。
在二维互相关运算中,卷积窗口从输入数组的最左上方开始,按从左往右、从上往下的顺序,按照特定的步长, ...
《动手学深度学习》 Pytorch ver. Part A
《动手学深度学习》原书地址:https://github.com/d2l-ai/d2l-zh
《动手学深度学习》(Pytorch ver.):https://tangshusen.me/Dive-into-DL-PyTorch/#/
知识架构:
本文的主要作用是在阅读过程中做一些摘录。对于「机器学习」领域,reta 虽然曾尝试从各个领域入门,也尝试训过一些模型,但是还是缺少系统性、结构性的学习。希望阅读本书能带来更多的收获吧。
与前面的一些笔记相比,本文更加侧重于「实践」。也就是说切实地提升自己的代码能力。
Part A 包含:
§ 1 深度学习简介
§ 2 预备知识:Pytorch
§ 3 深度学习基础
线性回归,Softmax 回归,多层感知机三类基本模型
权重衰减和 Dropout 两类应对过拟合的方法
§ 4 深度学习计算
构造 Pytorch 模型的方式
模型参数的访问、初始化与共享
自定义 Layer
读取与存储
GPU 计算
深度学习简介
机器学习与深度学习的关系
机器学习研究如何使计算机系统利用经验改善性能。它是人工智能领域的分支,也是实现人工智能的一种手段。
在机器学习的众多研究方向中,表征学习关注如何自动找出表示数据的合适方式,以便更好地将输入变换为正确的输出。
而本书要重点探讨的深度学习是具有多级表示的表征学习方法。
在每一级(从原始数据开始),深度学习通过简单的函数将该级的表示变换为更高级的表示。因此,深度学习模型也可以看作是由许多简单函数复合而成的函数。当这些复合的函数足够多时,深度学习模型就可以表达非常复杂的变换。
深度学习的 ...
「QRCode 标准阅读」#1 构成及数据编码
基础描述及结构(6.1、6.3)基础描述(5.3、6.1)
块位置:左上角为原点 (0, 0) 向下x+,向右y+
版本表示:Version V-E(其中V是版本号,E是纠错等级)
数据表示:黑块-1 白块-0(可以带背景全部反色)
大小:从版本1到版本40依次是 21x21 ~ 177x177(每增加一个版本,边长增加4)
支持的最多字符数(版本40)
数字模式:7089
字母模式:4296
字节模式:2953
日文模式:1817
纠错等级允许的恢复比例
L:7%
M:15%
Q:25%
H:30%
二维码结构(6.3)
功能图案(function patterns)
特征符(finder pattern)7x7黑圈 5x5白圈 3x3黑块
分割线(separator)在特征符周围的一圈全白区域
时序图案(timing patterns)第7行第7列的两条黑白条纹
对齐图案(alignment patterns)版本1无,版本2-6 1个,版本7-13 6个……(附录E)
静默区(quiet zone)至少4个单位宽
编码区域(encoding region)
格式信息(format information)左上角分割线外一圈,左下角分割线右侧,右上角分割线下侧
版本信息(version information)版本7后才有,在左下分割线上侧,右上分割线左侧
数据及纠错码区域
数据编码(7.4)数据序列(7.4.1)默认的 ECI 模式下,比特流以模式标识符开始。如果不是默认 ECI 模式,则需要从 ECI 头开始:
(4 bits)ECI 模式标识符 ...
Python 函数装饰器
Python 函数的装饰器是修改其他函数功能的函数。
Introduction首先,我们需要将 Python 中的函数作为函数对象来理解。
函数名只是引用标识名
123456789101112131415161718192021def hi(name="yasoob"): return "hi " + name print(hi())# output: 'hi yasoob' # 我们甚至可以将一个函数赋值给一个变量,比如greet = hi# 我们这里没有在使用小括号,因为我们并不是在调用hi函数# 而是在将它放在greet变量里头。我们尝试运行下这个 print(greet())# output: 'hi yasoob' # 如果我们删掉旧的hi函数,看看会发生什么!del hiprint(hi())#outputs: NameError print(greet())#outputs: 'hi yasoob'
函数的返回值可以是函数对象
123456789101112131415161718192021def hi(name="yasoob"): def greet(): return "now you are in the greet() function" def welcome(): return "now you are in the welcome() function&qu ...
OOP 课程笔记
《面向对象程序设计基础》课程笔记的主要部分。内含:
创建与销毁
引用与复制
组合与继承
虚函数
多态与模板
STL 初步
Week 05 创建和销毁5.0 Overview
5.1 友元
5.2 静态成员与常量成员
5.3 常量/静态/参数对象的构造与析构时机
5.4 对象的new和delete
5.1 友元
友元
被声明为友元的函数或类,具有对出现友元声明的类的private及protected成员的访问权限,即可以访问该类的一切成员。
友元的声明只能在类内进行。
可以声明别的类的成员函数,包括构造和析构函数,为当前类的友元。
友元的声明与当前所在域是否为private或public无关。
5.2 静态成员与常量成员5.2.1 static
静态变量与静态函数
静态变量:使用static修饰的变量
初始化:初次定义时需要初始化,且只能初始化一次。
静态局部变量存储在静态存储区,生命周期将持续到整个程序结束
静态全局变量是内部可链接的,作用域仅限其声明的文件,不能被其他文件所用,可以避免和其他文件中的同名变量冲突
静态函数:使用static修饰的函数
静态函数是内部可链接的,作用域仅限其声明的文件,不能被其他文件所用,可以避免和其他文件中的同名函数冲突
静态数据成员与静态成员函数
静态数据成员:使用static修饰的数据成员,是隶属于类的,称为类的静态数据成员,也称“类变量”
静态数据成员被该类的所有对象共享(即所有对象中的这个数据域处在同一内存位置)
类的静态成员(数据、函数)既可以通过对象来访问,也可以通过类名来访问,如ClassName:: ...
LaTeX 从入坑到退坑
虽然 Markdown 很好用,但是生成的 pdf 文档看起来就是没有范不够正式。此外,使用 LaTeX 也是我们之后写论文的必备技能。
本教程主要涉及已对 Markdown 较为熟识之后的迁移学习。
前置知识
Markdown 入门
Markdown 编写数学公式的方法
LaTeX 简介我们首先解决以下几个问题:
LaTeX 是什么?
LaTeX 怎样运作?
我该在哪里写 LaTex?
在解决上述几个问题之后,我们再详细介绍该怎么写 LaTeX 的问题。
LaTeX 是什么?相信你读到这里已经做好觉悟要被灌输一系列关键词和其对应概念了。让我们开始:
历史回溯到 Knuth 教授的巨著 The Art of Computer Programming 将要出版之际,当出版商将他们排版的书稿草样交给 Knuth 教授的时候,他对于其中复杂数学公式的排版处理十分不满。其排版之粗糙,已达到了会影响人们理解原书内容的程度。因此,对于复杂的数学和物理公式,我们急需一种能够将其在互联网上传输的编码格式,使得人能阅读的公式和机器能存储的公式之间达到一种互相转化。
TeX:一种排版引擎,也是该引擎使用的标记语言的名称。引擎是指能够断行、分页的程序,标记语言是控制命令和文本结合的格式。可以类比理解成你写的 C++ 源代码或者更底层的机器指令码,如输入 2^6。
LaTeX:是一个基于 TeX 的排版系统,将用户按照它的格式编写的文档解释成 TeX 引擎能理解的形式并交付给 TeX 引擎处理,再将最终结果返回给用户。可以类比理解成 g++ 编译器,将上述代码渲染为 2626。
pdfTe ...
《厌女》读书笔记
开始读《厌女:日本的女性嫌恶》(上野千鹤子著,王兰译),久闻此书大名,终于下定决心,也算是对自己学习能力的一个复健。读了几页,受益匪浅,遂决定做些记录。
Notes第一章作者提到“逃往女性,逃离女性”,对此的解释我深以为然。成年男性之所以急切地想要找寻一个女性结婚,是想要拥有一个所有物,或者说欲望发泄的对象。这里的欲望并不一定是性欲,而是包括了对女性的一切幻想,例如打理家务、相夫教子等。然而,“逃往”的终究只是对女性的幻想,在发现了现实中的女性不是这个样子之后,便开始“逃离女性”,也是“逃离家庭”。
仅以我父亲为例——在读了这一部分之后,我对他的行为有了一些了解。他单身时浪荡不羁,欠了一屁股债。随后,他与我母亲成婚,但两人相处并不愉快。显然,他期望的是一个贤惠、能干、还能赚钱的妻子,这样的形象只是他对女性的幻想。因此,他开始在外面寻觅刺激,不着家庭。他总是期望着能够找到一个满足他幻想的女性,可惜,这注定只是失败。
第二章作者提到“成为的欲望”和“拥有的欲望”。这个说法源自弗洛伊德对“生的欲动”的分解,即“自我确认/同化 (identification)”和“性欲发泄/欲望满足 (libido cathexis)”,用通俗易懂的话来讲,就是段首二词。
作者举例,一般顺性别异性恋者(以女性为例),会在家庭成长的过程中,逐渐与自己的母亲同化,即希望成为类似自己母亲的人,并且拥有男性——类似父亲,或者说母亲的丈夫的人。当然,这里说的“拥有”并不是真正主客体意味上的拥有,而只是一种简单的分类。
这里插入一点我多余的想法,部分后天跨性别的出现是否可能由于这种自我确认的失败。原定的同化目标( ...
(2-9,4-9)图像处理与学术研究 课程笔记
图像处理与学术研究Chapter 1 图像处理基础1.1 概念
图像是视觉信息的重要表现方式,是对客观事物相似的、生动的描述,是光能量和人类大脑相结合的产物。
数字图像处理(Digital Image Processing)是利用计算机对图像进行去除噪声、增强、复原分割、提取特征等的理论、方法和技术,是信号处理的子类,相关理论涉及通信、计算机、电子、数学、物理等多个方面,已成为一门发展迅速的综合性学科。
1.2 图像函数
A = imread('filename');
从 filename 指定的文件读取图像,并从文件内容推断出其格式。如果 filename 为多图像文件,则 imread 读取该文件中的第一个图像。下图为图像的返回结果。
imshow('filename');
在图窗中显示灰度图像 I。imshow 使用图像数据类型的默认显示范围,并优化图窗、坐标区和图像对象属性以便显示图像。
imwrite(A,filename);
将图像数据 A 写入 filename 指定的文件,并从扩展名推断出文件格式。imwrite 在当前文件夹中创建新文件。输出图像的位深取决于 A 的数据类型和文件格式。对于大多数格式来说:
如果 A 属于数据类型 uint8,则 imwrite 输出 8 位值。
如果 A 属于数据类型 uint16 且输出文件格式支持 16 位数据(JPEG、PNG 和 TIFF),则 imwrite 将输出 16 位的值。如果输出文件格式不支持 16 位数据,则 imwrite 返回错误。
如果 A 是灰度图像 ...
C++程序设计之变量命名指南
算法竞赛选手,在变量名使用上,有诸多门派:
字母派:a b c d e f g 依次使用
新字母派:array,brray,crray 表示三个数组
新新字母派:img,jmg,kmg 表示三张图片
拼音派:用 shanchu 表示删除,用 xiugai 表示修改
卖萌派:QAQ,qwq,TAT,orz
复读派:n,nn,nnn
重排派:next,extn,xtne
化合物派:h2o, ch4, co2
下划线派:_,__,___
脏话派:f**k,s**t,t*d
除了循环变量一般用 i,j,k 以外,其它变量名大家就放飞自我了
这样降低了代码可读性,一段时间以后谁也看不懂了,也不利于相互交流
这里按字母序列出一些推荐使用的变量名,仅供参考,抛砖引玉
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384add 加anc, ancestor 祖先ans, answer 答案bel, belong 属于best 最佳的build 建立block 障碍ch, char 字符check 判定color 颜色cmp, compare 比较cnt, count 计数器cur, current 当前量deg, degree 度数dep, depth 深度del, delete 删除delta 增量diff ...
Continue blogging,2022!
写于2022/1/31,刚好除夕夜
因为闲了太多天于是觉得要做点什么,看到服务器打折,想起来博客还托管在 GitHub Pages 上,那就好好整整自己的博客吧。
Retamev.github.io 的开发日记
主题的选择
2021 年暑假在 Github 闲逛,对 butterfly 主题一见钟情,加上时用的动态博客维护较为麻烦,便萌生了把博客搬迁到 Hexo 的想法。
于是最后选择了 Hexo + Butterfly 的方案。
什么是 Hexo ?
Hexo 是一个快速的、简单的、功能强大的博客框架。你可以通过 Markdown 语言写文章,然后 Hexo 帮你生成一个带有漂亮主题的静态页面。
什么是 Butterfly ?
Butterfly 是一个 Hexo 框架下的简单卡片式 UI 设计主题。搭配Node.js和Git(分布式版本控制系统)将主题挂载到你的博客仓库。
Hexo 的安装和后续操作安装借助搜索引擎的帮助安装完 Node 以及 Git 后,新建一个标签为blog的文件夹,在留白处单击鼠标右键选择 Git Bash Here 对根目录执行 Git 操作。
输入下面的指令安装 Hexo。
1npm install -g hexo-cli
安装完成后可以通过以下指令验证安装,出现版本号即为成功。
1hexo -v
启动输入以下指令生成基础文件和目录
1hexo init
输入以下指令安装运行hexo的一些必要的组件
1npm install
运行完,当前目录下会自动创建一些目录,如下
1234567.├── _config.yml├── package.jso ...