pve安装使用全流程
PVE安装参考:主要来源于张大妈
https://post.smzdm.com/p/ar6zmoox/
https://post.smzdm.com/p/a4dm98ok/
下载
使用ultraiso安装
用diskgenius删除所有分区重新格式化如果插入u盘时提示需要格式化,大概率要重新格式化才能写入
格式化需要用到DiskGenius
恢复成功后应该就能够打开u盘了
update 先用rufus安装,再切换到ultraiso重新安装就可以了
pve设置ssh免密登陆直接搜ssh免密登陆,新建或者把已有的公钥黏贴到~/.ssh/authorized_keys即可
网络设置参考:https://blog.csdn.net/tangobravo/article/details/119336503
网络不通,检查以下几个参数
/etc/network/interfaces,其中gateway填写路由器地址即可
/etc/hosts一般不用改,安装的时候已经设置好了
/etc/resolv.conf 重头戏,需要改,主要是添加dns,比如下面添加了两个,一个国 ...
hexo algolia 使用
参考
https://blog.ccknbc.cc/posts/hexo-butterfly-algolia/ 相当详细,介绍了仅仅搜索标题了搜索全文的两种方法
Hugo博客搭配Algolia实现站内搜索,介绍了全文搜索的情况下自动更新
hexo-algolia和hexo-algoliasearch的区别
分别是 hexo-algolia 和 hexo-algoliasearch,他们的介绍分别为
Index your hexo website content to Algolia Search.🔎 A plugin to index posts of your Hexo blog on Algolia
也就很明显了,如果你想要全站搜索可选择前者,如果你只想搜索文章两者兼可。但前者不能将文章内容作为索引上传,后者可全文上传。然后就是 HEXO 配置文件中添加以下内容,下文基本以 hexo-algoliasearch 为例,因为我个人认为访客只会搜文章吧(事实上是搜索根本没人用,毕竟也根本没人访问),hexo-algolia 可查看官方文档,注意配置和命令的区别
仅仅搜索标题 ...
hexo new 时的路径创建
基本用法如下
hexo new layout [article_name] -p [path]
注意path末尾不用加.md
hexo new layout [article_name] -p [article_name]这种默认是在source/_posts下创建
比如
hexo new article-img tttt -p tttt
hexo new layout [article_name] -p subdir/[article_name]这种等价于在source/_post/subdir创建,如果subdir不存在则会自动创建
hexo new article-img tttt -p misc_1/tttt
gitignore忽略整个文件夹下所有文件但保留一些
参考.gitignore设置跟踪忽略文件夹中文件说的挺全的,可以好好参考
常见错误原因假设想要忽略所有的名为Win7Release或release的文件夹下除.txt文件之外的文件,很容易写成如下错误形式
*[Rr]elease/
!*[Rr]elease/*.txt
注意:上面已经说过git对于.gitignore配置文件是按行从上到下进行规则匹配的,由于先执行*[Rr]elease/忽略了所有符合条件的文件夹,接下来执行!*[Rr]elease/*.txt时找不到名为*[Rr]elease的文件夹,也就无法追踪这些文件夹下的txt文件了。
所以,在这里,第一步我们不应该忽略这些文件夹,而应该忽略这些文件夹下的所有文件,正确规则添加如下
[Rr]elease/*
!*[Rr]elease/*.txt
!*[Rr]elease/files/
*[Rr]elease/files/*
!*[Rr]elease/files/*.txt
*/bin/*[Rr]elease/*
!*/bin/*[Rr]elease/*.txt
!*/bin/*[Rr]elease/files/
*/bin ...
github多账号设置
参考:
GitHub 多账户设置
github_multiple-accounts.md
github 多账号使用ssh key
适用场景:希望在同一台机器上使用多个github账号时
步骤核心步骤:
创建一个新的SSH key(注意路径)并添加进ssh
在新的账号上添加新创建的public key
在本地添加一个config文件以作区别
enjoy!
创建一个新的ssh key并添加ssh-keygen -t rsa -C "xxx email"
注意这里不能一路回车,在下面这步需要输入新的位置,因为通常默认的是id_rsa,而这个已经被原来的账号所使用
因为默认只读取id_rsa,为了让SSH识别新的私钥,需将其添加到SSH agent中,比如这里就把上面的key命名为id_rsa_wttong
在新的账号上添加新创建的public key进入github setting - SSH key相关的即可添加
在本地添加config文件通常来说是默认是没有config文件的,所以要先创建,然后打开编辑
touch ~/.ssh/config
vim ~/.ssh/co ...
tensordot
tensordot的理解
参考 numpy的tensordot的说明文档,说的比较详细,但是依旧有点晦涩难懂
在tensorflow中有一样的函数,功能和numpy中的一样。
顾名思义,tensordot的含义就是“张量的点积“,具体到numpy或者tensorflow中的使用,有两种:
如果给定的axes是一个int N,则直接第一个张量的最后N维度和第二个张量的前N个维度逐个元素相乘,然后加起来(注意这里的加,对应+,对于number就是数字相加,对于字符串等价于拼接)
如果给第的axes是list,则其中每一个元素应该是一个tuple,tuple的第一个元素表示操作第一个张量对应的维度,第二个元素表示操作第二张量对应的维度
比如:a的维度是$(2,3,4)$, b的维度是$(3,4,5)$:
np.tensordot(a, b, 2)的结果的维度应该是$(2,5)$,具体的操作可以理解为,固定a的第一个维度和b的最后一个维度(依次取值,作为最外层的循环,即i,j),a的后两个和b的前两个维度相同位置的元素依次相乘,求和,作为对应位置的元素
ans = np.zer ...
使用python单例模式时要注意的key
问题训练时,只希望所有数据只有一份存储在内存中,即对于同样的一份数据只读取一次,但是又希望被多个不同的dataset或者dataloader共用,自然是需要单例模式。
一个经典的实现就是:
class Singleton(type):
_instances = {}
def __call__(cls, *args, **kwargs):
if cls_key not in cls._instances:
cls._instances[cls] = super(Singleton, cls).__call__(*args, **kwargs)
return cls._instances[cls]
def clear(cls):
# MyClass.clear() to clear
cls._instances = {}
但是这种实现仅仅只能保证一个类只产生一个实例,但是对于想用一个类来初始化所有的数据来说,并不可行,等价于初始化完t ...
pytorch加速与降低显存
总体而言,主要从以下两个方面改善,不过能把第一个加速了就很好了:
数据预处理部分
模型自身的部分
当数据都在GPU时,prefetcher收益不大
哪怕数据不在GPU,FastDataloader效果也不错
而且GPU占用也不高
测试脚本
import torch
from torchvision import datasets, transforms
import time
if __name__ == '__main__':
use_cuda = torch.cuda.is_available()
for num_workers in range(0,50,5): # 遍历worker数
kwargs = {'num_workers': num_workers, 'pin_memory': False} if use_cuda else {}
train_loader = torch.utils.data.DataLoader(
datasets.M ...
screen使用
修改srceenrc后不重启screen生效来自 How to reload screenrc without restarting screen?
Ctrl-a :source ~/.screenrc.
开启自动刷新(altscreen)具体原理说明参考:
GNU screen clearing on vim,less,etc. exit
Using screen, commands like less and man don’t clear the screen afterwards,推荐,说的非常详细
这是非常必要的设置,默认应该是关闭,则在使用vim等应用之后,上一页会残留,比如下面这样:
开启altscreen on之后,编辑完直接退出,不会有残留
解决Pytorch RuntimeError: element 0 of tensors does not require grad and does not have a grad_fn
问题使用IEG系列过程中,发生如下问题RuntimeError: element 0 of tensors does not require grad and does not have a grad_fn:
原因模型写错了!!要注意要用meta module!!不能常规的nn.Module,因为这里面返回的params都是nn.Paramter而非像MetaModule那样是torch.tensor
解决方法直接改回来就好了!!