Python路径、环境变量、import使用总结

本文探讨了Python环境中如何通过调整sys.path来正确导入不同目录层级下的模块,并详细解析了PyTorch中model.train()与model.eval()的区别及应用场景。此外,还介绍了pickle模块的序列化操作及TensorBoardX的日志记录方法。
PyTorch 2.5

PyTorch 2.5

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

查看环境变量

文件逻辑

A
----a1.py
----a2.py
B
----b1.py
----b2.py
c1.py

我们执行python A/a1.py时,且想要调用c1。默认sys.path中包含的是’A/’,因此对于和py处出一个文件夹的文件可以直接进行import,对于c1,环境变量sys.path中是没有的,我们此时的工作目录(os.getcwd)是’/’,因此将当前工作目录路径加入到环境变量就可以正常调用c1了。即sys.path.append(’.’)。

import sys
print(sys.path)
print(os.path.abspath(os.path.join(os.getcwd(), '../'))) 
输出父级工作目录

print(os.path.abspath(os.path.join(os.getcwd(), '../'))) 
model.train() 和model.eval()

a) model.eval(),不启用 BatchNormalization 和 Dropout。此时pytorch会自动把BN和DropOut固定住,不会取平均,而是用训练好的值。不然的话,一旦test的batch_size过小,很容易就会因BN层导致模型performance损失较大;

b) model.train() :启用 BatchNormalization 和 Dropout。 在模型测试阶段使用model.train() 让model变成训练模式,此时 dropout和batch normalization的操作在训练q起到防止网络过拟合的问题。

因此,在使用PyTorch进行训练和测试时一定要记得把实例化的model指定train/eval。

pickle

在python中使用,python中几乎所有的数据类型(列表、字典,集合,类等)都可以用pickle来序列化。

# pickle.dump(obj, file, protocol) 序列化对象obj,将其写入到文件对象file中。
# 参数protocol是序列化模式,取值为1、2、3,分别代表文本的形式、二进制的形式。
# 将对象序列化到文件中:
f = open('tp.pkl', 'w')
pickle.dump(a, f, 0) #将a序列化到f中
f.close()
# 将对象从文件中加载:
f = open('to.pkl', 'r')
b = pickle.load(f) # 将对象从文件中加载出来,放到b上
f.close()
TensorboardX SummaryWriter
writer = tensorboardX.SummaryWriter('log')
writer.add_scalar('loss/train', accloss, epoch) # 参数分别为标量图像名称、图像y轴数据、图像x轴数据
writer.add_scalar('loss/valid', valloss, epoch) 
# 添加多个标量到summary中,多个标量需要使用键值对的形式输入,最后会在同一张图上展示
writer.add_scalars()
# 代码结束后会在当前工作目录下自动生成一个runs目录。
linux du命令(disk usage)

查看当前目录以及下一级文件磁盘使用情况

du -h --max-depth=1
linux ls命令(list)
ls -sh filename

其中-s表示查看文件的size
-h表示以human readable的格式显示

tensor.detach()

用于切断网络一些分支的反向传播。

您可能感兴趣的与本文相关的镜像

PyTorch 2.5

PyTorch 2.5

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

Python中添加环境变量路径有多种方法: - **函数添加**:使用Python代码在程序运行时添加路径。通过`sys.path`查看当前路径,再使用`sys.path.append()`添加指定路径。示例代码如下: ```python import sys print(sys.path) # 查看当前路径 sys.path.append("c:\\") # 添加路径 ``` 这种方法仅在当前Python会话中有效,程序关闭后设置会失效[^1]。 - **修改系统环境变量**:可以修改系统环境变量`PYTHONPATH`,将自定义路径添加到该环境变量中。此方法设置后对所有Python程序都有效,且设置会持久保存。在Windows系统中,若在安装Python时未勾选“Add python to PATH”,可手动将Python添加至环境变量,步骤如下: 1. 找到“此电脑”右键点击属性; 2. 在弹出界面点击“高级系统设置”; 3. 点击“环境变量”按钮; 4. 在系统变量栏目中选中`Path`变量,然后点击“编辑”; 5. 点击“新建”按钮,找到安装的Python路径,复制并粘贴到光标处,点击“确定”按钮; 6. 将使用`pip`所需的`Scripts`文件夹也添加至环境变量。在Python文件夹中找到`Scripts`文件夹,复制其路径,点击“新建”按钮,粘贴路径,点击“确定”; 7. 依次点击弹出窗口的“确定”按钮,关闭页面; 8. 重启`dos`命令行,若显示正常则配置成功[^1][^2]。 - **增加`.pth`文件**:这是较为推荐的方法,创建一个以`.pth`为扩展名的文件,将需要添加的路径逐行写入该文件,然后将此文件放置在Python的`site-packages`目录下,Python会自动读取其中的路径[^1]。 - **Mac下手动更改`sys.path`**:在Mac系统运行`IDLE`后(不管是在终端还是在应用程序中),可手动更改`sys.path`。示例代码如下: ```python import sys sys.path.append('/Users/*****(用户具体名字)/anaconda/lib/python2.7/site-packages') ``` 此方法为一次性操作,每次开启Python都需重新设置[^3]。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值