个人配置环境和跑代码的一些坑

批量修改文件名:用renamer.
批量修改文本:别用python折腾,什么replace,sub正则替换,直接用notpad++,批量替换,批量替换的时候学一学正则表达式会更方便
(windows和linux以及mac的回车表达不一样,所以编辑文本的时候注意格式,用notepad替换回车时用/n怎么都试不出来,最后换成/r就成了)
批量修改文本的时候如果觉得功能还不够,比如你想给每一行的文本中的特定内容排序,那就用excel表打开TXT,导入后直接排序然后导出为TXT文档就OK了。

24.ubantu上生成的TXT文件window上用readline函数读取不出来,只能在ubantu上操作方便。

23.网上找的代码,运行的时候最好用命令行运行,直接在pycharm上面run的话,可能很多参数没有导入导致运行失败。

22.自动导入自己定义的库的时候,
第一,首先选择的时不要选择到其他pip的同名的包,导致函数功能不对。
第二,from import的时候from的包明明定义了但是找不到,两个办法,一是右键把文件夹设置为source,第二是可能没有写init.py,需要重新添加。

补充:Python调用自定义模块的3中方式
(1)主程序与模块程序在同一目录下:
如下面程序结构:
– src
|-- mod1.py
|-- test1.py
若在程序test1.py中导入模块mod1, 则直接使用import mod1或from mod1 import *
(2)主程序所在目录是模块所在目录的父(或祖辈)目录 如下面程序结构:
-- src |-- mod1.py |-- mod2 |– mod2.py
-- test1.py 若在程序test1.py中导入模块mod2, 需要在mod2文件夹中建立空文件__init__.py文件(也可以在该文件中自定义输出模块接口); 然后使用from mod2.mod2 import *或import mod2.mod2 (3)主程序导入上层目录中模块或其他目录(平级)下的模块 如下面程序结构:– src
|-- mod1.py
|-- mod2
| -- mod2.py |-- sub |– test2.py
`-- test1.py
若在程序test2.py中导入模块mod1和mod2。首先需要在mod2下建立__init__.py文件(同(2)),src下不必建立该文件。然后调用方式如下:
下面程序执行方式均在程序文件所在目录下执行,如test2.py是在cd sub;之后执行python test2.py 而test1.py是在cd src;之后执行python test1.py; 不保证在src目录下执行python sub/test2.py成功。
import sys
sys.path.append("…")
import mod1
import mod2.mod2
原文链接:https://blog.csdn.net/ZeropointS/article/details/88353300

21.远程使用GPU时部分库是加载不到的(比如说QT的xcb),以及远程调试时的映射文件夹和解释器不对可能也导致找不到很多model,贼坑。

#########################################################

1.安装anancond(最新版本就行)后建立新环境的时候,conda create -name *** python=3.*
2.pip install tensorflow-gpu==1.8 -i https://pypi.tuna.tsinghua.edu.cn/simple --default-timeout=1000
下载的包都在新环境下
记得加python版本号创建出来的东西才都会在新环境下,
打开新环境记得用conda,别用source(猜测)

2.安装新环境后安装TF2.3只需3条代码太方便了!!!!!!!!!!!!!!1
在这里插入图片描述

3.找不到文件夹可能是需要先运行相同文件夹下的其他代码文件(原因未知)

4.但两个文件是在同一文件夹中的,出现导入失败的错误:为了解决该问题,右击文件夹,选择Mark Directory as 中的sources roo
5.是因为版本tf2.3和keras2.4.*不适配,改为Tf2.2和keras2.3.0适配module
有时候安装后tf2中的python版本虽然安装的时候指定了3.7,可能有时也会出现是2.7,而且在tf2环境里还改不了版本,这里可以到pycharm里面的interpreter里直接升级并用alias python=pyc保存,而且切记设置编译器的时候要选到anaconda的python3.7编译器,不然TF2.X版本和python2.7是不兼容的
6.‘tensorflow.python.keras.utils.generic_utils’ has no attribute ‘populate_dict_with_module_objects’
7.Windows下的程序放在Linux下发现找不到文件的错误,把//改为\就好啦

7.ValueError:意外地找到类型为“<class”NoneType“>`”的实例。应为符号张量实例。
定义的函数未return一个张量导致网络断开找不到张量。

8.fit() got an unexpected keyword argument ‘nb_epoch’:是因为找不到对应参数,导入包的版本原因造成,Ctrl点击函数查看相应参数应该怎么写(如epoch改为epochs),或者换一个包版本

9…k识别不到这个包文件时Keras的版本不对,像tensorflowGPU1.14就适配Keras2.2.5,使用2.4.3时就不行

10.有时莫名其妙少了某个包文件,明明之前还无bug,把那个包文件卸载重装就行了,或者过一会他自己会好,或者重启PYcharm试试。
11.Tf1.0和2.0使用GPU的代码不一样,1.0是mul_model函数,2.0是策略函数,再指定GPU时,记得用英文标点否则识别不到。

11.(tensorflow时不时用不了,重新安装一词由好了)

12.ERROR: Cannot uninstall ‘wrapt’. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

办法1:输入 pip install -U --ignore-installed wrapt enum34 simplejson netaddr

13.运行代码不报错,直接显示错误,在某某路径下找不到文件,可能是程序运行前未配置运行环境(光是在setting里面设置环境是不够的,程序运行之前也要单个设置)

14.有时候类似标黄的找不到参数的,可以solve它,看看是否是真的某一块的参数名称写错了或者未定义。
.compat.v1是匹配版本用的

15.跑代码的时候发现用了GPU还是很慢,跑的时侯终端看了GPU使用情况发现并没有用,报错Could not dlopen library 'libcudart.so.10.0
排查发现CUDA有一步安装不符合,后来找到解决方法(重新安装了一次,可能是之前安装时环境变量未写入)
CUDA成功后还是用不了,报错Could not dlopen library ‘libcudart.so.10.0’,原来不是CUDA安装失败的问题,后来发现tensorflow1.14版本和CUDA的8.0是不匹配的,于是吧TF降为了1.2.0,发现还是不行ImportError: libcudnn.so.5: cannot open shared object file: No such file or directory,cudnn找不到文件夹,版本对的,文件夹里明明也有,应该是要重装,因为之前CUDA安装不符合时也是找不到文件夹。重装cudnn5.1版本,成功!

16.2.0版本对1.0版本更新
tf.layers -> tf.keras.layers
tf.losses -> tf.keras.losses
tf.metrics -> tf.keras.metrics
tf.metrics.mean_iou -> tf.keras.metrics.MeanIoU
keras版本不对导致无 keras.losses.(bce) 这个用法。理应该该版本就行,发现试了几个版本都不行,直接去掉.losses,直接用keras.(bce)函数
tensorflow.keras.layers import Input报错,去掉tensorflow,直接keras.layers import Input,因为已经使用了from keras import backend as keras,直接用keras就行
总结:2.0的代码就安装2.0的环境更方便,可是ubantu版本不够,那就先用1.0玩吧
升级ubantu重装1.0和2.0两个,这样两种类型代码都能用,但是没必要,以后还是要多用2.0,把1.0的代码看懂移植过来,而不是想像现在移植2.0到1.0。

17.Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)
因为之前为了解决不能debug的问题,下载了PyQt5(然而并没有用,现在还未解决 ps:试了所有方法都不管用,最后升级pycharm版本或者重装pycharm就解决了。。。,可以debug之后发现还是有那个报错,可能一直就可以debug,只有断点在主函数那才能debug出来,之前的断电都没有放在主函数上。。。),网上说应该是包冲突的原因,一看list果然有两个,于是卸载了5版本。报错解决

18.metric,loss函数都可以在安装的文件夹下找到
二分类:binary loss sigmiod accuracy
多分类:cateloge loss softmax accuracy
metric不知道why官方给的unet多分类也用的accuracy不应该用categorical_accuracy吗,看看具体计算就知道了,应该是可以用的
除了官方给的loss和metric,可以自己定义,像二分类就有dice,focal等等,多分类的loss,可能比较难,官方的categlorial loss就挺好用的,就有人用Miou定义metric
关于二,多分类问题sigmiod和softmax的使用要理顺还没搞懂,详见群截图

19.Tensorflow找不到attribute ‘log’ 函数,原因应该是版本不兼容,版本替换或者找到代替函数tf.log改为tf.math.log,一个函数不止一种写法

20.name tf.keras.backend.set_session is deprecated. Please use tf.compat.v1.keras.backend.set_session instead.
Your CPU supports instructions that this TensorFlow binary was not compiled to use: SSE4.1 SSE4.2 AVX AVX2 FMA
tensorflow:There are non-GPU devices in tf.distribute.Strategy, not using nccl allreduce.
训练最好的结果就是loss下降,训练集和验证集的准确率同步上升,上升的越高说明模型的效果越好,否则就是欠拟合或者过拟合。在这里插入图片描述有时预测出来的图片可能格式和像素值都和需求不一样,只要在预测代码里面改就可以了
自己的图片miou都是基于unit8的,所以用自己的预测单张标准时记得转换格式和像素
我的NAIC训练时用的是rgb,标签用的unit16(看需求,差不多)
由于我的cheng的image是rgb,标签是unit8,所以要转换一下;且因为是二分类0.255所以输出像素要改一下

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值