Python¶
从零开始搭建卷积神经网络组件
本文是深度学习课程的一次练习,使用 Numpy 实现了 CNN 中卷积层、池化层的前向传播与反向传播。
以下是一个典型卷积层的计算过程:
- 输入张量:\(X \in \mathbb{R}^{M \times N \times D}\)。例:\(D=1\) 时,输入的是 \(M \times N\) 维的灰度图像; \(D=3\) 时,输入的是 \(M \times N\) 维的彩色图像。
- 卷积核:\(W \in \mathbb{R}^{U \times V \times D \times P}\),其中每个切片矩阵 \(W^{d, p} \in \mathbb{R}^{U \times V}\), \(1 \leq d \leq D, 1 \leq p \leq P\)。
- 输出张量: \(Y \times \mathbb{R}^{M^{\prime} \times N^{\prime} \times P}\)。

基于 ChatGPT 的在线问答机器人
本文介绍了如何基于 OpenAI ChatGPT 接口和 feffery components 构建在线问答机器人,并基于 render 实现自动化持续部署。
它支持:
- 开启多轮对话模式,它将记住你之前的问题。
- 导出当前对话记录为 Markdown 文件,你可以将其保存到本地。
- 一键清空当前对话记录。
检验样本分布的正态性
在对数据进行处理前,有时需要判断数据是否呈正态分布。本文介绍了定量检验正态性的两种方法:Shapiro-Wilk test 和距离熵。
Shapiro-Wilk 检验正态性
VS Code 代码片段
许多常用的代码片段是重复、通用的,将它们记录并整理起来,在需要时可以方便地调用,可以大幅提高编码效率。
VS Code 代码片段功能是一个非常好用的功能,在保存代码片段后,只需输入几个前缀,即可自动生成代码片段。
利用 snippet-generator 这个工具自动生成代码片段,可以让整理代码片段的过程更高效!

LightGBM 的用法
LightGBM 是一种基于决策树的梯度提升机(GBM)算法,它是一种快速、准确的机器学习算法,可以用于分类和回归问题。
本文介绍了 LightGBM 的使用方法和代码示例,并记录了自定义损失函数、打印训练过程、迭代次数参数等问题的解决方法。
使用 pdb 调试代码
pdb 是 Python 内置的一个调试库,为 Python 程序提供了一种交互的源代码调试功能,主要特性包括设置断点、单步调试、进入函数调试、查看当前代码、查看栈片段、动态改变变量的值等。
常用的 pdb 命令

Python 自动合并 PDF 文件
问题与需求
合并 PDF 文件是常用的操作,如果手动合并的话可以使用 Adobe Acrobat 这类专业软件,只要点点鼠标即可完成合并。
如果经常需要合并同样的文件(例如经常更新的中英文简历),可以使用 PyPDF2 包,几行代码即可实现自动合并 PDF 的功能。
代码实现
Python 中的赋值与深浅拷贝
Python 中的赋值只是引用了对象,当原变量发生改变时,新变量也会随之发生改变。
.copy()方法可以进行浅拷贝,它可以深拷贝父对象(一级目录),但子对象(二级目录)仍然只是引用。
.deepcopy()方法可以进行深拷贝,它可以深拷贝父对象(一级目录)和子对象(二级目录),当原变量改变时,深拷贝得到的变量不会发生任何改变。
Black 格式化 Python 代码
用 Black 自动格式化 Python 代码,编写规范、美观的 Python 代码,让阅读代码变成一种享受。
本文记录了在 VS Code 中安装 Black 时遇到的问题和解决方案。


