从零开始的 DDPM 动漫头像生成
Stable Diffusion 已经火了很久了, 在此之前也是在自己电脑上部署过 Github 上那个 stable-diffusion-webui. 作为一个折腾分子, 本着更深入了解一下概率扩散模型的想法, 决定在参考其他教程的基础上从零开始炼制一个基于 DDPM 的动漫头像生成模型.
Stable Diffusion 已经火了很久了, 在此之前也是在自己电脑上部署过 Github 上那个 stable-diffusion-webui. 作为一个折腾分子, 本着更深入了解一下概率扩散模型的想法, 决定在参考其他教程的基础上从零开始炼制一个基于 DDPM 的动漫头像生成模型.
记录一下 PyTorch 中多头注意力 MultiheadAttention 的使用方法, 主要是对维度变换的过程梳理.
解决 Github SSH 连接超时.
1 | $ ssh -T git@github.com |
记录一次失败的 Github SSH 连接问题排查过程.
1 | $ ssh -T git@github.com |
本文记录自己在学习实现 SM9 中遇到的问题和个人理解. 由于实现之前没有系统学习过 SM9 涉及的相关数学知识, 因此踩了许多坑, 特此记录.
主要是一些关键性数学概念的理解, 以及一些简单的优化技巧.
近期花了点时间学习国密算法, 并且按国标文档用纯 Python 实现了一个小的国密算法库, 这里贴一下项目的简介和用法.
Github 地址: https://github.com/ww-rm/gmalg
本篇记录一下在实现 SM9 算法时塔式扩张部分的公式推导与代码实现. 由于没有系统学习过相关数学理论, 因此只是根据有限的认识完成了推导, 可能存在不严谨之处.
基于上一篇NCM 文件批量转换 (保留专辑和封面信息), 记录一下自己第一次往 PyPI 上发布包的过程.
本文结合 Python 官方教程 Packaging Python Projects 和 Setuptools 的 User guide 进行打包和发布.
这段时间打算用网易云音乐囤点资源, 但是下载之后才发现内容已经全部加密, 变成了 ncm
后缀的文件. 搜索一番, 找到了一些现成的转换工具和源码. 但是功能都十分有限, 而且转换出来之后的文件都没有专辑和封面信息强迫症大怒. 看了看有关的分析和源码之后, 决定自己重新整理一下转换功能, 并且把专辑和封面信息也加进去, 做个完善的命令行工具自用, 顺便打包成 Python 库, 上传到 PyPI 上.
本文包括以下内容, 首先整理一下网上已有的 ncm
格式转换代码, 然后增加补充专辑和封面信息的功能, 并实现批量转换和界面友好, 最后打包成二进制文件和 Python 库, 并上传到 PyPI 上.
文末附有项目的 Github 地址, 以及使用 PyInstaller 打包的二进制文件下载地址和 PyPI 项目地址.
"基于 numpy 的手写数字识别", 这一经典问题除了用作深度学习入门内容, 还被广泛作为各大课程的课程作业, 因此在各大搜索引擎上搜索率也是相当之高
(代码复用率也是相当之高). 网上确实有挺多现成的可使用代码, 但是大部分都是造的全连接网络, 并且很多时候内部原理不是特别清晰. 因此决定自己也来造一次轮子, 使用numpy
实现一个简单的卷积神经网络进行手写数字识别, 正好也能借此机会梳理一下神经网络的基本原理.全文包含完整的卷积网络实现, 以及矩阵梯度和卷积矩阵化的推导过程, 由于全文过长, 因此分成了三部分, 内容上是完全连着的.
本文为第三篇, 也是最后一篇, 结合前两篇的内容搭建完整的卷积神经网络并完成训练和评估.