深度学习-Pytorch同时使用Numpy和Tensors各自特效
用pytorch构建模型,并训练模型,得到一个优化的模型,那么模型构造的数据类型怎样的?
数据分析
经典算法
pytorch中常常遇到的,最基本的数据类型就是tensors。
NumPy 和Tensors的鱼和熊掌兼得
Pytroch的基本变量是Tensors,但有时候喜欢,或者需要用Numpy变量来处理数据的时候,如果数据转过来转过去很麻烦,也很费事。其实torch在底层架构设计已经有了解决方案,让数据一致,但数据类型有各自的呈现方式。
CPU 和 NumPy 阵列上的Tensors可以共享其底层内存位置,改变一个的数据将改变另一个数据。
这样,如果熟悉Numpy的操作函数,直接使用就行,似乎鱼和熊掌可兼得。
Tensors到 NumPy 数组
python
t = torch.ones(5)
print(f"t: {t}")
n = t.numpy()
print(f"n: {n}")
t: tensor([1., 1., 1., 1., 1.])
n: [1. 1. 1. 1. 1.]
Tensors的变化反映在 NumPy 数组中。
python
t.add_(1)
print(f"t: {t}")
print(f"n: {n}")
t: tensor([2., 2., 2., 2., 2.])
n: [2. 2. 2. 2. 2.]
NumPy 数组到 Tensor
python
n = np.ones(5)
t = torch.from_numpy(n)
NumPy 数组中的更改反映在Tensors中。
python
np.add(n, 1, out=n)
print(f"t: {t}")
print(f"n: {n}")
t: tensor([2., 2., 2., 2., 2.], dtype=torch.float64)
n: [2. 2. 2. 2. 2.]
觉得有用 收藏 收藏 收藏
点个赞 点个赞 点个赞
End
GPT专栏文章:
GPT实战系列-ChatGLM3本地部署CUDA11+1080Ti+显卡24G实战方案
GPT实战系列-LangChain + ChatGLM3构建天气查询助手
GPT实战系列-大模型为我所用之借用ChatGLM3构建查询助手
GPT实战系列-P-Tuning本地化训练ChatGLM2等LLM模型,到底做了什么?(二)
GPT实战系列-P-Tuning本地化训练ChatGLM2等LLM模型,到底做了什么?(一)
GPT实战系列-ChatGLM2部署Ubuntu+Cuda11+显存24G实战方案