tensor使用

#梯度相关用法,了解即可
x = torch.tensor(3.0)
x.requires_grad_(True)
y = x ** 2
y.backward()
print(x.grad)
x = x.detach() # 把x从张量网上摘下来,后续不能再计算梯度了,但是可以再赋值
x.grad = torch.tensor(1.0) # 张量网上梯度会累加计算,在计算y2的梯度时,要消除y对x的梯度值
y2 = x ** 2
y2.backward() # 在detach()后使用会报错

print(x.grad)

#创建张量
tensor1 = torch.ones((100, 4)) # 创建一个值全是1的张量
tensor2 = torch.zeros((10, 4)) # 创建一个值全是0的张量
tensor3 = torch.normal(0, 0.01, (10, 4)) # 平均数,方差,形状 创建一个基于正太分布的张量
print(tensor3)


#张量求和
tensor1 = torch.ones((10, 4))
print(tensor1)
sum1 = torch.sum(tensor1) #把所有元素求和
print(sum1)
sum1 = torch.sum(tensor1, dim=0) # 竖着每行加
sum2 = torch.sum(tensor1, dim=1, keepdim=True) #横着每列加,保持原来的形状输出
print(sum2)

#张量形状
print(tensor1.shape)

### Tensor2Tensor 使用教程:深度学习框架与实践指南 Tensor2Tensor(简称 T2T)是谷歌开发的一个基于 TensorFlow 的深度学习库,旨在简化模型训练和实验流程。它不仅支持多种任务,如机器翻译、图像生成、问答系统等,还提供了丰富的预训练模型和数据集[^1]。 #### 安装与配置 在开始使用 Tensor2Tensor 之前,需要安装相关的依赖包。可以使用 pip 命令进行安装: ```bash pip install tensor2tensor ``` 需要注意的是,Tensor2TensorTensorFlow 的版本兼容性问题可能会导致运行时出现错误。例如,Tensor2Tensor 1.5.3 与 TensorFlow 1.4.1 组合是已知的稳定组合[^5]。 #### 数据准备与处理 Tensor2Tensor 提供了内置的数据集下载和预处理功能。以机器翻译为例,可以使用以下命令下载并准备 WMT 英德翻译数据集: ```bash t2t-datagen --data_dir=~/t2t_data --tmp_dir=~/t2t_tmp --problem=translate_ende_wmt32k ``` 此命令会自动下载数据集,并将其转换为模型可用的格式。 #### 模型训练 训练模型时,可以选择一个预定义的模型架构,例如 Transformer。以下是训练 Transformer 模型的示例命令: ```bash t2t-trainer \ --data_dir=~/t2t_data \ --problem=translate_ende_wmt32k \ --model=transformer \ --hparams_set=transformer_base_single_gpu \ --output_dir=~/t2t_train/transformer_ende ``` 该命令指定了数据目录、问题类型、模型架构以及超参数集合。通过调整 `--hparams_set` 参数,可以使用不同的超参数配置来优化模型性能。 #### 模型评估与推理 训练完成后,可以对模型进行评估和推理。使用以下命令进行模型评估: ```bash t2t-decoder \ --data_dir=~/t2t_data \ --problem=translate_ende_wmt32k \ --model=transformer \ --hparams_set=transformer_base_single_gpu \ --output_dir=~/t2t_train/transformer_ende \ --decode_hparams="beam_size=4,alpha=0.6" \ --decode_from_file=~/t2t_tmp/decode_in.txt \ --decode_to_file=~/t2t_tmp/decode_out.txt ``` 这段代码展示了如何从文件中读取输入文本,并将模型的输出保存到另一个文件中。解码过程中,可以通过设置 `beam_size` 和 `alpha` 来控制生成结果的质量[^1]。 #### 迁移学习与自定义模型 Tensor2Tensor 支持迁移学习,用户可以在已有模型的基础上继续训练新的任务。此外,还可以自定义模型架构和数据处理逻辑。以下是一个简单的自定义模型示例: ```python from tensor2tensor.utils import registry from tensor2tensor.models.transformer import transformer_base @registry.register_model class CustomTransformer(transformer_base): def __init__(self, *args, **kwargs): super(CustomTransformer, self).__init__(*args, **kwargs) # 自定义初始化代码 ``` 上述代码定义了一个继承自 `transformer_base` 的自定义模型类,并注册到 Tensor2Tensor 的模型库中。用户可以根据具体需求修改模型结构和训练过程。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kanm7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值