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天前
|
缓存 监控 测试技术
Python中的装饰器:功能扩展与代码复用的利器###
本文深入探讨了Python中装饰器的概念、实现机制及其在实际开发中的应用价值。通过生动的实例和详尽的解释,文章展示了装饰器如何增强函数功能、提升代码可读性和维护性,并鼓励读者在项目中灵活运用这一强大的语言特性。 ###
|
6天前
|
缓存 开发者 Python
探索Python中的装饰器:简化代码,增强功能
【10月更文挑战第35天】装饰器在Python中是一种强大的工具,它允许开发者在不修改原有函数代码的情况下增加额外的功能。本文旨在通过简明的语言和实际的编码示例,带领读者理解装饰器的概念、用法及其在实际编程场景中的应用,从而提升代码的可读性和复用性。
|
2天前
|
Python
探索Python中的装饰器:简化代码,提升效率
【10月更文挑战第39天】在编程的世界中,我们总是在寻找使代码更简洁、更高效的方法。Python的装饰器提供了一种强大的工具,能够让我们做到这一点。本文将深入探讨装饰器的基本概念,展示如何通过它们来增强函数的功能,同时保持代码的整洁性。我们将从基础开始,逐步深入到装饰器的高级用法,让你了解如何利用这一特性来优化你的Python代码。准备好让你的代码变得更加优雅和强大了吗?让我们开始吧!
7 1
|
7天前
|
设计模式 缓存 监控
Python中的装饰器:代码的魔法增强剂
在Python编程中,装饰器是一种强大而灵活的工具,它允许程序员在不修改函数或方法源代码的情况下增加额外的功能。本文将探讨装饰器的定义、工作原理以及如何通过自定义和标准库中的装饰器来优化代码结构和提高开发效率。通过实例演示,我们将深入了解装饰器的应用,包括日志记录、性能测量、事务处理等常见场景。此外,我们还将讨论装饰器的高级用法,如带参数的装饰器和类装饰器,为读者提供全面的装饰器使用指南。
|
2天前
|
存储 缓存 监控
掌握Python装饰器:提升代码复用性与可读性的利器
在本文中,我们将深入探讨Python装饰器的概念、工作原理以及如何有效地应用它们来增强代码的可读性和复用性。不同于传统的函数调用,装饰器提供了一种优雅的方式来修改或扩展函数的行为,而无需直接修改原始函数代码。通过实际示例和应用场景分析,本文旨在帮助读者理解装饰器的实用性,并鼓励在日常编程实践中灵活运用这一强大特性。
|
7天前
|
存储 算法 搜索推荐
Python高手必备!揭秘图(Graph)的N种风骚表示法,让你的代码瞬间高大上
在Python中,图作为重要的数据结构,广泛应用于社交网络分析、路径查找等领域。本文介绍四种图的表示方法:邻接矩阵、邻接表、边列表和邻接集。每种方法都有其特点和适用场景,掌握它们能提升代码效率和可读性,让你在项目中脱颖而出。
18 5
|
5天前
|
机器学习/深度学习 数据采集 人工智能
探索机器学习:从理论到Python代码实践
【10月更文挑战第36天】本文将深入浅出地介绍机器学习的基本概念、主要算法及其在Python中的实现。我们将通过实际案例,展示如何使用scikit-learn库进行数据预处理、模型选择和参数调优。无论你是初学者还是有一定基础的开发者,都能从中获得启发和实践指导。
11 2
|
7天前
|
数据库 Python
异步编程不再难!Python asyncio库实战,让你的代码流畅如丝!
在编程中,随着应用复杂度的提升,对并发和异步处理的需求日益增长。Python的asyncio库通过async和await关键字,简化了异步编程,使其变得流畅高效。本文将通过实战示例,介绍异步编程的基本概念、如何使用asyncio编写异步代码以及处理多个异步任务的方法,帮助你掌握异步编程技巧,提高代码性能。
20 4
|
8天前
|
缓存 开发者 Python
探索Python中的装饰器:简化和增强你的代码
【10月更文挑战第32天】 在编程的世界中,简洁和效率是永恒的追求。Python提供了一种强大工具——装饰器,它允许我们以声明式的方式修改函数的行为。本文将深入探讨装饰器的概念、用法及其在实际应用中的优势。通过实际代码示例,我们不仅理解装饰器的工作方式,还能学会如何自定义装饰器来满足特定需求。无论你是初学者还是有经验的开发者,这篇文章都将为你揭示装饰器的神秘面纱,并展示如何利用它们简化和增强你的代码库。
|
7天前
|
API 数据处理 Python
探秘Python并发新世界:asyncio库,让你的代码并发更优雅!
在Python编程中,随着网络应用和数据处理需求的增长,并发编程变得愈发重要。asyncio库作为Python 3.4及以上版本的标准库,以其简洁的API和强大的异步编程能力,成为提升性能和优化资源利用的关键工具。本文介绍了asyncio的基本概念、异步函数的定义与使用、并发控制和资源管理等核心功能,通过具体示例展示了如何高效地编写并发代码。
16 2