pytorch撸代码时经常用又经常忘的奇技淫巧--随时更新

本文汇总了PyTorch编程中常见的操作技巧,如代码缩进、numpy与tensor转换、维度操作、环境管理(conda创建、删除、克隆)、GPU使用、包安装等,方便开发者查阅和学习。
摘要由CSDN通过智能技术生成

项目场景:

pytorch撸代码时经常用又经常忘的奇技淫巧,现用现查真的很头大


问题描述1

pycharm中多行代码的左右缩进问题
右缩进:Tab
左缩进: shift+Tab


问题描述2

pytorch中numpy转tensor

import torch
import numpy as np

array = np.array([1,2,3], dtype=np.float32)

# numpy 转 tensor
array_tensor1 = torch.tensor(array )
array_tensor2 = torch.from_numpy(array )


问题描述3

pytorch中tensor转numpy

import torch
import numpy as np
a = torch.ones(5)

# tensor 转 numpy
b = a.detach().numpy()
b[0] = 2
 
print(a)
print(b)

# 输出
tensor([2., 1., 1., 1., 1.])
[2. 1. 1. 1. 1.]


问题描述4

在tensor的第一个维度上增加一个维度

x = x.unsqueeze(0)

将tensor的第一个维度删掉

x = x.squeeze(0)

问题描述5

查看adata对象中某个数据结构中有哪些关键词

keys = adata.obsm_keys()
print(keys)

问题描述6

利用torch.sparse_coo转换addary

import torch
import numpy

# 创建一个示例的密集数组
dense_array = np.array([[0, 0, 3],
                        [0, 0, 0],
                        [0, 0, 0]])

# 将NumPy数组转换为PyTorch张量
dense_tensor = torch.tensor(dense_array)

# 使用torch.sparse_coo将密集张量转换为COO稀疏张量
sparse_coo_tensor = dense_tensor.to_sparse_coo()

# 打印稀疏张量
print(sparse_coo_tensor)

# 请注意,torch.sparse_coo返回的是一个稀疏张量对象,它包含了稀疏矩阵的坐标和值信息。

# 将稀疏COO张量转换回密集表示形式addary
dense_result = sparse_coo_tensor.to_dense()
print(dense_result)


问题描述7

csr_matrix转addary

import numpy as np
from scipy.sparse import csr_matrix

# 创建一个示例的csr_matrix
data = np.array([1, 2, 3, 4, 5])
row_indices = np.array([0, 1, 2, 3, 4])
column_indices = np.array([0, 1, 2, 3, 4])
csr_matrix_example = csr_matrix((data, (row_indices, column_indices)), shape=(5, 5))

# 将csr_matrix转换为dense NumPy数组
dense_array = csr_matrix_example.toarray()

# 打印dense数组
print(dense_array)


问题描述8

conda 删除虚拟环境

方法一:
# 第一步:首先退出环境
conda deactivate
 
# 第二步:查看虚拟环境列表,此时出现列表的同时还会显示其所在路径
conda env list
 
# 第三步:删除环境
conda env remove -p 要删除的虚拟环境路径
conda env remove -p /home/kuucoss/anaconda3/envs/tfpy36   #我的例子

方法二:

# 第一步:首先退出环境
conda deactivate
 
# 第二步:删除环境
conda remove -n  需要删除的环境名 --all

问题描述9

conda命令克隆(复制)环境

# 根据已有环境名复制生成新的环境
# 假设已有环境名为A,需要生成的环境名为B:

conda create -n B --clone A


问题描述10

torch.float64转torch.float32

# 用.to()
tensor_float64 = torch.tensor([1.0, 2.0, 3.0], dtype=torch.float64)
tensor_float32 = tensor_float64.to(torch.float32)


问题描述11

把tensor和list从CPU传到GPU上

#
device = torch.device('cuda:1' if torch.cuda.is_availiable() else 'cpu')

# tensor
tensor = torch.randn(3, 3)
tensor_gpu = tensor.to(device)

# list
# 假设你有一个张量列表
tensor_list = [torch.randn(3, 3), torch.randn(2, 2)]

# 将列表中的所有张量移动到 GPU
tensor_list_on_gpu = [tensor.to('cuda') for tensor in tensor_list]

# 或者,如果你想将它们移到特定的 GPU 设备上(例如 'cuda:0')
tensor_list_on_specific_gpu = [tensor.to('cuda:0') for tensor in tensor_list]


问题描述12

conda的那些指令

# 创建新环境
conda create --name yourEnv python=3.8
# –name:也可以缩写为 【-n】,【yourEnv】是新创建的虚拟环境的名字
# python=3.8:是python的版本号,若未指定,默认为是装anaconda时python的版本


# 在创建环境同时安装python的一些包
conda create -n yourEnv python=3.8 numpy pandas

# 将环境A复制到新环境B中
conda create --name newEnvB --clone oldEnvA

# 激活新环境
conda activate yourEnv

# 退出当前环境
conda deactivate

# 查看这个环境下安装的包和版本
conda list

# 安装numpy和sklearn包
conda install numpy scikit-learn

# 删除环境
conda env remove -n yourEnv

# 查看所有的环境
conda env list


问题描述13

查看项目环境的pytorch版本:

## 查看python环境
import torch
print(torch.__version__)

## 查看CUDA版本信息以及显卡驱动版本信息:
## terminal
 
## cuda
nvcc --version
## nvidia driver
nvidia-smi

## 验证torch的版本、以及torch与cuda版本是否对应、cuda是否可用
import torch # 如果pytorch安装成功即可导入
print(torch.cuda.is_available()) # 查看CUDA是否可用
print(torch.cuda.device_count()) # 查看可用的CUDA数量
print(torch.version.cuda) # 查看CUDA的版本号


pytorch、cuda、nvidia driver版本匹配关系

pytorch版本与cuda的匹配关系:https://pytorch.org/get-started/previous-versions/

cuda版本与nvidia driver的匹配关系:https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html


问题描述14

查看项目环境的pytorch版本:

# 生成一个 n 行 m 列的全零张量(tensor)
import torch

n = 5  # 你想要的行数
m = 3  # 你想要的列数

# 生成 n 行 m 列的全零张量
zero_tensor = torch.zeros((n, m))

print(zero_tensor)


问题描述15

python安装requirements文件中的包

pip install -r requirements.txt

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值