首页 > 其他分享 >transformers、torch train demo

transformers、torch train demo

时间:2024-04-16 18:22:05浏览次数:30  
标签:__ dim demo self torch train print model

通过 pytorch 训练模型的逻辑:

import torch.nn as nn
import torch
import numpy
#from torch.utils.tensorboard import SummaryWriter
import time
vocabList = ["0","1","2","3","4","5","6","7","8","9"]

class TwoLayerNet(nn.Module):
    def __init__(self, dim_in, dim_hide_1,dim_hide_2, dim_out):
        super(TwoLayerNet, self).__init__()
        self.linear1 = nn.Linear(dim_in, dim_hide_1, bias=True)
        self.linear2 = nn.Linear(dim_hide_1, dim_hide_2, bias=True)
        # 最后输出32维度

    def forward(self, x):
        y_predict = self.linear2(self.linear1(x).clamp(min=0))
        return y_predict

if __name__ == "__main__":
    #writer = SummaryWriter('log')
    N = 5       # batch size
    D_in = 10 # 输入64 x 1000维
    H1 = 10      # 100个隐藏单元
    H2 = 15      # 100个隐藏单元
    D_out = 1   # 输出100维

    # 创建训练数据,这里是对训练数据进行随机初始化
    x1_data = torch.randn(N, D_in)
    x2_data = torch.randn(N, D_in)
    y = torch.randn(N, 1)

    model = TwoLayerNet(D_in, H1, H2, D_out)    # 模型
    loss_fn = nn.MSELoss(reduction='sum')  # 损失函数
    optimizer = torch.optim.Adam(model.parameters(), lr=1e-4)  # 优化器
    #writer.add_graph(model, input_to_model = torch.rand(5,10))
    #writer.close()
    for t in range(5):
        print("Start train : ---------- ",t)
        y_query = model(x1_data)     # 前向传播
        y_title = model(x2_data)     # 前向传播
        logits = torch.cosine_similarity(y_query,y_title)
        loss = loss_fn(logits, y)  # 计算损失
        loss.backward()            # 反向传播
        optimizer.step()           # 更新权重
        print(t, loss.item())      # 打印
        optimizer.zero_grad()      # 把模型内参数的梯度清零
        for name, param in model.named_parameters():
            print(name)
            print(param)
            if param.grad is not None:
                print(param.grad)
                print(param.grad.shape)
                paramGradValue = [t.numpy() for t in param.grad]
                print(paramGradValue)

 

标签:__,dim,demo,self,torch,train,print,model
From: https://www.cnblogs.com/lovychen/p/18138897

相关文章

  • Rust gRPC 开发 todo-demo
    在這篇文章中,我們將使用gRPC創建一個基本的Todo應用程序。首先,我們將非常快速的概述一下gRPC和ProtocolBuffers。什麼是gRPC?gRPC是一個現代的開源的高性能遠程過程調用(RPC)框架,可以在任何環境下運行。RPC代表遠程過程調用(RemoteProcedureCall),開頭的g代表通......
  • torch.save(),torch.load(),state_dict(),load_state_dict()
    这些函数是PyTorch中用于模型保存和加载的重要函数。下面是对它们的详细解析:torch.save(obj,file):作用:将PyTorch模型保存到文件中。参数:obj:要保存的对象,可以是模型、张量或字典。file:要保存到的文件路径。示例:torch.save(model.state_dict(),'model.pth')......
  • Pytorch Dataset入门
    ​Dataset入门PytorchDatasetcode:torch/utils/data/dataset.py#L17PytorchDatasettutorial:tutorials/beginner/basics/data_tutorial.html 理论:PyTorch中的Dataset是一个抽象类,用来表示数据集的接口,所有其他数据集都需要继承这个类,并且覆写以下三个方法:__init__:......
  • Pytorch计算机视觉实战(更新中)
    第一章人工神经网络基础1.1人工智能与传统机器学习学习心得:传统机器学习(ML):需要专业的主题专家人工提取特征,并通过一个编写良好的算法来破译给定的特征,从而判断这幅图像中的内容。输入-->人工提取特征-->特征-->具有浅层结构的分类器-->输出当存在欺骗性的图片出现时可能会......
  • POI2008POC-Trains
    哈希#STL#POI#Year2008对于每个串做\(hash\),每次操作后只对被影响的等价类更新答案//Author:xiaruizeintn,l,m;chars[1005][105];multiset<ull>st;ullhsh[1005];intres[1005];voidsolve(){ cin>>n>>l>>m; rep(i,1,n)cin>>(s[i]......
  • Pytorch DistributedDataParallel(DDP)教程二:快速入门实践篇
    一、简要回顾DDP在上一篇文章中,简单介绍了Pytorch分布式训练的一些基础原理和基本概念。简要回顾如下:1,DDP采用Ring-All-Reduce架构,其核心思想为:所有的GPU设备安排在一个逻辑环中,每个GPU应该有一个左邻和一个右邻,设备从它的左邻居接收数据,并将数据汇总后发送给右邻。通过N轮迭代......
  • Pytorch分类模型的训练框架
    Pytorch分类模型的训练框架PhotoDataset数据集是自己定义的数据集,数据集存放方式为:----image文件夹--------0文件夹--------------img1.jpg--------------img2.jpg--------1文件夹--------------img1.jpg--------------img2.jpg....如果是cpu训练的话,就把代码中的.cu......
  • 时空图神经网络ST-GNN的概念以及Pytorch实现
    在我们周围的各个领域,从分子结构到社交网络,再到城市设计结构,到处都有相互关联的图数据。图神经网络(GNN)作为一种强大的方法,正在用于建模和学习这类数据的空间和图结构。它已经被应用于蛋白质结构和其他分子应用,例如药物发现,以及模拟系统,如社交网络。标准的GNN可以结合来自其他机器......
  • Pytorch DistributedDataParallel(DDP)教程一:快速入门理论篇
    一、写在前面随着深度学习技术的不断发展,模型的训练成本也越来越高。训练一个高效的通用模型,需要大量的训练数据和算力。在很多非大模型相关的常规任务上,往往也需要使用多卡来进行并行训练。在多卡训练中,最为常用的就是分布式数据并行(DistributedDataParallel,DDP)。但是现有的......
  • Conditional AutoEncoder的Pytorch完全实现
    一个完整的深度学习流程,必须包含的部分有:参数配置、Dataset和DataLoader构建、模型与optimizer与Loss函数创建、训练、验证、保存模型,以及读取模型、测试集验证等,对于生成模型来说,还应该有重构测试、生成测试。AutoEncoder进能够重构见过的数据、VAE可以通过采样生成新数据,对于MN......