〇、建议使用英文用户名

已知:使用paddleocr会有模型找不到,需要修改源码(每一次安装都要改)

时刻牢记自己的cuda版本

通过nvidia-smi查看的是最高支持版本,不是本地版本

使用nvcc -v是本地版本

已知:

  1. ImportError: libcudart.so.10.2: cannot open shared object file: No such file or directory
    1. 是pip的依赖版本不支持cuda10.2,此时需要uninstall依赖并安装适配版本的依赖(paddlepaddle-gpu的问题,需要下载xxx.post102)
    2. pip install paddlepaddle-gpu==2.4.2.post117 -f [https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html](https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html)
  2. torch也有相关问题
    1. 部分torch版本需要不同的python版本,不同的cuda版本,只要有问题就报错。
    2. 详见:Previous PyTorch Versions

安装cuda和cudnn建议跟教程走

win本地安装跟教程,conda安装找个满足项目切的conda能装的即可。

安装环境的坑

中文环境

不确定paddlepaddle是否需要改

需要

paddleocr需要改,不然报错

可以修改使用模型的位置。

.paddleocr目录复制出来然后改下地址

补充:

  1. win项目如果中文用户名都要改。
  2. 修改paddleocr.py的BASEDIR。
  3. 可以通过设置环境变量修改位置,具体还需要整理

踩坑情况 - 可跳

untimeError: (NotFound) Cannot open file C:\Users\尔玉/.paddleocr/whl\det\ch\ch_PP-OCRv4_det_infer/inference.pdmodel, please confirm whether the file is normal.
[Hint: Expected static_cast(fin.is_open()) == true, but received static_cast(fin.is_open()):0 != true:1.] (at ..\paddle\fluid\inference\api\analysis_predictor.cc:2364)

paddleNLP可能要改,有下面报错

1
2
3
4
5
6
7
8
9
10
11
[2024-09-14 14:57:32,793] [    INFO] - Found C:\Users\尔玉\.paddlenlp\models\Qwen/Qwen2-0.5B\tokenizer_config.json
Traceback (most recent call last):
File "C:\Users\尔玉\AppData\Roaming\Python\Python39\site-packages\IPython\core\interactiveshell.py", line 3550, in run_code
  exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-3-b5c0d7d3aef5>", line 1, in <module>
  tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen2-0.5B")
File "F:\AI\anaconda3\envs\PaddleNLPtrain\lib\site-packages\paddlenlp\transformers\auto\tokenizer.py", line 352, in from_pretrained
  tokenizer_class = cls._get_tokenizer_class_from_config(
File "F:\AI\anaconda3\envs\PaddleNLPtrain\lib\site-packages\paddlenlp\transformers\auto\tokenizer.py", line 186, in _get_tokenizer_class_from_config
  class_name = cls._name_mapping[init_class]
KeyError: 'Qwen2Tokenizer'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
0918 11:09:39.241349 159404 interpretercore_util.cc:680] save_combine raises an exception class std::runtime_error, C:\Users\尔玉\.paddlenlp mkdir failed!
Traceback (most recent call last):
File "F:\workspace\0.BaseStack\PaddleNLPtrain\PaddleNLPtrain\fastapi.py", line 5, in <module>
  ie = Taskflow('information_extraction', schema=schema)
File "F:\workspace\0.BaseStack\PaddleNLPtrain\PaddleNLPtrain\paddlenlp\taskflow\taskflow.py", line 385, in __init__
  self.task_instance = task_class(model=self.model,
File "F:\workspace\0.BaseStack\PaddleNLPtrain\PaddleNLPtrain\paddlenlp\taskflow\information_extraction.py", line 296, in __init__
  self._get_inference_model()
File "F:\workspace\0.BaseStack\PaddleNLPtrain\PaddleNLPtrain\paddlenlp\taskflow\task.py", line 228, in _get_inference_model
  self._convert_dygraph_to_static()
File "F:\workspace\0.BaseStack\PaddleNLPtrain\PaddleNLPtrain\paddlenlp\taskflow\task.py", line 249, in _convert_dygraph_to_static
  paddle.jit.save(static_model, save_path)
File "C:\Users\尔玉\AppData\Roaming\Python\Python39\site-packages\decorator.py", line 232, in fun
  return caller(func, *(extras + args), **kw)
File "F:\AI\anaconda3\envs\PaddleNLPtrain\lib\site-packages\paddle\fluid\wrapped_decorator.py", line 26, in __impl__
  return wrapped_func(*args, **kwargs)
File "F:\AI\anaconda3\envs\PaddleNLPtrain\lib\site-packages\paddle\fluid\dygraph\jit.py", line 649, in wrapper
  func(layer, path, input_spec, **configs)
File "C:\Users\尔玉\AppData\Roaming\Python\Python39\site-packages\decorator.py", line 232, in fun
  return caller(func, *(extras + args), **kw)
File "F:\AI\anaconda3\envs\PaddleNLPtrain\lib\site-packages\paddle\fluid\wrapped_decorator.py", line 26, in __impl__
  return wrapped_func(*args, **kwargs)
File "F:\AI\anaconda3\envs\PaddleNLPtrain\lib\site-packages\paddle\fluid\dygraph\base.py", line 67, in __impl__
  return func(*args, **kwargs)
File "F:\AI\anaconda3\envs\PaddleNLPtrain\lib\site-packages\paddle\fluid\dygraph\jit.py", line 1057, in save
  save_inference_model(
File "C:\Users\尔玉\AppData\Roaming\Python\Python39\site-packages\decorator.py", line 232, in fun
  return caller(func, *(extras + args), **kw)
File "F:\AI\anaconda3\envs\PaddleNLPtrain\lib\site-packages\paddle\fluid\wrapped_decorator.py", line 26, in __impl__
  return wrapped_func(*args, **kwargs)
File "F:\AI\anaconda3\envs\PaddleNLPtrain\lib\site-packages\paddle\fluid\framework.py", line 558, in __impl__
  return func(*args, **kwargs)
File "F:\AI\anaconda3\envs\PaddleNLPtrain\lib\site-packages\paddle\fluid\io.py", line 1431, in save_inference_model
  save_persistables(executor, save_dirname, main_program, params_filename)
File "C:\Users\尔玉\AppData\Roaming\Python\Python39\site-packages\decorator.py", line 232, in fun
  return caller(func, *(extras + args), **kw)
File "F:\AI\anaconda3\envs\PaddleNLPtrain\lib\site-packages\paddle\fluid\wrapped_decorator.py", line 26, in __impl__
  return wrapped_func(*args, **kwargs)
File "F:\AI\anaconda3\envs\PaddleNLPtrain\lib\site-packages\paddle\fluid\framework.py", line 523, in __impl__
  return func(*args, **kwargs)
File "F:\AI\anaconda3\envs\PaddleNLPtrain\lib\site-packages\paddle\fluid\io.py", line 725, in save_persistables
  return save_vars(executor,
File "C:\Users\尔玉\AppData\Roaming\Python\Python39\site-packages\decorator.py", line 232, in fun
  return caller(func, *(extras + args), **kw)
File "F:\AI\anaconda3\envs\PaddleNLPtrain\lib\site-packages\paddle\fluid\wrapped_decorator.py", line 26, in __impl__
  return wrapped_func(*args, **kwargs)
File "F:\AI\anaconda3\envs\PaddleNLPtrain\lib\site-packages\paddle\fluid\framework.py", line 523, in __impl__
  return func(*args, **kwargs)
File "F:\AI\anaconda3\envs\PaddleNLPtrain\lib\site-packages\paddle\fluid\io.py", line 367, in save_vars
  return save_vars(executor,
File "C:\Users\尔玉\AppData\Roaming\Python\Python39\site-packages\decorator.py", line 232, in fun
  return caller(func, *(extras + args), **kw)
File "F:\AI\anaconda3\envs\PaddleNLPtrain\lib\site-packages\paddle\fluid\wrapped_decorator.py", line 26, in __impl__
  return wrapped_func(*args, **kwargs)
File "F:\AI\anaconda3\envs\PaddleNLPtrain\lib\site-packages\paddle\fluid\framework.py", line 523, in __impl__
  return func(*args, **kwargs)
File "F:\AI\anaconda3\envs\PaddleNLPtrain\lib\site-packages\paddle\fluid\io.py", line 425, in save_vars
  executor.run(save_program)
File "F:\AI\anaconda3\envs\PaddleNLPtrain\lib\site-packages\paddle\fluid\executor.py", line 1463, in run
  six.reraise(*sys.exc_info())
File "F:\AI\anaconda3\envs\PaddleNLPtrain\lib\site-packages\six.py", line 719, in reraise
  raise value
File "F:\AI\anaconda3\envs\PaddleNLPtrain\lib\site-packages\paddle\fluid\executor.py", line 1450, in run
  res = self._run_impl(program=program,
File "F:\AI\anaconda3\envs\PaddleNLPtrain\lib\site-packages\paddle\fluid\executor.py", line 1661, in _run_impl
  return new_exe.run(scope, list(feed.keys()), fetch_list,
File "F:\AI\anaconda3\envs\PaddleNLPtrain\lib\site-packages\paddle\fluid\executor.py", line 631, in run
  tensors = self._new_exe.run(scope, feed_names,
RuntimeError: C:\Users\尔玉\.paddlenlp mkdir failed!

进程已结束,退出代码1

我这里没有直接改地址,因为它那里地址挺多的。我直接修改_get_user_home()函数的返回值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 位置:build/lib/paddlenlp/utils/env.py
# 位置:paddlenlp/utils/env.py 引用路径
# 位置:F:\AI\anaconda3\envs\PaddleNLPtrain\Lib\site-packages\paddlenlp\utils\env.py       但无用
# _get_user_home()
def _get_user_home():
   #todo 修改此处
  return "F:\\workspace\\0.BaseStack\\PaddleNLPtrain"
   # return "C:\\Users"   # PermissionError: [Errno 13] Permission denied: 'C:\\Users\\.paddlenlp\\models\\Qwen/Qwen2-0.5B\\config.json_tmp'
   # return os.path.expanduser("~")

# 结果
# 原:USER_HOME: C:\Users\尔玉
# 现:USER_HOME: C:\Users

# 原本至少需要设置的位置
USER_HOME = _get_user_home()
print("USER_HOME:", USER_HOME)
PPNLP_HOME = _get_ppnlp_home()
print("PPNLP_HOME:", PPNLP_HOME)
MODEL_HOME = _get_sub_home("models")
print("MODEL_HOME:", MODEL_HOME)
HF_CACHE_HOME = os.environ.get("HUGGINGFACE_HUB_CACHE", MODEL_HOME)
print("HF_CACHE_HOME:", HF_CACHE_HOME)
DATA_HOME = _get_sub_home("datasets")
print("DATA_HOME:", DATA_HOME)
PACKAGE_HOME = _get_sub_home("packages")
print("PACKAGE_HOME:", PACKAGE_HOME)