跑python代码过程中遇到的种种bug

第一行:国际惯例咕咕咕

第二行:不记下错误和解决方法,我就每次都得现搜。我清楚地记得我遇到过这些错,我也清楚地记得我忘记怎么解决了。

第三行:我生平最讨厌配环境。(但还是配好了

第四行:本地能跑服务器跑不起来我再次自闭,跑去配服务器环境了。

以下bug环境相关的都略了,pip conda啥的一阵儿安装:(【upd:本地真好配服务器环境全是bug贴下面了:(】

一、文件读取or路径问题

FileNotFoundError: .\data\eth\hotel\true_pos_.csv not found.

问题:找不到文件路径。

解决方法:找到文件导入部分,将路径改为绝对路径即可

二、逻辑or手残or无脑写错代码问题

RuntimeError: view size is not compatible with input tensor's size and stride (at least one dimension spans across two contiguous subspaces). Use .reshape(...) instead.

问题:tensor中元素地址不连续

解决方法:因为view()需要tensor中的元素地址是连续的,但可能出现tensor不连续的情况,所以先用 .contiguous()将其在内存中变成连续分布。

RuntimeError: Index put requires the source and destination dtypes match, got Long for the destination and Float for the source.

问题:变量类型不匹配

解决方法:找到对应位置,将变量转为float即可。

TypeError: list indices must be integers or slices, not tuple

问题:列表取值存在问题,列表索引取值只能取整数or切片,不能取元组。本质原因是创建列表的时候列表中的元素大小可能不一样,所以在取列的时候可能会找不到对应列

解决方法:利用np.array将数据转换成array即可

三、环境配置问题

ImportError: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /home/xyzheng/anaconda3/envs/pytorch/lib/python3.9/site-packages/scipy/linalg/_matfuncs_sqrtm_triu.cpython-39-x86_64-linux-gnu.so)

问题:缺少所需的GLIBCXX_3.4.26

解决方法:查找有什么GLIBCXX版本后发现确实没有3.4.26,之后找到相关路径,将其复制进自己的路径下。具体方法为这个帖子。问题是帖子中用到了sudo权限,而我没有,于是要来了root密码试图授权,方法为这个帖子,结果文件只读我又不知道咋改文件权限。于是最后:直接从root下复制文件路径,解决了。

RuntimeError: CUDA driver initialization failed, you might not have a CUDA gpu.

问题:配置过11.1了但还是报错,应该是版本不匹配的问题,服务器的cuda和pytorch不匹配,版本过高了,降低下cuda的版本。ps:我好恨我降完版本到8.0后师兄跟我讲他把服务器升级完了:)

ps:未完待续……

pps:如果以上错误有其他解决方式麻烦教给我,谢谢各位老师了!