倒腾日记
Last updated on December 20, 2025 10:08 PM
2025-06-06
- SSH:把本地的公钥添加到远程的
~/.ssh/authorized_keys即可免密登录。
2025-06-07
-
用
pyplot可以在浏览器里可视化三维点云。代码如下:1
2import plotly.io as pio
pio.renderers.default = "browser"剩下部分让大模型写就好了。
-
对于三维的任务,每次操作前务必花点时间写一下可视化,不会耗费很久的。
2025-06-20
- 命名规范:
T_a_b命名,表示 b 在 a 坐标系下的 transform。
2025-07-03
-
ImageMagick
图片处理,mogrify
2025-07-12
- RoboTwin 2.0:
- 现有合成数据面临的三个问题:缺乏自动化质量控制、域随机化不够、忽略了 cross embodiment。
- 使用三个主要部件进行解决:
- 利用多模态大模型做自动闭环反馈的自动化数据合成管线
- 域随机化:language instructions, object clutter, background textures, lighting conditions, and tabletop configurations
- embodiment-aware adaptation
- 自动化专家演示代码生成:用一个 Code Agent,合成的是完成任务的 Python 代码。十次仿真执行,若失败概率超过一半,用 VLM 进行诊断(结合 log 和 observation),然后反馈给 Code Agent。
2025-07-18
-
node.js 安装教程:(5 封私信 / 5 条消息) node.js安装及环境配置超详细教程【Windows系统安装包方式】 - 知乎 配置环境变量有点麻烦。
-
安装了 gemini-cli
-
设置终端代理很简单,Windows 直接
1
2[System.Environment]::SetEnvironmentVariable("HTTP_PROXY", "http://127.0.0.1:7897", "User")
[System.Environment]::SetEnvironmentVariable("HTTPS_PROXY", "http://127.0.0.1:7897", "User")设置环境变量即可,可用
Invoke-WebRequest https://ipinfo.io/ip来验证 -
Gemini-cli 文档:命令 - Gemini CLI 中文文档
2025-07-21
-
B 站播放调速:
document.querySelector('video').playbackRate = 5 -
备忘录:记得仔细再看看 BatchNorm 和 LayerNorm 的对比
-
Transformer
-
Autoregressive 的含义
事实上是在机翻架构中,encoder 和 decoder 的职能区别。
encoder 只跑一次,负责弄出一组上下文表示 。
decoder 是一个词一个词生成输出的,前面的所有输出会作为下一次的输入,所以叫“自回归”,这也是为什么 decoder 的 self-attention 层需要 causal mask。
-
Attention 块是“横向”处理,提取 context 信息,而后面的 MLP 是对序列中每个 position 单独做的,相当于做语义空间的一个转换。
-
Attention 弄出来的结果实际是 value 的线性组合,所以不包含位置信息,需要一开始加一个 positional embedding。
-
-
BERT
- 纯 encoder 架构,最后弄出来的东西是上下文信息的高维向量,可以是 word 级别的也可以是句子级别的(CLS token),这些东西接到具体下游任务中去做。
- bidirectional 和 autoregressive 的区别
- 预训练的时候相当于在做完形填空
-
ViT
- 非常 naive 地将图片切成 16x16 的 patches,tokenize 之后丢给 transformer。主要是太 tm 有钱了所以 train 出来了。
- inductive bias(归纳偏置):ViT 在中等规模数据集训练且不加强正则化的能力不如 CNN 的原因是缺乏归纳偏置。CNN:locality 和 translation equivariance。相当于 CNN 已经有了这些先验信息(针对图片处理更好)
2025-07-22
-
MAE
-
Masked Autoencoders Are Scalable Vision Learners
这个标题的 xxx 是好的 xxx 句式可以参考
-
Kaiming 的 story telling 能力确实牛逼,在 Introduction 部分把 BERT 迁移到 CV 领域遇到的问题以及为什么这样设计 MAE 都讲得很清楚了。
-
Encoder 和 decoder 是非对称结构。Encoder 只看到没有被遮住的块,然后生成 latent representation,decoder 则是需要还原出整张图片。Decoder 的规模也远小于 encoder。
-
-
GPT
- GPT-1:2018 年,比 BERT 早,decoder-only 架构,自回归,也是 pretrain + 下游任务 fine-tune 的范式,但是被 BERT 打爆了。Generative 的技术路线是比 BERT 的完型填空更难的,当时的数据规模并不够大,所以被暴打也正常。
- GPT-2:2019 年,用了更大的数据集,主打 zero-shot。也因此开创了 prompt 范式。
- GPT-3:2020 年,175B,few-shot,主打 in-context learning,预训练好之后不再动模型参数。
2025-07-28
- 对比学习:
- Pretext task:代理任务,相当于在无监督的情况下“自己造”一个标签来进行监督。一般是人们实际不关心但有助于模型学习表征的任务,比如说 instance discrimination
- MoCo 就是在用动量学习法。以动量的方式来更新字典的 encoder。
2025-07-30
-
记录一则:用 rust cargo 下载依赖的时候代理出了问题。经过排查是 git 的代理设置问题(端口号搞错了)。
1
2git config --global http.proxy http://127.0.0.1:7897
git config --global https.proxy http://127.0.0.1:7897这样设置 git 代理就正常了。
-
学习 Rust 的一些印象深刻的点:
-
表达式与语句的区别。
1
2
3
4
5
6fn calc_fib(n: u32) -> u32 {
if n <= 1 {
return n;
}
calc_fib(n - 1) + calc_fib(n - 2)
}甚至循环也可以
1
2
3
4
5
6
7let result = loop {
counter += 1;
if counter == 10 {
break counter * 2;
}
};然后的话循环可以打标签,这样就可以 break/continue 外层循环了
1
2
3
4
5
6
7
8
9
10'counting_up: loop {
loop {
if remaining == 9 {
break;
}
if count == 2 {
break 'counting_up;
}
}
} -
引用:在写的时候都要加上
&号。然后可以用&mut来创建可变引用。同一时刻只能有一个可变引用,这样可以避免 data race。也不能在有不可变引用的时候创建可变引用
-
2025-08-01
-
Rust 的 let if 和 let else 都很有说法。let else 是在匹配不上的时候直接执行里面的代码(必须返回),否则把匹配的值返回外层定义域。
1
2
3
4
5
6
7fn describe_state_quarter(coin: Coin) -> Option<String> {
let Coin::Quarter(state) = coin else {
return None;
};
// state 可以在外面被取用
}
2025-08-03
mmdet3d报错mmcv版本问题:直接改包里面的源码。- torch 版本选 2.1,不然可能报
implementation for device cuda:0 not found.错。
2025-08-04
-
组织项目的时候可以开一个
third_party文件夹放第三方库,然后用git submodule管理之。类似于这样:
1
2sys.path.append('third_party/vggt')
from third_party.vggt.vggt.models.vggt import VGGT
2025-08-06
- 傻逼 Windows 的切换应用输入法问题:按 win+tab,重命名桌面的时候把输入法切成英文即可。不知道为什么有这么傻逼的 bug。
- MobaXTerm 转发图形界面:(7 封私信 / 10 条消息) MobaXterm 通过 X11 Forwarding 图形界面可视化及OpenPCDet demo 实现 - 知乎
- pip 删包的时候可以用 pip-autoremove 自动删掉依赖
- 在
.bashrc或.zshrc里加上export HF_ENDPOINT=https://hf-mirror.com,然后安装pip install "huggingface_hub[hf_xet]"可以做到神速从 huggingface 上下东西
2025-08-08
- Linux 查看文件状态(修改时间等):
stat <文件名>
2025-08-09
- Rust 解析命令行可以用
clap包。在cargo run的时候用--来跟参数,比如说cargo run -- -koopa hello.c -o hello.koopa。可以用宏的形式写出非常健壮且简洁的命令行解析。 - Rust 的
Box<T>是一种智能指针,将值放在堆上,然后在栈上保留指向堆的指针。非常适合大小不能确定的递归类型(比如编译器中的Exp)
2025-08-25
- Powershell 的输入重定向没有 LInux 中
< InputFile的格式,可以用Get-Content input.txt | command。
2025-08-26
-
善用 Jupyter Notebook 进行调试,极大提高效率,不用每次都重新 load 之类的了。
在
.gitignore里面直接忽略掉所有*.ipynb即可。 -
目前需要做的几件事:
- 等数据集下载好之后测试一下 mesh 的效果、
- 可能需要再多调一下 Qwen-VL 2.5 的 prompt
- 如果这个数据集 8 太行的话考虑一下 RealEState
- 写一个用 blender 渲染 mesh 的接口,目前能想到可能需要解决的一些问题:
mesh 的坐标是没有和世界坐标系对齐的,光照的方向需要想办法怎么弄- 目前这个是最难搞的
- 因为确实就是很难搞啊x
- 笑嘻了,全是相机坐标系下的,根本无所谓好吧
- 目前这个是最难搞的
- 重建出来的 mesh 只有一半,怎么进行 masking(目前不是很明白细节)
- 参考 sketch3dve 里面的处理方法
- 一些需要明确的细节:
- FPS 问题:数据集的帧率,数据集里每条视频抽几帧出来,生成轨迹以供 blender 渲染
- blender 渲染出来的东西的分辨率?以及要用什么样不同的 proxy materials?
- 分辨率:480*832
- proxy materials:diffuse+3个不同roughness的GGX就行
- 等数据集下载好之后测试一下 mesh 的效果、
-
X11 图形界面转发配置:
-
编辑
/etc/ssh/sshd_config1
2
3X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost no -
云容器上没法
sudo systemctl restart sshd,但是可以service ssh restart,这样就可以用 MobaXterm 连接了。
-
-
现在最头疼的还是数据集的问题,明天必须得仔细想想办法解决这个
2025-08-28
-
Huggingface 不知道为什么抽风,hf-mirror 报错。
可以
apt install aria2然后用hfd来解决。1
2
3
4wget https://hf-mirror.com/hfd/hfd.shchmod a+x hfd.sh
chmod a+x hfd.sh
export HF_ENDPOINT=https://hf-mirror.com
./hfd.sh [MODEL_NAME] -
对于 github ssh 22 端口超时错误,可以编辑
~/.ssh/config将端口改成 443:1
2
3
4
5
6Host github.com
Hostname ssh.github.com
User git
Port 443
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_ed25519改到 443 后有概率能解决。
2025-09-03
- tmux 的 UTF-8 字符问题:启动的时候加一个
-u参数就行了。
2025-09-17
set -g mouse on即可启用 tmux 鼠标滚轮
2025-10-04
- CineMaster:
- 用物体的 3d bbox 来精确指定物体 motion 和 camera motion。
- 渲染 3d bbox 的深度图,和 bbox 的语义信息一起注入到 ControlNet 里面。
- 他们的局限性:
- 光照不可控
- bbox 终归具有局限性,无法精准表征 3d 位姿
- 比我们强(?)的地方
- 物体的 motion 是可以指定的,我们是默认物体静止
- 也不知道他们怎么就能把 bbox 弄出来而我们就没弄出来。。。
2025-10-06
- Lumen:
- 视频重光照的一篇工作
- 我觉得亮点在于数据集的处理。用 UR5 渲染了 20000 条数据。同时辅以真实数据 ~100k 条。
- 合成数据前景严格对齐,物理一致性强
- 真实数据外观分布更广,更真实,但 preservation 不够强。
- 训练:
- backbone 用的 Wan 2.1
- 引入了一个用 LoRA 实现的 style adapter 来吸收 3D 渲染的风格信息,从而解耦域分布,并通过两阶段训练让模型既学到物理光照效果又能 generalize 到真实域。
- 分 stage 训练,先只用合成数据对 adapter 专门训练,然后 mix 训练。
2025-10-15
- Typst 合并单元格:
table.cell(rowspan: 2)[内容]这样就可以了。 - Typst 表格对齐的时候可以
center + horizon,二者用加号连接
2025-10-29
- huggingface 的缓存默认会在
~/.cache/huggingface下,可以通过指定HF_HOME环境变量来把他改到数据盘而不是用户盘。 CONDA_PKGS_DIRS=/input0/conda_pkgs PIP_CACHE_DIR=/input0/pip_cache指定 conda 和 pip 的缓存路径(同样针对用户盘空间不足的问题)
2025-12-11
.gitignore必须是 UTF-8 编码- Acrobat 会有很多乱七八糟的安装补丁
.mcp文件在C:\Windows\Installer下,已严肃卸载省空间。