我的 OpenWrt 为什么不能启动 PBR ?

这大半年以来,我效仿 fernvenue 老师的这两篇博客 在 NX30 Pro 上嘗試 OpenWrt 和 在 OpenWrt 上配置策略路由 也在自己的住处安排了相应的配置,让上网变得更加丝滑,网络分流也更清晰。 不过曾经有一次我自己重装 OpenWrt 的过程中,遇到了 PBR 无法启动的问题,PBR 的下载安装,都没有问题,没有配置文件 enbale 的时候也可以正常启动,但一旦选中了某个配置文件,那么 PBR 立刻无法启动。而其中最关键的一行信息就是: Installing fw4 nft file [✗] 之前尝试过多种方法之后,终于解决了,但是我竟然忘记了是如何解决的,记得似乎是重启了一下就好了。但最近在给朋友进行相同配置的时候,这个问题又出现了,我尝试多次重启,也在网上查找了很多信息,似乎大家都没有遇到和我一模一样的问题。 由于我家里的那台 OpenWrt 在使用 PBR 的时候是没有问题的,所以就直接拿来一个一个得对比,我发现除了 固件版本 不一样以外,其他的都是一样的。这让我不得不怀疑是不是新版固件出了问题。 没记错的话,我当时给朋友安装的固件版本是: 24.10.2 r28739-d9340319c6 而我那台正常运行的则是: 24.10.1 r28597-0425664679 是的,只有这么一个小小的版本差距,但我看遍了所有的配置,只有这一个变量是不同的,于是决定立刻重装,并重头配置。 不出意料,果然 PBR 可以正常工作了。 目前,我还不知道是什么原因导致了这个问题,但我怀疑是内核问题,已向官方提了 issues 。

八月 14, 2025 · 1 分钟

RIME 词典,我当家做主!

写在前面 输入法安全一直是被大众,甚至可以说是很多人忽视的问题。但恰恰相反的是,最了解你的产品,往往是你最信任的产品。输入法是我们每天都会用到的工具,它记录了我们的输入习惯,也记录了我们的一些隐私信息。 当然,针对输入法安全的考量是一部分,另一部分的考量就是输入法的词典了。 RIME - 中州韵 是一款开源的输入法引擎,它的词典是由用户自己维护的。正如中州韵官网主页所描述的一样: 聪明的输入法懂我心意。 这样的设计,一方面可以保证用户的隐私安全,另一方面也可以让用户自己定制自己的输入法。 RIME 横跨三大平台,在每个平台上都有开箱即用的软件。 在 Windows 平台上,RIME 有 小狼毫 在 macOS 平台上,RIME 有 鼠须管 在 Linux 平台上,RIME 有 fcitx5-rime 在 iOS 上,RIME 有 Hamster - 仓 但本文并不着重介绍 RIME 的安装和使用,而是介绍如何自己维护 RIME 的词典。 词典 正如前文所述,RIME 的词典是 RIME 的灵魂,只有适合自己的词典,才是真正“懂我心意”的输入法。为了兼和我平时的发言习惯,兼览各大佬们维护的词典,以及我自己的使用体验,最终挑选了以下词典: base.dict.yaml luna_pinyin.dict.yaml zhwiki.dict.yaml ext.dict.yaml tencent.dict.yaml 这些词典的选用既能保证日常高频词的覆盖,又能保证专业词汇的覆盖,也能保证网络流行词的覆盖。 中文维基百科词典 zhwiki.dict.yaml 是中文维基百科的词典,收录了非常巨量的专业词汇,比如各类书籍、人名、地名、机构名等等。 中文维基百科词汇 macOS 鼠须管 由于这个词 “新戈利斯科耶农村居民点” 比较特别,属于中文维基百科词典的专属词,也比较长,一般的词典没有收录,所以可以尝试能否打出来这个词可以用来测试词典是否生效。 腾讯词向量词典 tencent.dict.yaml 来自 雾凇拼音 是腾讯词向量的词典,收录了一些网络流行词汇,比如各类网络用语、网络流行语等等。是 dvel 长期维护的词典。 两字词 两字词统一放到 base.dict.yaml 中,便于平时修订和调频。 因为两字词的排序基本决定了词库舒适度,重码较多,所以都加上注音和权重,并大量增删和调频。...

二月 28, 2025 · 2 分钟

如何理解 RNN ?LSTM 又是啥?

是啥? RNN 就像一个有短期记忆的学习者,它能记住最近的信息,但时间越长,记忆越模糊。 通俗来说,RNN(循环神经网络) 可以类比成一个有记忆的“学习者”。假设这个学习者在读一篇文章,他每读完一个词就会暂时记住这个词的意思,再去读下一个词。在传统神经网络中,每次处理的输入都是独立的(像每次都从零开始阅读),但在RNN中,它会“记住”之前的信息(之前的词),并将这些记忆传递给下一步处理,让整个句子有上下文的联系。 但是,RNN 有一个非常明显的问题:短期记忆强,长期记忆弱。就像你记得刚刚读到的几个词,但越往前回忆,记忆就会越来越模糊。这种现象在处理长文本或长序列时尤为明显,它“记住”早期信息的能力会随着时间推移迅速衰减,这被称为 梯度消失 问题。 那 LSTM(长短期记忆网络) 为 RNN 解决了什么问题呢? 可以想象 LSTM 是一个“有着更加聪明记忆能力的学习者”。它不仅仅像 RNN 那样简单地记住最近的信息,还学会了如何挑选重要的记忆保留下来,并抛弃不重要的内容。LSTM 通过 “遗忘门”和“记忆门” 等机制,决定哪些信息应该忘掉,哪些应该长期记住,从而解决了 RNN 无法很好地记住长时间信息的问题。 举个例子:想象你在读一本小说,刚开始时提到的某个人物情节对故事发展很关键,但过了一段时间你可能就不需要记住每个不重要的细节了。LSTM 就好比你的大脑,它有能力判断哪些信息应该记住很久(比如关键的主线人物)而哪些可以随时忘记(比如不重要的细节)。这样它就可以更好地处理那些时间跨度较大的信息,而不会像 RNN 那样迅速遗忘。 一些细节 1. RNN 的技术细节 RNN 的核心在于它的“循环”,即网络的输出不仅依赖于当前输入,还依赖于上一时刻的隐藏状态。这是它“记忆”的来源。 数学表达: 在 RNN 中,隐藏状态 \( h_t \) 是通过当前输入 \( x_t \) 和前一个时刻的隐藏状态 \( h_{t-1} \) 共同计算的: \[ h_t = \tanh(W_h h_{t-1} + W_x x_t + b) \] \( W_h \) 是连接隐藏状态的权重矩阵(负责记住过去的信息)。 \( W_x \) 是输入层的权重矩阵(负责处理当前输入)。 \( \tanh \) 是激活函数(可以替换为其他如 ReLU,但常用的是 \( \tanh \))。 \( b \) 是偏置项。 RNN 的梯度消失问题 在训练 RNN 的过程中,我们会使用反向传播算法来更新权重。在长序列中,隐藏状态 \( h_t \) 会不断地被传递下去。这意味着,越早的输入对当前状态的影响需要经过多次链式计算。随着序列长度增加,隐藏状态的梯度会逐渐接近于零,这就是梯度消失。...

九月 20, 2024 · 2 分钟

如何理解交叉熵?

是啥? 在深度学习中,“交叉熵”是一个用来衡量两个概率分布之间差异的函数,通常用于分类任务。 比喻:猜糖果的颜色 想象你有一袋糖果,里面有红色、绿色和蓝色三种颜色。你猜这袋糖果的颜色分布是红色 50%,绿色 30%,蓝色 20%。但实际上,这袋糖果的真实分布是红色 60%,绿色 20%,蓝色 20%。 交叉熵的作用就是告诉你,你的猜测(预测)和糖果袋的真实分布有多接近。如果你的猜测和真实情况差别很大,交叉熵的值会很大;如果你猜得很接近,交叉熵的值就会很小。 数学解释 交叉熵的数学公式可以写成: \[ H(p, q) = - \sum p(x) \log(q(x)) \] 其中: \( p(x) \) 是真实的概率分布(比如糖果袋的真实颜色分布)。 \( q(x) \) 是你预测的概率分布(比如你猜测的颜色分布)。 这个公式的意思是:对于每种可能的糖果颜色,真实的概率 \( p(x) \) 和你预测的概率 \( q(x) \) 之间的差异,乘上 \( \log(q(x)) \),然后取负号,最后对所有颜色的可能性求和。 直观解释: 如果你猜得很对:比如你猜红色糖果有 60%,而真实也是 60%,那么交叉熵的值就会很小,表示你预测得很准确。 如果你猜得不对:比如你猜红色糖果只有 20%,而真实是 60%,那么交叉熵的值就会很大,表示你的预测与真实情况差距很大。 交叉熵的计算 例子: 假设我们有一个简单的分类问题,只有两个类别,比如“猫”和“狗”。 真实的标签是“猫”,所以真实概率 \( p(x) \) 是: 猫:1.0 狗:0.0 模型预测的概率 \( q(x) \) 是: 猫:0.8 狗:0.2 逐步计算: 根据公式,交叉熵计算会涉及每个类别。我们带入这两个类别的概率: \[ H(p, q) = - \left( p(\text{猫}) \cdot \log(q(\text{猫})) + p(\text{狗}) \cdot \log(q(\text{狗})) \right) \] 计算“猫”部分:...

九月 18, 2024 · 1 分钟

升级到 macOS 15 之后,我的 nix 怎么没了?!

咋回事? 昨天我愉快地将 macOS 升级到了 15 版本,结果今天用 hugo 建站时,发现 hugo 不见了?! (base) BdimMacBook-Pro:~ bdim404$ hugo -bash: hugo: command not found 我想,我并没有卸载 hugo 啊。 我的 hugo 是通过 nixpkgs 安装的,于是我检查了一下 nix 是否还在。 (base) BdimMacBook-Pro:~ bdim404$ nix -bash: nix: command not found 天哪, nix 也不见了?! 发生了什么? 我询问了一位朋友,原来每次 macOS 升级时, nix 的 $PATH 都会消失。这个 issue 提到了这一点。 I have done a few days before the upgrade to Catalina 10.15.6… and today I wanted to install something to discover that my nix installation was gone!...

九月 17, 2024 · 1 分钟