uv:新一代 Python 虚拟环境管理工具
以下内容整理自 uv 中文文档。 uv 是什么 An extremely fast Python package and project manager, written in Rust. uv 是由 Astral 团队开发的一款超高速 Python 包管理器,旨在替代传统的 pip 和 virtualenv。它聚焦于三个关键点:性能、安全性、以及现代化开发流程的兼容性。 为什么要使用 uv 性能 Benchmark 仓库地址:https://github.com/astral-sh/uv/blob/main/BENCHMARKS.md 使用热缓存对软件包安装(例如 uv sync)进行基准测试:删除并重新创建虚拟环境,并使用同一台机器上安装的依赖项填充该环境。 使用冷缓存对软件包安装(例如 uv sync)进行基准测试:运行 uv sync 在新机器上或在 CI 中(假设包管理器缓存未在运行之间共享)。 使用热缓存(但没有现有的 lockfile)对依赖项解析(例如 uv lock)进行基准测试:清除现有的 requirements.txt 文件,从...
神经网络学习笔记(3)—— 激活函数
Sigmoid $$ \sigma(x)=\frac{1}{1+e^{-x}} $$ $$ \sigma’(x)=\frac{e{-x}}{(1+e{-x})^2}=\sigma(x)(1-\sigma(x)) $$ Sigmoid函数的输出范围是0到1。因此它对每个神经元的输出进行了归一化 用于将预测概率作为输出的模型。由于概率的取值范围是0到1,因此Sigmoid函数非常合适 梯度平滑,避免跳跃的输出值 函数是可微的。这意味着可以找到任意两个点的Sigmoid曲线的斜率 明确的预测,即非常接近1或0。 函数输出不是以0为中心的,这会降低权重更新的效率 Sigmoid函数执行指数运算,计算机运行得较慢。 Tanh $$ \tanh(x)=\frac{ex-e{-x}}{ex+e{-x}} $$ $$ \tanh’(x)=1-\tanh^2(x) $$ 它解决了 Sigmoid 函数不以 0 为中心输出问题,然而,梯度消失的问题和幂运算的问题仍然存在。 PReLU / LeakyReLU /...
神经网络学习笔记(2)—— 前向传播与反向传播的数学推导
向量求导定义 我们对向量求导作出如下定义: $$ \begin{gathered} \frac{\partial f(\mathbf{x})}{\partial\ \mathbf{x}{n\times1}}:=\begin{bmatrix} \frac{\partial f}{\partial x_1}&\frac{\partial f}{\partial x_2}&\cdots&\frac{\partial f}{\partial x_n} \end{bmatrix}{1\times n} ,\quad \frac{\partial f(\mathbf{x})}{\partial\ \mathbf{x}{1\times n}}:=\begin{bmatrix} \frac{\partial f}{\partial x_1}\ \frac{\partial f}{\partial x_2}\ \vdots\ \frac{\partial f}{\partial x_n} \end{bmatrix}{n\times1}\ \frac{\partial\...
神经网络学习笔记(1)—— MLP
神经网络学习笔记 MLP 对于 $n$ 层全连接神经网络(MLP), $\mathbf{X}{k-1},\mathbf{W}k,\mathbf{b}k,\mathbf{P}k$ 分别表示第 $k$ 层全连接网络的输入向量、权重矩阵、偏置向量与隐藏层中间向量 $$ \mathbf{X}^k:=\begin{bmatrix} X_1^k\ X_2^k\ \vdots\ X_{D_k}^k\ \end{bmatrix}{D_k\times1},\ \mathbf{W}^k:=\begin{bmatrix} W{1,1}k&W_{1,2}k&\cdots&W_{1,D_{k-1}}^k\ W_{2,1}k&W_{2,2}k&\cdots&W_{2,D_{k-1}}^k\ \vdots&\vdots&\ddots&\vdots\ W_{D_k,1}k&W_{D_k,2}k&\cdots&W_{D_k,D_{k-1}}^k\ \end{bmatrix}{D_k\times...
又迁移至新域名!
迁移原因 这次是因为域名续费比较贵……并且 DNSPod 有一个十年长期域名活动,于是花了 230 元购买了十年的域名。大概是不会再迁移了! 自 2025 年 6 月 22 日起,本博客已迁移至dawnocean.site域名下。原域名deans.fun在 7 月 27 日到期前可继续访问。 由于需要将原域名逐渐转移到新域名去,在双域名共存的配置情况下也有了一些经验,就在这里分享一下吧。 GitHub Pages CNAME Github Pages 对应的 Repository 下包含一个 CNAME 文件,它表明了你的自定义域名。在仓库的 Page 配置页面,只能选择一个自定义域名。 直接在域名 DNS 服务商进行 DNS 配置也是不可以的,会出现“404 There is not a GitHub Pages site here.”的错误信息。 解决办法 我们可以在自己账户下新建一个同样支持 GitHub Pages 的仓库,再绑定自己的另一个自定义域名就可以了。 首先,需要在 DNS 服务商处建立从新域名到 username.github.io 以及原域名到...
KDE Tricks (3) —— Howdy!
需求 你好!想让电脑跟你打招呼嘛,就像 Windows Hello 那样?来试试 Howdy 吧,它是 Linux 上通过电脑的红外传感器(或摄像头)识别人脸,解锁电脑的程序。 Arch Linux Wiki 上有对它的介绍。Howdy 最新的稳定版是 v2.6.1,发布于 2020 年,因此有很多配置会在如今出现问题,在这篇博客中记录一下。 操作 安装 在 Arch Linux 上可以以 AUR 包的形式安装: 1paru -S howdy 添加红外传感器 / 摄像头 可以在诸如 cheese、fswebcamAUR 或者 v4l-utils 的程序里找到并确定能连接到红外传感器的正确 /dev/videoX 文件, 以内置于 v4l-utils 软件包的工具为例: 123456789101112$ v4l2-ctl --list-devicesIntegrated_Webcam_HD: Integrate (usb-0000:00:14.0-11): /dev/video0 /dev/video1EyeChip: Tobii Video...
补完高中的数学发现
...
硬路由(0)—— 编译属于自己的 OpenWrt
回到目录 OpenWrt OpenWrt 项目是针对嵌入式设备的 Linux 操作系统,常用在路由器上。OpenWrt 高度模块化、自动化,不仅占用空间小,而且具有强大的网络组件。 OpenWrt 项目始于 2004 年 1 月,其第一个版本采用了 LinkSys 的源码。在 LinkSys 的代码收费后,改为 Linux 内核集成,并将 OpenWrt 完全模块化,不断推出补丁和驱动。 更多的信息可以在 OpenWrt Wiki 找到。 OpenWrt 有数个民间衍生出的版本,加入了一些官方列表没有,针对国内具体情况定制的插件,且源码和开发规范与官方同步,保证了软件的纯净和稳定,目前网络上的很多固件都是针对这3个固件进行编译。 Lienol:紧跟官方版本进行更新,其编译出来的固件体积比其它版本小,集成的软件少,源码改动少,使用起来稳定性更强。 Lean:由恩山论坛 Lean 分享了全部开源代码,由于加入了很多中国特色的功能,并告诉所有人怎么通过编译去得到自己想要的 OpenWRT,定制灵活性很强。(不推荐) ImmortalWrt:OpenWrt...
NAS(13)—— Navidrome + MusicTag 音乐管理
回到目录 Navidrome 概述 Navidrome 是一款全功能、开源且支持多平台的音乐服务器应用程序,可以在 MacOS、Linux、Windows 以及 Docker 等平台上运行。它支持常见的音频格式如 MP3、FLAC 和 WAV,并提供了丰富的管理工具和服务。通过 Web 界面或 API,你可以轻松管理和访问你的音乐库。 通过 Docker 部署 使用 Docker Compose: 123456789101112131415161718192021222324252627services: navidrome: image: deluan/navidrome:latest user: 1001:100 # should be owner of volumes ports: - "4533:4533" restart: unless-stopped environment: # Optional: put your config options customization here....
硬路由(6)—— Tricks & 组网图景
回到目录 Tricks 这里是一些笔者在配置网络中遇到并解决的问题,由于暂时无法归类到其他页面所以存放在此处。 Q:发现路由器带不动 NAS + 台式机组合,总是断流怎么办? 以下是笔者使用 AX3000T 的自述: 这大半年来配置并使用 AX3000T,我的感受是:能用,但是一点也不好用。它的配置如下: Filogic 820(MT7981B) WiFi 6 256 MB RAM + 128 MB Flash 虽然它支持解锁 SSH、刷入 OpenWrt(我的固件为 qwrt 改),但我为了它做了一次次妥协。 起初,我希望它能够实现以下功能: Tailscale 远程组网 安装时发现空间不足,使用脚本装入了/tmp 导致路由器频繁 OOM 重启 最终将 Tailscale 安装在了 NAS 上 科学上网 使用自带的 OpenClash 插件时会崩溃 改用 Shellcrash 无线组网(5G + 2.4G) 5G 频段同时开启 Client 和 Master 模式导致性能下降 关闭 5G 频段的 Master 模式 即便如此,在台式机和...