Tensor语法进阶

 1.  常用操作

1.1 GPU判断

# 判断是否有GPU,若有则进行部署
if torch.cuda.is_available():
    device = torch.device('cuda')
else:
    device = torch.device('cpu')
或
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
print(device.type)
# cpu

# 进行部署
x = torch.tensor([1, 2, 3], device=device)
data = data.to(device)

1.2 tensor与Tensor的区别

x = torch.Tensor([1, 2])
# tensor([1., 2.])
print(x.type())
# torch.FloatTensor

y = torch.tensor([1, 2])
# tensor([1, 2])
print(y.type())
# torch.LongTensor

torch.tensor(5.6)
# tensor(5.6000)
torch.Tensor(5.6)
# TypeError: new(): data must be a sequence (got float)
torch.Tensor([5.6])
# tensor([5.6000])

2. 分布

2.1  指定分布的tensor

# 设定随机种子
torch.manual_seed(123)

# 值在0-1之间的均匀分布
y = torch.rand(5)
# tensor([0.3423, 0.2636, 0.8128, 0.1354, 0.3517])

# 均值为0,方差为1
### 高级Python编程作业与指导 对于希望深入学习并挑战更高难度项目的开发者而言,高级Python编程不仅限于掌握基础语法结构。为了达到更高的水平,在完成常规练习之后可以尝试更复杂的项目。 #### 并行计算中的应用 探索并行算法的设计与实现能够极大地提升程序性能。这涉及到理解如何有效地分配任务给多个处理器核心来加速处理过程[^2]。例如: ```python from multiprocessing import Pool def f(x): return x*x if __name__ == '__main__': with Pool(5) as p: print(p.map(f, [1, 2, 3])) ``` 这段代码展示了利用`multiprocessing`库创建进程池来进行简单的函数映射操作,从而实现了基本的任务分发机制。 #### 计算机视觉领域实践 计算机视觉是一个充满机遇的研究方向,它通常需要扎实的机器学习背景作为支撑[^1]。通过构建图像识别模型或其他形式的数据分析工具,可以获得宝贵的经验和技术积累。下面是一段用于加载预训练卷积神经网络(CNN)并对单张图片进行分类预测的例子: ```python import torch from torchvision import models, transforms from PIL import Image model = models.resnet18(pretrained=True) model.eval() preprocess = transforms.Compose([ transforms.Resize(256), transforms.CenterCrop(224), transforms.ToTensor(), transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]), ]) img = Image.open("example.jpg") input_tensor = preprocess(img).unsqueeze(0) with torch.no_grad(): output = model(input_tensor) _, predicted_idx = torch.max(output, 1) print(predicted_idx.item()) ``` 此脚本首先导入必要的模块,并定义了一个ResNet-18架构实例;接着设置了输入数据转换流程,读取了一幅测试用图象文件,最后执行推理得到类别索引编号。 #### 单元测试的重要性 编写单元测试有助于确保各个组件按预期工作,尤其是在大型软件开发过程中显得尤为重要[^3]。这里给出一个简单类及其对应的测试案例说明文档片段: ```python class Calculator(object): @staticmethod def add(a, b): """Return sum of a and b.""" return float(a) + float(b) # 测试Calculator.add方法是否正常运作 def test_addition(): calc = Calculator() result = calc.add(1, 2) assert abs(result - 3.0) < 1e-7, "Addition did not work correctly!" ``` 上述例子中展示的是针对静态成员函数`add()`的功能验证逻辑,其中包含了合理的数值比较策略以应对浮点数运算误差问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值