项目场景:
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