Stable Diffusion杂谈
前言
记录一下扩散模型相关知识和应用,应用主要指文生图模型Stable Diffusion及其生态。
在线体验Stable Diffusion Online
扩散模型相关理论
详细介绍以及数学公式推导见!!!苏剑林的科学空间!!! 张振虎的博客!!!
扩散模型发展至今,有许多可以研究/改进的方向,无论是应用还是算法改进。
如果是偏应用(适配下游任务等)的研究可以仅了解各个关键模型的主要贡献与不足,了解贡献中各个关键词对应公式中的哪部分变量即可。
如果做更底层(优化采样器等)的研究,再去仔细了解各个公式的推导优化过程。
扩散概率模型(diffusion probabilistic model, DPM)
模型信息:DPM,2015。
参考资料:扩散概率模型
关键词:扩散。
提出扩散模型的概念,将热力学中扩散的概念引入深度学习中。
不足:每一步预测的是当前时刻t的图像,预测任务难度大,最终生成图像质量低。
相关资料早在2015年,就由 Jascha Sohl-Dickstein 和 Eric 等人提出了概率扩散模型(diffusion probabilistic model,DPM) ...
blog笔记
前言
不记得在哪里看到的一句话:“个人博客的尽头是GitHub Page”。
之前在服务器上折腾前后端分离式的博客,风格仿照hexo-theme-butterfly主题,因为有服务器,很方便添加评论、聊天室等功能。动态博客可以在网页端编辑文章,搭建博客学到了很多东西,但是本人的核心需求仅有:
markdown笔记
这一项,近期服务器到期,于是回归了静态博客,一直没有总结静态博客的整体配置,今天记录一下。
GitHub为每个账户提供了一个GitHub Page,通过上传静态页面到username.github.io仓库,来展示个人经历等信息。
这个静态页面仓库允许上传多个页面文件,于是便有了基于GitHub Page的个人博客。
配置环境
参考hexo文档操作。
安装 Hexo 相当简单,只需要先安装下列应用程序即可:
Node.js (Node.js 版本需不低于 10.13,建议使用 Node.js 12.0 及以上版本)
Git
如果您的电脑中已经安装上述必备程序,那么恭喜您!你可以直接前往 安装 Hexo 步骤。
如果您的电脑中尚未安装所需要的程序,请根据以下安装指示完成 ...
规范化 Commit
前言
记录一下git日志的规范化写法,采用Angular 规范。
提交格式
每次提交,Commit message 都包括三个部分:header,body 和 footer。
其中,header 是必需的,body 和 footer 可以省略。
不管是哪一个部分,任何一行都不得超过72个字符(或100个字符)。这是为了避免自动换行影响美观。
12345<type>(<scope>): <subject><BLANK LINE><body><BLANK LINE><footer>
Header部分只有一行,包括三个字段:type(必需)、scope(可选)和subject(必需)。
参数说明如下:
type(必需)scopesubject(必需)BodyFooterRevert参数补充
用于说明 git commit 的类别,只允许使用下面的标识。
以下表格来自阿里技术
标识
含义
feat
新功能(feature)
fix/to
修复 bug,可以是 QA 发现的 BUG,也可以是研 ...
IDEA笔记
通用
Alt + Enter 帮助指令
Alt + x 关闭所有非活动选项卡
Ctrl + ` 更改视图模式
移动
Alt + up/down 以函数为单位移动
Ctrl + G 定位到行
Ctrl + W 可以选择单词,继而语句,继而行,继而函数
Ctrl + Shift + W 取消选择光标所在行
Ctrl + { or Ctrl +} 跑到大括号的开头或者结尾
Ctrl + Shift + Enter 定位到最近可编写代码的位置
Ctrl + G 转到行:列
Ctrl + -/+ 收起和展开代码块
定位查找
Shift + Shift 查找任意文件
Ctrl + Shift + A 查找动作/设置
Ctrl + Shift + F 文件中检索
Ctrl + N 查找Java类
Ctrl + F 查找
Ctrl + R 替换
F4 进入某一方法或者到变量定义处
Ctrl + B 查看声明或使用处
Ctrl + F12 查看方法和成员变量
Ctrl + Alt + left/right 回退/前进 到上一次编辑处
Ctrl + E Recent Files
Alt + J ...
git笔记
配置
查看配置
123git config --global --list# orgit config --global -l
修改配置方法
命令行修改
使用命令行添加或修改配置:
PS: 有3种级别的配置
123456# system %Git/etc/gitconfiggit config --system core.autocrlf xxx# user ~/.gitconfiggit config --global user.name xxx# local workspace/.git/configgit config --local remote.origin.url xxx
使用命令行删除配置:
1git config --global --unset alias.别名
配置文件修改
使用如下命令可以快速打开config文件
1git config --global --edit
也可以手动打开文件,config文件内容类似下文,修改后保存即可。
12345678910111213141516171819202122[core] editor = \"C:\\c ...
通过symbol方式使用icon
通过symbol方式使用图标
前端构件中常常会用到各种小图标,使用图标的方式有很多,这里选择了symbol方式导入svg-icon。
原因是:这种方式设置好模板和相关配置后,想使用新的图标只需将icon的svg文件放入指定文件夹,通过文件名便可使用图标,更新方便。
参考网站
一个好用的svg加载器svg-sprite-loader
手摸手,带你优雅的使用 icon
iconfont官网
安装svg-sprite-loader
1npm i svg-sprite-loader -D
配置vue.config.js
1234const path = require("path");function resolve(dir) { return path.join(__dirname, dir);}
12345678910111213141516171819chainWebpack: (config) => { // 添加新的svg-sprite-loader处理svgIcon config.module .rule(&quo ...
DDD
随着编程工业化水平的不断加深,各种编程模型层出不穷(比如MVC,MVP等等),伴随着这些编程模型,又有一大批新的概念蜂拥而至,什么VO,BO,PO,DO,DTO之类的,这些新的概念一直以来都是云里雾里,网上虽然也有不少文章来区分这些概念,但看下来基本都是几篇相同的文章转载来转载去,这些文章本身也说的不明,有些还互相矛盾,再加上有些文章在简化系统里面来使用这些概念,让人越看越迷糊
什么原因造成了这种混乱的状态,就不深究了,感觉也很难究出所以然来
因此让我们立足这些概念本身,达成对概念理解的一致性,就足够了,这也是这边文章的主要目的
鉴于专业术语的解释互联网上太多,一搜一大把,我就不重复一遍术语了,而且说实话,术语太抽象,不利于理解,看完其实没解决啥疑惑,我会尽量用大白话(人话)来做解释,争取让大家都能看明白
废话不多说,先来看张图
看完图估计大部分人就已经有了一个直观的感受了
面对这个图,让我们先从承上启下的DTO开始入手
DTO(Data Transfer Object)数据传输对象
这个传输通常指的前后端之间的传输
DTO是一个比较特殊的对象,他有两种存在形式:
在后端,他的存在形 ...
循环依赖
转载自文章spring:我是如何解决循环依赖的? ,学习项目过程中发生了循环依赖的问题,该文章对循环依赖的多种场景都有讲解,故转载下来。
1.由同事抛的一个问题开始
最近项目组的一个同事遇到了一个问题,问我的意见,一下子引起的我的兴趣,因为这个问题我也是第一次遇到。平时自认为对spring循环依赖问题还是比较了解的,直到遇到这个和后面的几个问题后,重新刷新了我的认识。
我们先看看当时出问题的代码片段:
12345678910@Servicepublic class TestService1 { @Autowired private TestService2 testService2; @Async public void test1() { }}
123456789@Servicepublic class TestService2 { @Autowired private TestService1 testService1; public void test2() { ...
逻辑学笔记
看书看到涉及逻辑学的,略微整理回顾下相关公式
命题联结词
否定词 ¬\neg¬
否定词(negative)作用于1个命题,类似于生活中的“非”。
读法: 读作“ ”。
定义: 为真,当且仅当 为假。真值表:
P
¬\neg¬ P
1
0
0
1
合取词 ∧\wedge∧
合取词(conjunction)作用于2个命题,类似于生活中的“且”。
读法: 读作“ ”或“ ”。
定义: 为真,当且仅当 和 都为真。真值表:
P
Q
P ∧\wedge∧ Q
0
0
0
0
1
0
1
0
0
1
1
1
析取词 ∨\vee∨
析取词(disjunction)作用于2个命题,类似于生活中的“或”。【析:分析,分开。析取:即分开取。】
读法: 读作“ ”或“ ”。
定义: 为假,当且仅当 和 都为假。真值表:
P
Q
P ∨\vee∨ Q
0
0
0
0
1
1
1
0
1
1
1
1
蕴含词 →\rightarrow→
蕴含词(implication)作用于2个命题,类似于 ...
HDFS文件纠删码技术
HDFS文件纠删码技术学习笔记
HDFS的三副本技术
HDFS(Hadoop Distributed File System)是基于 流数据 访问模式的 分布式文件系统 ,其设计建立在 “一次写入、多次读取” 的基础上,提供高吞吐量、高容错性、高可靠性的数据访问,能很好地解决海量数据的存储问题。
高可靠性。数据自动保存多个副本,通过多副本提高可靠性。
HDFS 默认保存 3 份副本。
第一个副本:放置在 上传文件 的数据节点(第一个副本如果是在 集群外 提交,则随机挑选一个 CPU 比较空闲 、 磁盘不太满 的节点);
第二个副本:放置在与 第一个副本 不同 的机架的节点上;
第三个副本:放在与 第二个副本 相同 的机架的其他节点上。
缺点:冗余度高:3
(HDFS过去使用暴力的三副本技术,随着数据量越来越大,现代数据中心越来越多的使用纠删码技术来减少冗余度,同时保证了数据的容错性。)
Hadoop3.x 使用纠删码,将冗余度从3倍降低到1.4倍左右
纠删码(ErasuredCode/EC)
Erasure Code是一种编码技术,它可以将n份原始数据,增加m份数据,并能通过n+m ...