python代码问题总结(下)

简介: python代码问题总结

17.linux下conda安装opencv?

  • 比较坑的一点conda install opencv,安装成功了,但是import cv2一直失败,查看conda list,确实安装了3.4.1版本,虚拟环境:python=3.6
  • 解决:重新创建虚拟环境,python=3.7,然后conda install opencv即可,默认版本3.4.2
  • 注:原来是python版本导致的,或者3.4.1版本导致的

18.python语法…

…的使用

Numpy 中可以用来选数据
>>> import numpy as np
>>> a = [[1,2,3,4,5,6,7],[8,9,10,11]]
>>> b = np.array(a)
>>> b[1,...]
array(list([8, 9, 10, 11]), dtype=object)
这个看不出什么特殊性来。换一个稍微复杂点的。
>>> d = np.array([[[i + 2*j + 8*k for i in range(3)] for j in range(3)] for k in range(3)])
>>> d
array([[[ 0, 1, 2],
[ 2, 3, 4],
[ 4, 5, 6]],
[[ 8, 9, 10],
[10, 11, 12],
[12, 13, 14]],
[[16, 17, 18],
[18, 19, 20],
[20, 21, 22]]])
>>> d[1,...]
array([[ 8, 9, 10],
[10, 11, 12],
[12, 13, 14]])
>>> d[...,1]
array([[ 1, 3, 5],
[ 9, 11, 13],
[17, 19, 21]])
>>> d[1,...,1]
array([ 9, 11, 13])
>>>

19.visio插入数学公式

  • 1.打开word,插入数学公式
  • 2.复制
  • 3.在visio中右击—选择性黏贴—Microsoft word文档
  • 4.最后还可使用Ctrl+G将框图和公式组合到一起,这样移动时两个一起移动,更方便些。

19.1 将word中编辑好的公式复制到Visio中出现乱码问题?

在Visio(点击 选项 --> 高级 --> 显示 ->勾选禁用增强元文件优化)

20.SharedArray.create 导致 tmpfs 100%

/dev/shm 默认大小为物理内存的一半,如果需要调整大小,可以修改 /etc/fstab

# df -hT
Filesystem              Type      Size  Used Avail Use% Mounted on
devtmpfs                devtmpfs  2.0G     0  2.0G   0% /dev
tmpfs                   tmpfs     2.0G   52K  2.0G   1% /dev/shm
tmpfs                   tmpfs     2.0G  9.0M  2.0G   1% /run
tmpfs                   tmpfs     2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        47G   20G   28G  42% /
/dev/sda1               xfs      1014M  161M  854M  16% /boot
tmpfs                   tmpfs     396M   12K  396M   1% /run/user/42
tmpfs                   tmpfs     396M     0  396M   0% /run/user/0

sudo -i password

vi /etc/fstab

tmpfs                   /dev/shm                tmpfs   defaults,size=2560M        0 0

最后重启即可,然后利用df -lh命令查看

https://blog.csdn.net/ctypyb2002/article/details/107914643

21.pytorch计算flops和paramas

1、安装Thop

pip install thop

2、代码使用

1)直接输出

import thop
from thop import profile
# 定义好的网络模型
input = torch.randn(1, 3, 224, 224)
flops, params = profile(Model,inputs=(input, ))
print('flops: ', flops, 'params: ', params)

这样的直接输出会让数据可比较性很弱,还需要自己转化单位【有点麻烦,不太推荐!】

2)使用thop.clever_format

from thop import clever_format
# 定义好的网络模型
input = torch.randn(1, 3, 224, 224)
flops, params = profile(Model,inputs=(input, ))
flops, params = clever_format([flops, params], "%.3f")  #这个就是与上面的差异哈!!!
print('flops: ', flops, 'params: ', params)

加上这样简单的一句话后,真的输入结果看上去太舒服了。

原文链接:https://blog.csdn.net/qq_37844044/article/details/119644941

22.PyCharm远程运行调试代码

https://zhuanlan.zhihu.com/p/38591832

23.subprocess.CalledProcessError: Command ‘[‘ninja’, ‘-v’]’ returned non-zero exit status 1.

问题:

Traceback (most recent call last):
  File "/.../lib/python3.6/site-packages/torch/utils/cpp_extension.py", line 949, in _build_extension_module
    check=True)
  File "/.../lib/python3.6/subprocess.py", line 438, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['ninja', '-v']' returned non-zero exit status 1.

解决:…/lib/python3.6/site-packages/torch/utils/cpp_extension.py

即:-v 改成 --version

注:vim快速定位:/‘ninja’

24.torch.nn.CrossEntropyLoss()

https://zhuanlan.zhihu.com/p/159477597

25.F.cross_entropy()

https://blog.csdn.net/wuliBob/article/details/104119616

26.pytorch|optimizer与学习率

https://lhyxx.top/2020/02/11/pytorch-optimizer%E4%B8%8E%E5%AD%A6%E4%B9%A0%E7%8E%87/

27.without bells and whistles 深度学习

https://blog.csdn.net/u013249853/article/details/84786730

28.element-wise product = element-wise  multiplication = Hadamard product?

含义:两个矩阵对应位置元素进行乘积

https://www.zhihu.com/question/432693995

29.迁移anaconda虚拟环境到新服务器+解决迁移后pip无法使用

1.迁移anaconda虚拟环境到新服务器

如果你有一个台机A不能联网,另一台机B可以联网,但需要在不能联网的A上运行代码,需要一些库。那么可以在A上离线安装Anaconda,在B上配置上虚拟环境,移动到A上。

  • 安装Ananconda,官网下载安装包,ssh传到A上并安装,同时B也应该安装好,两机anaconda安装包无需一致,但需要同类系统Linux or Win)。
  • 在B上创建虚拟环境py36(取名随意),在虚拟环境中安装需要的库。
  • 前往B的anaconda目录,找到envs文件夹,
  • ,对py36文件夹进行压缩。tar -czvf py36.tar.gz py3将压缩包传输到A,解压,放至anaconda/envs目录下。

2.解决迁移后pip无法使用

这一步完成后,基本上你需要的库都安装在A机上了,但是!如果你又加上了其他的项目,有1,2个库需要安装怎么办呢?

  • 先使用pip download <package_names>,在有网络的机子(B)上下载,库安装包,然后上传到A上。
  • 比如opencvpip download opencv-python,得到文件opencv_python-4.2.0.32-cp36-cp36m-manylinux1_x86_64.whl上传至A。
  • 这时在A上切换虚拟环境,pip install opencv_python-4.2.0.32-cp36-cp36m-manylinux1_x86_64.whl进行安装。
  • 这里会报一个错误-bash: /home/computer_a/anaconda3/envs/torch/bin/pip: /home/computer_b/anaconda3/envs/torch/bin/python: bad interpreter: No such file or directory。这是因为A机的pip路径是拷贝过来的,还是原来B机的python路径,修改即可。
  • 方法:打开/home/computer_a/anaconda3/envs/torch/bin/pip,将第一行路径改为/home/computer_b/anaconda3/envs/torch/bin/python
  • 原文链接:https://blog.csdn.net/weixin_44633882/article/details/105308120

30.pip install 时报错 ERROR: Could not install packages due to an EnvironmentError: [WinError 5] 拒绝访问?

在pip install 后面加上 --user + 需要安装的包名
如:pip install --user imblearn

31.Pycharm退出pytest模式(run pytest in模式)?

1.方法1:

要退出这种模式,

  • 第一步:点击顶部运行键——选择‘Edit configuration’,
  • 第二步:可以看到左侧Python下有两个文件夹,如果进入了test模式,就会有‘Python test’一栏,
  • 第三步:选定Python test,这时点击上面的‘-’号去掉这栏下的文件即可。
  • 然后确定,再次右键代码,就可以执行run模式了

2.方法二

可以进入File-settings-tools-python integrated tools里面修改,选择unittest修改后记得应用一下

参考下图:

参考链接:https://blog.csdn.net/u011318077/article/details/88090830

目录
相关文章
|
2天前
|
C++ 开发者 Python
实现Python日志点击跳转到代码位置的方法
本文介绍了如何在Python日志中实现点击跳转到代码位置的功能,以提升调试效率。通过结合`logging`模块的`findCaller()`方法记录代码位置信息,并使用支持点击跳转的日志查看工具(如VS Code、PyCharm),开发者可以从日志直接点击链接定位到出错代码,加快问题排查。
12 2
|
2天前
|
算法 Java 编译器
优化Python代码性能的实用技巧
提高Python代码性能是每个开发者的关注焦点之一。本文将介绍一些实用的技巧和方法,帮助开发者优化他们的Python代码,提升程序的执行效率和性能。
|
2天前
|
Python
Python代码扫描目录下的文件并获取路径
【5月更文挑战第12天】Python代码扫描目录下的文件并获取路径
18 1
|
2天前
|
数据处理 Python
Python 代码中使用。
Python 代码中使用。 z
11 3
|
2天前
|
测试技术 Python
解密Python中的装饰器:提升代码可读性与灵活性
Python中的装饰器是一种强大的工具,能够在不改变原有函数结构的情况下,为函数添加额外功能。本文将深入探讨装饰器的原理及应用,介绍装饰器的基本语法和常见用法,并结合实例演示如何利用装饰器提升代码的可读性和灵活性,使代码更加简洁、模块化和易于维护。
|
2天前
|
监控 Python
Python中的装饰器:提升代码灵活性和可维护性
在Python编程中,装饰器是一种强大的工具,可以提高代码的灵活性和可维护性。本文将深入探讨装饰器的概念、用法和实际应用,帮助读者更好地理解并运用装饰器来优化自己的Python代码。
|
2天前
|
Python
Python中的装饰器:提升代码可读性与复用性
Python中的装饰器是一种强大的工具,能够提升代码的可读性和复用性。本文将深入探讨装饰器的原理、用法以及在实际项目中的应用,帮助读者更好地理解和利用这一特性,提升代码质量和开发效率。
|
2天前
|
监控 Python
Python中的装饰器:提升代码可读性与可维护性
Python中的装饰器是一种强大的工具,可以在不修改函数源代码的情况下,增加新的功能。本文将介绍装饰器的基本概念,以及如何使用装饰器来提升代码的可读性和可维护性。通过实例演示,读者将了解装饰器在各种场景下的灵活运用,从而更好地理解并应用于实际开发中。
|
2天前
|
缓存 Python
Python中的装饰器:提升代码可读性与灵活性
在Python编程中,装饰器是一种强大的工具,可以通过在函数或方法周围包装额外的功能来提升代码的可读性和灵活性。本文将深入探讨装饰器的概念、用法和实际应用,帮助读者更好地理解并运用这一Python编程的利器。
|
2天前
|
缓存 并行计算 Serverless
优化Python代码性能的5个技巧
在日常Python编程中,代码性能的优化是一个重要的议题。本文介绍了5个实用的技巧,帮助你提高Python代码的执行效率,包括使用适当的数据结构、优化循环结构、利用内置函数、使用生成器表达式以及并行化处理。通过这些技巧,你可以更高效地编写Python代码,提升程序的性能和响应速度。