Skip to content

Commit 21c91ec

Browse files
committed
Update style.
1 parent f9f03c9 commit 21c91ec

15 files changed

+474
-6
lines changed
2.36 MB
Loading
101 KB
Loading
209 KB
Loading
130 KB
Loading
129 KB
Loading

docs/blog/.authors.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
authors:
2+
ZhaoCake:
3+
name: Zhao Cake
4+
description: Ciallo~(∠・ω< )⌒☆
5+
avatar: ../assert/asuka.jpg

docs/blog/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
# Blog
22

3+
这里是ZhaoCake的博客,主要记录一些学习笔记和生活感悟。

docs/blog/posts/2024-01-20.md

Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
---
2+
draft: false
3+
date: 2024-01-20
4+
authors:
5+
- ZhaoCake
6+
categories:
7+
- 资源安利
8+
---
9+
10+
# 【小白向】MMDeploy安装部署|暗坑标注版
11+
12+
## 序言
13+
14+
本文主要针对在编译安装OpenMMLab团队的MMDeploy模型部署工具时遇到的“难以下手”的问题。
15+
由于OpenMMLab的用户中很大一部分都是具有快速开发需求的人,或者说其实相当部分OpenMMlab开源算法体系的用户都没有特别扎实的代码基础或者理论基础,比如说我,在面对MMDeploy这个相对于OpenMMLab其他算法库而言复杂了许多的代码库时会有一些畏难情绪。
16+
此外由于很多时候接触Cpp比较少,对于其中的编译安装有很多不理解的地方,环境变量稍稍一变动就高不明白了,本文主要对于一些我之前作不来但是现在能做的地方进行分享与展示。
17+
18+
<!-- more -->
19+
20+
## 正文
21+
22+
首先参考教程:(<https://github.com/open-mmlab/mmdeploy/blob/main/docs/zh_cn/01-how-to-build/linux-x86_64.md>)
23+
24+
如果教程由于在GitHub上你访问起来有困难,那么请移步[官方中文文档](https://mmdeploy.readthedocs.io/zh-cn/latest/index.html)
25+
26+
现摘取其中容易出问题的地方进行讲解。
27+
28+
跟着教程走一般都不会有问题,关键点在于==“不换终端”==,当然,如果你看了下面的文字知道发生了什么之后,你换终端也没有什么事。
29+
30+
### 1 安装PPLCV
31+
32+
教程中所给代码
33+
34+
```bash
35+
git clone https://github.com/openppl-public/ppl.cv.git
36+
cd ppl.cv
37+
export PPLCV_DIR=$(pwd)
38+
git checkout tags/v0.7.0 -b v0.7.0
39+
./build.sh cuda
40+
```
41+
42+
这里首先需要注意的是`export PPLCV_DIR=$(pwd)`这一步,这是为了添加ppl.cv这个包的环境变量。
43+
linux的环境变量,如果直接这样运行命令的话就是临时添加,如果你另起一个终端或者是使用`source ~/.bashrc`之类的命令刷新了环境变量,那么这一步就需要重做了。
44+
45+
其余在这个教程中涉及到这种什么什么“DIR”的也是一样的道理。
46+
47+
### 2 TensorRT环境相关
48+
49+
因为我是在Nvidia显卡上进行模型部署,所以下面也主要依托这个来讲。
50+
51+
```bash
52+
cd /the/path/of/tensorrt/tar/gz/file
53+
tar -zxvf TensorRT-8.2.3.0.Linux.x86_64-gnu.cuda-11.4.cudnn8.2.tar.gz
54+
pip install TensorRT-8.2.3.0/python/tensorrt-8.2.3.0-cp37-none-linux_x86_64.whl
55+
export TENSORRT_DIR=$(pwd)/TensorRT-8.2.3.0
56+
export LD_LIBRARY_PATH=$TENSORRT_DIR/lib:$LD_LIBRARY_PATH
57+
pip install pycuda
58+
```
59+
60+
这是教程中用于安装TensorRT包的命令。
61+
只要选择和自己的cuda版本相应的就可以了。
62+
如果你已经在做模型部署却连cuda都没有下载的话,那么请浏览器搜索引擎搜索Nvidia Cuda进入下载页面,根据你的环境进行选择,然后选择run脚本安装的方式安装cuda。
63+
**不要装deb包!不要装deb包!不要装deb包!**
64+
装deb包会连同你的驱动一起重装,一般而言是不合适的;而且这种库用APT或者YUM装,心里有点不踏实。
65+
确认cuda装好了,就是我刚刚说的选择合适版本的TensorRT包就可以了,选择Tar包,安装没你以为的比Deb包麻烦,知道文件都放在哪里的感觉令人安心。
66+
>截至1月20日,该文编辑时间,已经有cuda12.2了,但是没有与该版本对应的TensorRT版本,别担心,实测12.1能用的就行,换句话说,最新的能用。
67+
68+
下面的两步中,一个又是设置TENSORRT_DIR环境变量的,后面的cudnn安装也要设置这个。这是为了编译MMDeploy的内容才这么做的,一般来说项目里面不会这么做,可能只是会在CMakeLists中通过set方法在文件内定义一下。这里用这个方式传入库的信息其实已经非常简化了流程了;而下面的第二条环境变量指令是将库文件所在引入环境变量,是常见的配置TensorRT环境的步骤。
69+
70+
我之前就装过,所以仅仅进行`export TENSORRT_DIR=/opt/TensorRT-8.9.1.6`,这是我安装TensorRT的位置,另一条指令则写入了.bashrc文件。
71+
72+
注意不要忘记装pycuda。
73+
74+
然后是安装Cudnn这个深度学习加速库。命令上也是差不多的。
75+
对于之前装过Cudnn的人来说,一般来说就和cuda的库文件放在一起的。也就是`/usr/local/cuda`中,准确的应该要加版本号,不过一般都有软链接,应该是运行装cuda的时候自带的设置软链接。从而我们也可以粗略得出一种管理多版本cuda的方法——应该可以通过临时改换软链接的指向来确定当前使用的cuda环境。当然,这样做在写CMake的时候还不如直接接上版本号来得方便。
76+
77+
==后面接着说了如果想永久有效的话就写入当前所用shell的配置文件==,不一定就是.bashrc哦,也许你是别的shell。不过如果你不知道这个的话你多半就是.bashrc了。
78+
79+
### 3 编译MMDeploy
80+
81+
也是有一个设置环境变量的过程。没啥难度。
82+
83+
不过另一个需要注意的地方是,MMDeploy中是有子模块的,不过因为是放在一个文件夹“ThirdPart”还是什么名字之下的,你克隆的时候可能没有看见。
84+
85+
在克隆仓库时克隆子模块则加上`--recursive`参数;如果已经克隆了仓库但没有克隆子模块,则运行:
86+
87+
```bash
88+
git submodule update
89+
```
90+
91+
来更新子模块。
92+
93+
### 4 编译SDK
94+
95+
如果你前面都没什么问题,最后模型也转换出来了,但是最后你没办法完成推理,那么多半是SDK编译不对,
96+
97+
```bash
98+
cd ${MMDEPLOY_DIR}
99+
mkdir -p build && cd build
100+
cmake .. \
101+
-DCMAKE_CXX_COMPILER=g++-7 \
102+
-DMMDEPLOY_BUILD_SDK=ON \
103+
-DMMDEPLOY_BUILD_EXAMPLES=ON \
104+
-DMMDEPLOY_BUILD_SDK_PYTHON_API=ON \
105+
-DMMDEPLOY_TARGET_DEVICES="cuda;cpu" \
106+
-DMMDEPLOY_TARGET_BACKENDS=trt \
107+
-Dpplcv_DIR=${PPLCV_DIR}/cuda-build/install/lib/cmake/ppl \
108+
-DTENSORRT_DIR=${TENSORRT_DIR} \
109+
-DCUDNN_DIR=${CUDNN_DIR}
110+
111+
make -j$(nproc) && make install
112+
```
113+
114+
以TensorRT的推理的SDK的编译为例,需要注意的地方就是这几个主目录,另外是`-DCMAKE_CXX_COMPILER=g++-7 \`这个参数里面的7需要根据你自己的版本进行修改,比如我是9。
115+
如果出现什么找不到库之类的情况,那么应该就是你的哪个环境变量掉了。你可以使用echo命令来看它到底指向哪里或者并不存在,例如
116+
117+
```bash
118+
echo ${PPLCV_DIR}
119+
```
120+
121+
应该返回该变量的路径。
122+
123+
也就是说其实如果你没有设置这些环境变量但是你记得这些库的路径的话,这几个编译选项就直接传入你的库路径也是一样的,使用设置环境变量的方式是为了简化流程与降低环境的安装难度,但是如果你觉得这样更加麻烦的话当然就不需要这么做了。
124+
125+
### 结束
126+
127+
如果出现其他问题欢迎留言讨论。

docs/blog/posts/2024-01-25.md

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
---
2+
draft: false
3+
date: 2024-01-25
4+
authors:
5+
- ZhaoCake
6+
categories:
7+
- 环境管理
8+
---
9+
10+
# 误操作导致.zshrc文件清空的抢救措施||注意重定义操作符的用法||shell的配置文件坏掉
11+
12+
## 序言
13+
14+
==进来提醒第一件事:以后记得定时备份!定时备份!定时备份!==
15+
16+
因为一个误操作,我把自己的`.zshrc`搞坏了。
17+
18+
## 误操作介绍
19+
20+
先介绍一下我是怎么把配置文件搞坏的。我是通过如下命令导致的,也就是我的上一篇文章,关于riscv的gnu工具链安装的时候,将bin目录写入环境变量少了一个<号
21+
22+
<!-- more -->
23+
24+
**正确的:**
25+
26+
```bash
27+
echo “export PATH=/opt/riscv/bin:$PATH>> ~/.bashrc
28+
```
29+
30+
**错误的:**
31+
32+
```bash
33+
echo “export PATH=/opt/riscv/bin:$PATH> ~/.bashrc
34+
```
35+
36+
`>>`是重定向操作符,可以追加写而不会覆盖原文件,我由于少了一个`>`,酿成了大错。
37+
38+
## 抢救过程
39+
40+
当然,如果你的.zshrc文件真的已经寄了,并且像我一样没有备份,那么应该是做不到完全抢救回来的,能救多少救多少吧
41+
42+
### 环境介绍
43+
44+
我是zsh,并且使用了oh-my-zsh作为配置zsh的工具——oh-my-zsh对于抢救我的环境做出卓越贡献!
45+
46+
此时我运行了上面的错误命令,并且毫无察觉地运行了`source ~/.zshrc`,出现了错误,并且出现在第一行!我知道,糟了!
47+
48+
### 开始抢救
49+
50+
#### 存储当前环境变量
51+
52+
如我刚才所说,source刷新环境变量的命令报错了,刷新环境变量失败,虽然我如果新打开终端那么我这个终端必然已经没有办法使用了,但是对于我现有的终端来说,环境变量依然建在,我们可以通过以下命令存储当前环境中苟延残喘的环境变量和其他配置信息:
53+
54+
```bash
55+
set > ~/.zshrc.envvars # 环境变量
56+
alias > ~/.zshrc.aliases # 别名
57+
functions > ~/.zshrc.functions # 函数方法
58+
```
59+
60+
环境变量对于之后的修复还是挺有用的,另外两个如果你没有什么特殊的设置就可以直接不做了。
61+
如果你对于.zshrc的组成足够了解,那么现在你就可以开始根据这些变量重新写一份了(不建议)!
62+
63+
#### 复制一份新的.zshrc
64+
>
65+
>补充内容:我在之后查资料的过程中了解到可以使用`print -l ${(ok)env} > ~/.zshrc.envbackup
66+
`这个命令存储当前环境变量,不知道和上面的那种方式有什么不同。上面那种存储环境变量的方式真的是大海捞针。
67+
>然后在完成了下面的步骤之后,可以通过`cat ~/.zshrc.envbackup >> ~/.zshrc
68+
`命令写入下面生成的新的.zshrc文件。但是我对于这部分内容没有进行尝试,掉了的环境变量是我手动添加的。
69+
70+
在oh-my-zsh的项目文件夹中,具有一份.zshrc文件模板,现在我们复制这个模板
71+
72+
```bash
73+
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
74+
```
75+
76+
然后再更新环境变量就可以了
77+
78+
```bash
79+
source ~/.zshrc
80+
```
81+
82+
然后你就可以重新开始导入环境变量了
83+
84+
PS:能用就不错了

docs/blog/posts/2024-01-27.md

Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
---
2+
draft: false
3+
date: 2024-01-27
4+
authors:
5+
- ZhaoCake
6+
categories:
7+
- 资源安利
8+
---
9+
10+
# 文献翻译 || Ubuntu安装zotero文献管理软件,提高文献阅读效率
11+
12+
## 前言
13+
14+
虽然在win下有很多文献管理软件和好用的文献翻译软件,但是如果平常有使用Ubuntu进行开发的需求,实际上很不愿意为了好好看文献专门切到Windows系统,所以在Ubuntu或者其他Linux发行版上安装文献管理软件还是很有必要的。
15+
16+
本文安装的文献管理软件是zotero,这是一款开源的文献管理软件,[deb系仓库链接](https://github.com/retorquere/zotero-deb)
17+
18+
<!-- more -->
19+
20+
## 安装方式选择
21+
22+
如果直接搜索安装方式,那么大部分安装方式都会是按照仓库里的要求添加软件源并安装。但是如果并不渴求最新版的话,没有必要一定从正在更新的仓库里去安装。从方便省事的角度考虑,先在现有软件源里搜索,没有再去添加源才是合适的做法。
23+
24+
### apt方式
25+
26+
尝试
27+
28+
```bash
29+
sudo aptitude install zotero
30+
```
31+
32+
出现以下返回
33+
34+
```bash
35+
[sudo] zhaokace 的密码:
36+
Couldn't find any package whose name is "zotero", but there are 1 packages which contain "zotero" in their name:
37+
unity-scope-zotero
38+
无法应用某些操作,中止
39+
```
40+
41+
可知实际上在Ubuntu现有源的apt包管理索引中是有这个软件的,可以安装`unity-scope-zotero`。
42+
43+
### snap方式
44+
45+
然后再试试snap软件包中有没有
46+
47+
```bash
48+
snap search zotero
49+
```
50+
51+
返回以下信息
52+
53+
```bash
54+
名称 版本 发布者 注记 摘要
55+
zotero-snap 6.0.27 extraymond - Zotero helps you collect, organize, cite, and share research.
56+
qnotero 2.3.1 ealbiter - Standalone sidekick to Zotero reference manager.
57+
zotviewer 2.2.1 fvalle - Zotero Visualizer
58+
```
59+
60+
故知是存在的,并且是6.0.27版本,但是我们并不知道snap上的软件到底有没有按时更新,这个版本是否能够满足我们的需要。
61+
使用命令
62+
63+
```bash
64+
snap info zotero-snap
65+
```
66+
67+
返回以下信息
68+
69+
```bash
70+
name: zotero-snap
71+
summary: Zotero helps you collect, organize, cite, and share research.
72+
publisher: extraymond
73+
store-url: https://snapcraft.io/zotero-snap
74+
contact: https://github.com/extraymond/zotero-snap
75+
license: AGPL-3.0
76+
description: |
77+
Zotero is a free, easy-to-use tool to help you collect, organize, cite, and
78+
share research.
79+
snap-id: atdqTPsFer1lIGP6OI4LXOzTLA0ZiOhK
80+
channels:
81+
latest/stable: 6.0.27 2023-09-17 (65) 79MB -
82+
latest/candidate: 6.0.27 2023-09-17 (65) 79MB -
83+
latest/beta: beta 2023-09-17 (67) 117MB -
84+
latest/edge: 6.0.27 2023-10-05 (69) 79MB -
85+
```
86+
87+
故知更新情况还是比较新的,可以比较放心地使用。
88+
89+
最终选择snap方式安装,这种安装方式更加省心,安装和卸载都不容易伤到其他部分。
90+
91+
```bash
92+
snap install zotero-snap
93+
```
94+
95+
![请添加图片描述](../../assert/2864050b72b9d46a9b6be7971b8295c5.png)安装成功。
96+
97+
## zotero的简单使用
98+
99+
### 文献导入
100+
101+
除了左上角标准的文献导入方式,也可以直接拖拽pdf格式文件导入,软件会自动搜索项目名称等信息。
102+
![在这里插入图片描述](../../assert/f37d4e2ad8e0a6478fb7d403e7f9adf5.png)
103+
104+
### 中文翻译插件
105+
106+
#### 下载并安装
107+
108+
这才是我要装文献管理软件的主要原因啊!浏览器翻译插件似乎只对Html页面有效,对于PDF格式文件则不起作用,英语及格的我只能装翻译插件了。
109+
110+
[插件开发者的文档](https://zotero.yuque.com/staff-gkhviy/pdf-trans/bwxwxh)
111+
112+
![在这里插入图片描述](../../assert/7f6ffb4490859e874cc691a4a0c60b4f.png)
113+
注意作者的提醒嗷。另外,我按照上面snap安装方式安装的是zotero6的版本,所以下载插件时应当下载稳定版本而不是预发布版本。故下载1.0.23版本哦。
114+
115+
#### 使用体验
116+
117+
![在这里插入图片描述](../../assert/961aa0a197dbebe785734f77ec6c92f2.png)我的评价是可以!

0 commit comments

Comments
 (0)