【Ubuntu】打造全自动追剧工具
部署参考,以及部署效果展示:https://www.bilibili.com/video/BV1wD4y1B7xZ
原视频是使用群晖nas进行部署,本文使用ubuntu上安装
一共需要安装三个软件:nas-tools(管理器), Emby(媒体播放器), qBittorrent(下载器)
挂载nas到ubuntu
把局域网的Nas设备挂载到Ubuntu电脑上
单次挂载
首先在Ubuntu 的 /mnt 目录下新建一个 NAS 挂载目录 nas:
123sudo mkdir /mnt/nas# 下面这个命令是为了共享时,允许匿名直接访问,解决权限问题sudo chmod 777 /mnt/nas
安装 cifs-utils
1sudo apt-get install cifs-utils
查看用户的 uid 和 gid
1id root
运行下面的命令,完成单次挂载
1sudo mount -t cifs -o uid=root,username=admin,password=xxxx,iocharset=utf8,file_mode=0777,dir_mode=0777 //1 ...
针对SD的Gaussian Shading鲁棒水印实现
A watermark for Diffusion Models
[!NOTE]
This is an unofficial implementation of the Paper by Kejiang Chen et.al. on Gaussian Shading: Provable Performance-Lossless Image Watermarking for Diffusion Models
特性
[x] 在水印图像无损失情况下,水印消息提取正确率100% :tada:
[x] 对于多种不同的高强度失真攻击,拥有极好的鲁棒性;如JPEG压缩QF=10,平均正确率90% :+1:
[x] 支持Stable Diffusion不同版本:v1-4 , v2-0 ,v2-1 :tada:
[x] 支持命令行SD和可视化SD-webui :+1:
[x] 无需额外训练,仅对初始噪声矩阵进行修改,对图像质量几乎无影响 :sparkles:
[x] 即插即用,插件化使用方式 :heavy_check_mark:
【命令行】使用教程
生成水印图像
下载并确保原始的Stable ...
【selenium】自动登录校园网
实验室自动登录校园网
系统Ubuntu20.04
仅适用于宁波大学(实验室)网络,寝室网络的认证更简单一些
部分代码参考:https://github.com/password123456/setup-selenium-with-chrome-driver-on-ubuntu_debian
更新源
12apt updateapt upgrade
下载Chrome包
1wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
安装google-chrome
1dpkg -i google-chrome-stable_current_amd64.deb
检查Chrome版本
12google-chrome --version# Google Chrome 117.0.5938.132
安装selenium, webdriver-manager
https://pypi.org/project/webdriver-manager/
12pip3 install seleniumpip3 ...
【Diffusion】基于分数的生成模型
基于分数的生成模型
(Score-based generative models)
原文链接:
https://www.zhangzhenhu.com/aigc/Score-Based_Generative_Models.html
通过前面的学习,我们发现扩散模型可以从不同的角度进行解释。 其中一个等价的解释是基于分数的生成模型,前面章节虽然简单介绍了下, 但没有详细说明,本章我们详细讨论下基于分数的生成模型。 基于分数的生成模型是由宋旸等人在2019年提出 [1] 的, 后来他们又提出了基于随机微分方程的更一般的形式 [2], 本章我们一起讨论学习一下。
Scored-based的生成模型
在前面 DDPM 和 DDIM 的章节中,已经探讨了 DDPM 的降噪过程,可以看做是沿着分数(梯度)∇logp(xt)∇logp(x_t)∇logp(xt)前进。然而宋旸等人提出基于分数(Score-based)的论文 相关工作并不是建立在 DDPM 的基础上,所以论文里不是从DDPM的马尔科夫链式结构讨论和导出的,而是直接从分数匹配估计算法推导。
首先看下基于分数的生成模型的核心思 ...
【DDIM】详解
导论
在 DDPMDDPMDDPM 中,生成过程被定义为马尔可夫扩散过程的反向过程,在逆向采样过程的每一步,模型预测噪声
DDIMDDIMDDIM 的作者发现,扩散过程并不是必须遵循马尔科夫链,在之后的基于分数的扩散模型以及基于随机微分等式的理论都有相同的结论。
基于此,DDIMDDIMDDIM 的作者重新定义了扩散过程和去噪过程,并提出了一种新的采样技巧,可以大幅减少采样的步骤,极大的提高了图像生成的效率,代价是牺牲了一定的多样性,图像质量略微下降,但在可接受的范围内。
DDPM的回顾
首先回顾一下 DDPM 模型的机制,在 DDPM 中,真实世界的图像数据用随机变量 x0x_0x0 表示,它的概率密度记作 q(x0)q(x_0)q(x0),然而它的真实分布未知的,即 q(x0)q(x_0)q(x0) 具体形式是未知的,所以我们没办法直接从 q(x0)q(x_0)q(x0) 采样生成新的图片。
幸运的是,我们有很多 x0x_0x0 的观测样本,因此我们可以想办法利用这些观测样本估计出 q(x0)q(x_0)q(x0) 的一个近似表示【近似表示称为 p(x0)p(x_0) ...
【Cross-Attention】可视化
Cross-Attention Control
原链接
https://prompt-to-prompt.github.io/
自注意力机制
是一种用于序列数据(如文本、音频、视频)处理的机制,它允许模型在处理序列时将不同位置的信息相互关联起来。在自注意力机制中,每个输入位置的表示(例如词或时间步的嵌入)都将用于计算该位置与序列中其他所有位置的加权关联,这种加权关联受输入表示之间的相似性程度和它们之间的距离的影响。
自注意力机制的数学表达如下:
给定输入序列 X=[x1,x2,...,xn]X = [x_1, x_2, ..., x_n]X=[x1,x2,...,xn]
其中每个xix_ixi是输入序列中的元素,通过自注意力计算得到输出序列 Y=[y1,y2,...,yn]Y = [y_1, y_2, ..., y_n]Y=[y1,y2,...,yn] :
yi=∑j=1nαij⋅(WQxj)y_i = \sum_{j=1}^{n} \alpha_{ij} \cdot (W^Q x_j)yi=∑j=1nαij⋅(WQxj)
其中
$ \alpha_{ij} $ ...
【Diffusion】为什么用Classifier-free-guidance
参考原文
https://www.zhangzhenhu.com/aigc/Guidance.html
https://sander.ai/2022/05/26/guidance.html
https://sander.ai/2023/08/28/geometry.html
https://forums.fast.ai/t/why-do-we-need-the-unconditioned-embedding/101134?replies_to_post_number=3
Guidance: a cheat code for diffusion models
"Classifier-free guidance"显著改善了"conditional diffusion models"生成的图像(几乎没有额外成本)。它实施简单且极其有效。它也是OpenAI的DALL·E 2和Google的Imagen的关键组成部分,为它们的惊人图像生成结果提供动力。在这篇博文中,我将分享我的观点,并尝试解释它的工作原理。
引言
无论是 DDPM 还是 DDIM,这些扩散 ...
【Ubuntu】未自动挂载问题
Ubuntu自动设置挂载
记录一次Ubuntu未自动挂载问题
查看分区挂载情况
使用lsblk命令查看各分区挂载情况,选择ubuntu根分区。
得到以下内容,注意到sda2未被挂载
1234567loop0 7:0 0 4K 1 loop /snap/bare/5loop1 7:1 0 55.7M 1 loop /snap/core18/2812loop2 7:2 0 63.5M 1 loop /snap/core20/2015sda 8:0 0 3.6T 0 disk ├─sda1 8:1 0 16M 0 part ├─sda2 8:2 0 1.7T 0 part └─sda3 8:3 0 1.9T 0 part /media/xxx/Software
获取分区的 UUID
使用 blkid 命令:
blkid 命令会列出所有可用驱动器的信息,包括 UUID。
运行以下命令:1sud ...
网易云音乐导出到spotify
使用方法
用 Chrome 打开歌单的 web 页面(可以通过分享拿到链接,链接类似这样:http://music.163.com/playlist?id=xxx&userid=yyy)
然后右键“检查”(如果有左上角有 device 选项,需要选择 Laptop 开头的,可以在 Edit/编辑 里添加)
在 console 里输入下面脚本,即可输出 “歌曲名 - 歌手名” 格式的内容:
通过https://www.spotlistr.com/ 或 https://www.tunemymusic.com/ 导出到 Apple Music 或者 Spotify 等音乐平台
1234567891011121314151617181920212223(function () { let iframeDocument = document.getElementById("g_iframe").contentDocument; let tempElement = iframeDocument.createElement(& ...
【SVM】c++实现
SVM使用c++实现
下面是使用c++实现一个简单的支持向量机(SVM)分类器,并提供了从文件中读取数据、训练模型和对测试数据进行预测的功能。
SVM 实现是基于线性核函数的,并采用了简化的序列最小优化(SMO)算法进行训练
SVM推导
SVM 旨在找到一个超平面,使得正负样本间的间隔最大化。
对于线性可分的数据集,SVM 的目标函数和约束条件可以写为:
目标函数(最小化):
12∥w∥2\frac{1}{2} \| \mathbf{w} \|^2
21∥w∥2
其中 www 是超平面的法向量。
约束条件:
yi(w⋅xi+b)≥1, ∀iy_i (\mathbf{w} \cdot \mathbf{x}_i + b) \geq 1, \; \forall i
yi(w⋅xi+b)≥1,∀i
其中 yiy_iyi是第i个样本的类标签,xix_ixi是第i个样本的特征向量,bbb是偏置项。
通过拉格朗日乘子法引入拉格朗日乘子 αi≥0\alpha_i \geq 0αi≥0,得到拉格朗日函数:
L(w,b,α)=12∥w∥2−∑i=1mαi[ ...