[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"site-home-live-entry-setting":3,"site-header-contests":8,"site-header-camps":49,"study-material-detail-study-6":104},{"enabled":4,"title":5,"statusText":5,"buttonText":5,"campSlug":5,"stage":6,"classroomId":7,"hasClassroom":4},false,"",0,null,{"total":9,"list":10,"pageNum":44,"pageSize":45,"size":9,"startRow":44,"endRow":9,"pages":44,"prePage":6,"nextPage":6,"isFirstPage":46,"isLastPage":46,"hasPreviousPage":4,"hasNextPage":4,"navigatePages":47,"navigatepageNums":48,"navigateFirstPage":44,"navigateLastPage":44},3,[11,25,35],{"slug":12,"title":13,"logo":7,"liveUrl":14,"prize":15,"sponsor":16,"description":17,"organizer":18,"startTime":19,"endTime":20,"registrationDeadline":21,"status":22,"dashboardVisibility":23,"createdAt":24},"spring2026","2026春季启元人工智能大赛","https:\u002F\u002Fwww.bilibili.com\u002Fblackboard\u002Flive\u002Flive-activity-player.html?cid=1822703816&quality=0","200,000","麒麟软件有限公司","“2026春季启元人工智能大赛”是由启元实验室主办的面向全国人工智能领域开发者、科研人员及高校学生的权威赛事。大赛旨在促进与培养具备工程实践能力和创新能力的优秀人工智能领域开发者、推广国产软硬件技术与生态、助力国家人工智能产业高质量发展。\n各参赛选手需在规定的比赛周期内，依据赛事规则选定赛题并完成相应挑战，优胜者将共同角逐总额20万元的赛事奖金池，并且还将有机会获得实习和知名企业优质岗位内推资格。","启元实验室","2026-04-19 16:00:00","2026-07-13 16:00:00","2026-06-16 16:00:00","ongoing","private","2026-04-16 08:00:00",{"slug":26,"title":27,"logo":7,"liveUrl":14,"prize":28,"sponsor":7,"description":29,"organizer":18,"startTime":30,"endTime":31,"registrationDeadline":32,"status":33,"dashboardVisibility":23,"createdAt":34},"autumn2025","2025秋季启元人工智能大赛","150,000","“2025秋季启元人工智能大赛”是由启元实验室主办的面向全国人工智能领域开发者、科研人员及高校学生的权威赛事。大赛旨在促进与培养具备工程实践能力和创新能力的优秀人工智能领域开发者、推广国产软硬件技术与生态、助力国家人工智能产业高质量发展。","2025-11-08 08:00:00","2026-01-13 08:00:00","2025-12-30 08:00:00","ended","2025-11-03 08:00:00",{"slug":36,"title":37,"logo":7,"liveUrl":14,"prize":38,"sponsor":7,"description":39,"organizer":18,"startTime":40,"endTime":41,"registrationDeadline":42,"status":33,"dashboardVisibility":23,"createdAt":43},"summer2025","启元人工智能大赛(系统方向)","80,000","启元人工智能大赛由启元实验室主办，其中系统赛道基于启元实验室九源软件栈的相关开源项目，通过拉动开源社区力量，一方面促进国产智能计算生态的发展，另一方面也为人工智能系统方向的学生及从业者提供一个实践平台。","2025-07-08 08:00:00","2025-08-25 08:00:00","2025-07-22 08:00:00","2025-06-22 08:00:00",1,5,true,8,[44],{"total":45,"list":50,"pageNum":44,"pageSize":45,"size":45,"startRow":44,"endRow":45,"pages":44,"prePage":6,"nextPage":6,"isFirstPage":46,"isLastPage":46,"hasPreviousPage":4,"hasNextPage":4,"navigatePages":47,"navigatepageNums":103,"navigateFirstPage":44,"navigateLastPage":44},[51,62,73,84,94],{"id":52,"slug":53,"title":54,"logo":55,"publicLiveEmbedUrl":14,"description":56,"introduction":57,"organizer":18,"coOrganizer":5,"sponsor":16,"startTime":58,"endTime":59,"status":22,"dashboardVisibility":60,"createdAt":58,"updatedAt":61},"019eeeff-6b00-7d55-a629-efafded3e232","summer2026","2026年夏季InfiniTensor大模型与人工智能系统训练营","https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fuploads\u002F2026-06\u002F019eef7f-7816-7828-9309-79c2c61dd568.jpg?Expires=1792752826&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=tqXtkjDVEuQBnsL07LARCfQJvdE%3D","由启元实验室发起的InfiniTensor大模型与人工智能系统训练营，面向开源社区、高校及产业界伙伴开放。活动以「普及AI全栈知识技术、培养工程实践与创新型人才、推广国产软硬件技术生态」为核心目标，助力国家人工智能产业高质量发展。","...","2026-06-22 08:00:00","2026-10-19 08:00:00","public","2026-10-12 08:00:00",{"id":63,"slug":64,"title":65,"logo":66,"publicLiveEmbedUrl":7,"description":67,"introduction":57,"organizer":18,"coOrganizer":5,"sponsor":68,"startTime":69,"endTime":70,"status":33,"dashboardVisibility":23,"createdAt":71,"updatedAt":72},"019af3f3-e06a-7245-aa8d-37dc99a69c73","winter2025","2025年冬季InfiniTensor大模型与人工智能系统训练营","https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fuploads\u002F2025-12\u002F019afc69-b7ca-7805-91fb-605429671c01.png?Expires=1792752826&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=tM28gi%2FKPywJvel7AqVcxFGnKTg%3D","由启元实验室发起的InfiniTensor大模型与人工智能系统训练营，面向开源社区、高校及产业界伙伴开放。活动以「普及AI全栈知识技术、培养工程实践与创新型人才、推广国产软硬件技术生态」为核心目标，助力国家人工智能产业高质量发展。 \n","新华三技术有限公司","2025-12-25 08:00:00","2026-03-27 08:00:00","2025-12-06 08:00:00","2026-10-22 20:24:30",{"id":74,"slug":36,"title":75,"logo":76,"publicLiveEmbedUrl":7,"description":77,"introduction":57,"organizer":18,"coOrganizer":5,"sponsor":78,"startTime":79,"endTime":80,"status":81,"dashboardVisibility":23,"createdAt":82,"updatedAt":83},"01980342-208c-7803-b3f3-19e1d31960ba","2025年夏季InfiniTensor大模型与人工智能系统训练营","https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fuploads\u002F2025-07\u002F0198045e-28fe-78f0-95fe-23835ce58395.jpg?Expires=1792752826&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=RSwSsL0Rw0AFxM%2Bz65pGHzs2YLw%3D","InfiniTensor大模型与人工智能系统训练营由启元实验室及清华大学 AI 系统方向团队发起，面向开源社区、高校和产业界，普及人工智能各方面知识和技术，培养相关人才。训练营联合开源项目开发者、学术界大牛、工业界资深工程师参与授课与项目指导。课程采用「线上直播授课 + 在线答疑 + 项目实践辅导 」的方式进行，确保每位同学都能获得充分成长。训练营全程免费，通过视频、直播课、习题和项目实践，在人工智能飞速发展的背景下，为学员提供一窥深层技术的机会。","北京积算科技有限公司","2025-07-14 08:00:00","2025-09-30 08:00:00","upcoming","2025-07-13 08:00:00","2026-10-22 20:24:58",{"id":85,"slug":86,"title":87,"logo":88,"publicLiveEmbedUrl":7,"description":89,"introduction":57,"organizer":18,"coOrganizer":5,"sponsor":5,"startTime":90,"endTime":91,"status":81,"dashboardVisibility":23,"createdAt":92,"updatedAt":93},"01980cf9-a7d8-7796-ae86-0bbe05334add","winter2024","2024年冬季InfiniTensor大模型与人工智能系统训练营","https:\u002F\u002Ftesting-cdn.infinitensor.com\u002Fuploads\u002F2025-07\u002F01981269-ce23-7624-a287-9f07dd0d85f6.jpg","InfiniTensor大模型与人工智能系统训练营由清华大学发起，面向开源社区、高校和产业界，普及人工智能各方面知识和技术，培养相关人才。训练营全程免费，通过视频、直播课、习题和项目实践，在人工智能飞速发展的背景下，为学员提供一窥深层技术的机会。报名学员请阅读“导学”课程页的训练营介绍。","2025-01-05 08:00:00","2025-03-22 08:00:00","2025-07-15 08:00:00","2026-10-22 20:24:39",{"id":95,"slug":96,"title":97,"logo":98,"publicLiveEmbedUrl":7,"description":99,"introduction":57,"organizer":18,"coOrganizer":5,"sponsor":5,"startTime":100,"endTime":101,"status":81,"dashboardVisibility":23,"createdAt":92,"updatedAt":102},"01980c20-363a-7dc3-8f5a-58a68e08dcc4","summer2024","2024年夏季InfiniTensor大模型与人工智能系统训练营","https:\u002F\u002Ftesting-cdn.infinitensor.com\u002Fuploads\u002F2025-07\u002F01981269-fbfa-788a-afcd-17fa9be74ff9.jpg","InfiniTensor大模型与人工智能系统训练营由清华大学发起，面向开源社区和高校，普及人工智能各方面知识和技术，培养相关人才。训练营全程免费，通过课程、习题和项目实践，在人工智能飞速发展的背景下，为学员提供一窥深层技术的机会。","2024-07-20 08:00:00","2024-09-29 08:00:00","2026-10-22 20:24:49",[44],{"currentItem":105,"processedData":125},{"img":106,"keywords":107,"treeType":44,"description":108,"showStatus":44,"updateTime":109,"type":110,"title":111,"content":112,"nextArticle":113,"createTime":109,"sortOrder":117,"canonicalPath":118,"id":119,"contentType":120,"prevArticle":121},"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_06_fm.jpg?Expires=1792752826&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=Bm1xg9tt8Q26hdrVPYX6QBy2IgA%3D","InfiniTensor,冬季训练营,PyTorch,深度学习入门,模型训练","围绕 PyTorch 入门展开，讲解张量操作、模型搭建与训练实践的基础能力。","2026-10-22 20:38:11",2,"InfiniTensor冬季训练营编程基础课第六课《PyTorch入门》","![PyTorch入门课程封面](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_06_zw1.jpg?Expires=1792752826&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=BOBgJnhHHwa2TsmOYQQrXmbjM3I%3D)\r\n\r\n\r\n2026年1月9日，2025冬季 InfiniTensor 大模型与人工智能系统训练营编程基础课第六课《PyTorch入门》正式开讲。\r\n\r\n本课程将带领大家从零开始掌握 PyTorch 这一深度学习框架的核心概念，为后续的大模型开发与训练打下坚实基础。\r\n\r\n## 为什么选择PyTorch？\r\n\r\nPyTorch 是由 Meta（原 Facebook）开发的开源深度学习框架，具有以下显著优势：\r\n\r\n- **动态计算图机制**：更灵活的模型构建与调试体验\r\n- **简洁的Python接口**：与Python生态无缝集成\r\n- **强大的自动求导系统**：简化梯度计算与反向传播\r\n- **活跃的社区与丰富的生态系统**：包括torchvision、torchtext、torchaudio等\r\n\r\n目前，PyTorch已成为工业界最主流的深度学习平台之一，也是大模型开发与训练的首选框架。\r\n\r\n## 课程内容概览\r\n\r\n### 1. PyTorch核心概念：Tensor\r\n\r\nTensor 是 PyTorch 中最重要的数据结构，它统一表示标量、向量、矩阵和高维数组。\r\n\r\n#### Tensor的构造方式\r\n\r\n```python\r\nimport torch\r\n\r\n# 1. 直接构造\r\ndata = [[1, 2], [3, 4]]\r\nx_data = torch.tensor(data)\r\n\r\n# 2. 来自NumPy数组\r\nimport numpy as np\r\nnp_array = np.array(data)\r\nx_np = torch.from_numpy(np_array)\r\n\r\n# 3. 基于其他Tensor，从而保留其他 Tensor 的部分属性\r\nz = torch.ones_like(x)  # 创建与x相同形状的全1 Tensor\r\n\r\n# 4. 随机初始化\r\nshape = (2, 3,)\r\nrand_tensor = torch.rand(shape)  # 随机Tensor\r\n```\r\n\r\n#### Tensor的基本属性\r\n\r\n```python\r\n# 获取Tensor的基本属性\r\nprint(\"Shape:\", x.shape)       # (2, 3)\r\nprint(\"Data type:\", x.dtype)   # torch.int64\r\nprint(\"Device:\", x.device)     # cpu\r\n```\r\n\r\n```python\r\n# 将 Tensor 转移到计算设备上\r\nif torch.cuda.is_available():\r\n    x = x.to('cuda')\r\nelif hasattr(torch.backends, \"mps\") and torch.backends.mps.is_available():\r\n    # For Mac Users\r\n    x = x.to('mps')\r\n\r\nprint(f\"Device tensor is stored on: {x.device}\")\r\n```\r\n\r\n#### Tensor的计算操作\r\n\r\n```python\r\n# 逐元素计算\r\na = torch.tensor([1, 2, 3])\r\nb = torch.tensor([4, 5, 6])\r\nc = a + b  # [5, 7, 9]\r\n\r\n# 广播机制\r\na = torch.randn(3, 4, 5)  # 3x4x5\r\nb = torch.randn(4, 5)     # 4x5\r\nc = a + b                 # 自动广播为3x4x5\r\n\r\n# 变换操作\r\nx = torch.randn(2, 3, 4)\r\nprint(x.view(2, 1, 3, 4).shape)  # (2, 1, 3, 4)\r\nprint(x.reshape(6, 4).shape)     # (6, 4)\r\nprint(x.permute(1, 0, 2).shape)  # (3, 2, 4)\r\nprint(x.transpose(1, 2).shape)   # (2, 4, 3)\r\nprint(x.unsqueeze(-1).shape)     # (2, 3, 4, 1)\r\nprint(x.view(2, 1, 3, 4).squeeze().shape)   # (2, 3, 4)\r\n\r\n# 对于转置，可以简单地使用 x.T 进行维度的从高到低的反转\r\nprint(x.T.shape)   # (4, 3, 2)\r\n\r\n# 矩阵乘法\r\na = torch.randn(2, 3)\r\nb = torch.randn(3, 4)\r\nc = a @ b                 # 2x4 矩阵乘法\r\n```\r\n\r\n### 2. 神经网络构建：nn.Module\r\n\r\n在PyTorch中，所有神经网络结构都是`torch.nn.Module`的子类。\r\n\r\n#### 自定义线性层示例\r\n\r\n```python\r\nimport torch.nn as nn\r\n\r\nclass MyLinear(nn.Module):\r\n    def __init__(self, in_features, out_features):\r\n        super().__init__()\r\n\r\n        # 权重矩阵 W: (out_features, in_features)\r\n        self.weight = torch.randn(out_features, in_features)\r\n\r\n        # 偏置 b: (out_features,)\r\n        self.bias = torch.randn(out_features)\r\n\r\n    def forward(self, x):\r\n        # 定义其计算流程，x 为输入 Tensor，返回值为输出 Tensor\r\n        # x: (N, in_features)\r\n        # x @ W^T -> (N, out_features)\r\n        return x @ self.weight.t() + self.bias\r\n\r\n# 调用实现的 MyLinear Module\r\nlinear = MyLinear(in_features=3, out_features=2)\r\n\r\nx = torch.randn(4, 3)   # 4 条数据，每条 3 个特征\r\n\r\n# 直接调用 linear(input)，等同于调用 linear.forward(input)\r\ny = linear(x)\r\n\r\nprint(\"input shape:\", x.shape)  # (4, 3)\r\nprint(\"output shape:\", y.shape) # (4, 2)\r\nprint(y)\r\n```\r\n\r\n#### 使用内置模块构建MLP\r\n\r\n```python\r\n# 简单的多层感知机实现\r\nclass SimpleMLP(nn.Module):\r\n    def __init__(self, input_dim, hidden_dim, output_dim):\r\n        super().__init__()\r\n        # nn.Linear 的参数使用 Kaiming Uniform\r\n        self.fc1 = nn.Linear(input_dim, hidden_dim)\r\n        self.act = nn.ReLU()\r\n        self.fc2 = nn.Linear(hidden_dim, output_dim)\r\n\r\n    def forward(self, x):\r\n        x = self.fc1(x)\r\n        x = self.act(x)\r\n        x = self.fc2(x)\r\n        return x\r\n\r\nmodel = SimpleMLP(5, 10, 3)\r\ninput = torch.rand((4, 5))\r\n\r\n# 直接调用 model(input)，等同于调用 model.forward(input)\r\noutput = model(input)\r\noutput # shape: (4, 3)\r\n\r\n# 使用Sequential简化\r\nmodel = nn.Sequential(\r\n    nn.Linear(5, 10),\r\n    nn.ReLU(),\r\n    nn.Linear(10, 3)\r\n)\r\n\r\ninput = torch.rand((4, 5))\r\noutput = model(input)\r\noutput # shape: (4, 3)\r\n```\r\n\r\n### 3. 数据处理：Dataset与DataLoader\r\n\r\nPyTorch提供了`torch.utils.data.Dataset`和`torch.utils.data.DataLoader`来处理数据。\r\n\r\n#### 自定义Dataset\r\n\r\n```python\r\nfrom torch.utils.data import Dataset\r\n\r\n# 一个能够实现所指定 transform 方法的自定义 Dataset\r\nclass MyTransformedDataset(Dataset):\r\n    def __init__(self, data, labels, transform=None):\r\n        self.data = data            # 通常为 torch.Tensor 或 numpy.ndarray\r\n        self.labels = labels\r\n        self.transform = transform  # 可以传入任何函数或预定义的 torchvision.transforms 组合\r\n\r\n    def __len__(self):\r\n        return len(self.data)\r\n\r\n    def __getitem__(self, idx):\r\n        x = self.data[idx]\r\n        y = self.labels[idx]\r\n\r\n        # 在此应用 transform（如归一化、随机旋转等）\r\n        if self.transform:\r\n            x = self.transform(x)\r\n\r\n        # 可以返回任意 Python 基本类型，如包含两个数据的 tuple\r\n        return x, y\r\n\r\n# 定义一个变换流程（示例：归一化）\r\nmy_transform = lambda x: (x - x.mean()) \u002F x.std()\r\n\r\n# 构造伪数据\r\nX = torch.randn(1000, 10)\r\ny = torch.randint(0, 2, (1000,))\r\n\r\ndataset = MyTransformedDataset(X, y, transform=my_transform)\r\n```\r\n\r\n#### 使用DataLoader\r\n\r\n```python\r\nfrom torch.utils.data import DataLoader\r\n\r\n# 紧接着上述自定义 dataset 示例\r\nloader = DataLoader(dataset, batch_size=32, shuffle=True)\r\n\r\n# 模拟训练循环中使用 DataLoader\r\nfor batch_idx, (batch_x, batch_y) in enumerate(loader):\r\n    # 打印每个 batch 的基本信息\r\n    print(f\"Batch {batch_idx}:\")\r\n    print(\"  X shape:\", batch_x.shape)\r\n    print(\"  y shape:\", batch_y.shape)\r\n    print(\"  X sample:\", batch_x[0])\r\n    print(\"  y sample:\", batch_y[0])\r\n\r\n    # 这里可以插入模型 forward \u002F loss \u002F backward \u002F optimizer 等逻辑\r\n    # output = model(batch_x)\r\n    # loss = criterion(output, batch_y)\r\n    # ...\r\n\r\n    if batch_idx >= 2:\r\n        break  # 这里只演示前几个 batch，避免输出过长\r\n\r\n```\r\n\r\n### 4. HuggingFace Transformers：开箱即用的NLP工具\r\n\r\nHuggingFace Transformers库提供了多种预训练模型和开箱即用的API。\r\n\r\n\r\n#### 推理示例\r\n\r\n```python\r\nimport torch\r\nfrom transformers import AutoTokenizer, AutoModelForSequenceClassification\r\n\r\n# 情感分析任务示例\r\ncheckpoint = \"distilbert-base-uncased-finetuned-sst-2-english\"\r\ntokenizer = AutoTokenizer.from_pretrained(checkpoint)\r\nmodel = AutoModelForSequenceClassification.from_pretrained(checkpoint).cuda()\r\nmodel.eval()\r\n\r\ntexts = [\r\n    \"This library is extremely useful.\",\r\n    \"This is a terrible user experience.\"\r\n]\r\n\r\ninputs = tokenizer(texts, padding=True, truncation=True, return_tensors=\"pt\")\r\ninputs = {k: v.cuda() for k, v in inputs.items()}\r\n\r\nwith torch.no_grad():\r\n    outputs = model(**inputs)\r\n\r\n# logits: (batch, num_labels)\r\nlogits = outputs.logits\r\nprobs = torch.softmax(logits, dim=-1)\r\n\r\n# 概率输出\r\nprint(logits.shape, probs)\r\n\r\n# 把概率映射回标签名\r\nid2label = model.config.id2label\r\npred_ids = probs.argmax(dim=-1).tolist()\r\npreds = [(texts[i], id2label[pred_ids[i]], float(probs[i, pred_ids[i]].cpu())) for i in range(len(texts))]\r\npreds\r\n```\r\n\r\n#### 使用预训练模型进行文本生成\r\n\r\n```python\r\n\r\nfrom transformers import AutoTokenizer, AutoModelForCausalLM\r\n\r\n# 文本生成任务示例\r\ncheckpoint = \"Qwen\u002FQwen3-0.6B\"\r\ntokenizer = AutoTokenizer.from_pretrained(checkpoint)\r\nmodel = AutoModelForCausalLM.from_pretrained(checkpoint).cuda()\r\nmodel.eval()\r\n\r\nprompt = \"讲一个故事：\"\r\ninputs = tokenizer(prompt, return_tensors=\"pt\")\r\ninputs = {k: v.cuda() for k, v in inputs.items()}\r\n\r\nwith torch.no_grad():\r\n    generated = model.generate(\r\n        **inputs,\r\n        max_new_tokens=60,\r\n        do_sample=True,\r\n        temperature=0.9,\r\n        top_p=0.95\r\n    )\r\n\r\ntext_out = tokenizer.decode(generated[0], skip_special_tokens=True)\r\ntext_out\r\n```\r\n\r\n### 课程收获\r\n\r\n通过本课程，你将能够：\r\n\r\n1. 理解PyTorch的核心概念与数据结构\r\n2. 掌握Tensor的基本操作与计算\r\n3. 构建自定义神经网络模型\r\n4. 使用Dataset和DataLoader进行数据处理\r\n5. 调用预训练模型进行快速推理\r\n6. 为后续的大模型开发与训练打下坚实基础\r\n\r\n### **课程预告**：\r\n后续课程将深入讲解大模型训练、推理与优化技术，包括分布式训练、推理性能调优等主题课程。\r\n\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_01_zw6.jpg?Expires=1792752826&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=epXM94790JRyVZK5KPiIf95EZZQ%3D)\r\n\r\n\r\n**InfiniTensor大模型与人工智能系统训练营**，助你从基础到前沿，掌握大模型相关核心技能！\r\n\r\n### 💡 学习贴士\r\n更多细节及完整课程内容，请观看直播或查看课程回放。\r\n\r\n链接：https:\u002F\u002Fwww.infinitensor.com\u002Fcamp\u002Fwinter2025\r\n\r\n\r\n### 📚 训练营报名持续进行中\r\n扫码报名与加入群聊，或点击 **「阅读原文」** 直达官网报名\r\n\r\n\r\n![](https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_01_zw7.jpg?Expires=1792752826&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=T6W1BlHdoBa2bd0P%2B0OABUI5sTc%3D)",{"publishTime":7,"createTime":109,"canonicalPath":114,"id":115,"title":116},"\u002Fstudy-material\u002Fstudy-5","study-5","InfiniTensor冬季训练营编程基础课第五课《Python入门》",103,"\u002Fstudy-material\u002Fstudy-6","study-6","markdown",{"publishTime":7,"createTime":109,"canonicalPath":122,"id":123,"title":124},"\u002Fstudy-material\u002Fstudy-7","study-7","InfiniTensor 冬季训练营 CUDA 编程方向第一课《并行编程导论与 CUDA 入门》",{"htmlContent":126,"headings":127},"\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_06_zw1.jpg?Expires=1792752826&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=BOBgJnhHHwa2TsmOYQQrXmbjM3I%3D\" alt=\"PyTorch入门课程封面\">\u003C\u002Fp>\n\u003Cp>2026年1月9日，2025冬季 InfiniTensor 大模型与人工智能系统训练营编程基础课第六课《PyTorch入门》正式开讲。\u003C\u002Fp>\n\u003Cp>本课程将带领大家从零开始掌握 PyTorch 这一深度学习框架的核心概念，为后续的大模型开发与训练打下坚实基础。\u003C\u002Fp>\n\u003Ch2 id=\"为什么选择pytorch\">\u003Ca class=\"anchor\" href=\"#为什么选择pytorch\" aria-label=\"跳转到标题：为什么选择PyTorch？\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>为什么选择PyTorch？\u003C\u002Fh2>\u003Cp>PyTorch 是由 Meta（原 Facebook）开发的开源深度学习框架，具有以下显著优势：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>动态计算图机制\u003C\u002Fstrong>：更灵活的模型构建与调试体验\u003C\u002Fli>\n\u003Cli>\u003Cstrong>简洁的Python接口\u003C\u002Fstrong>：与Python生态无缝集成\u003C\u002Fli>\n\u003Cli>\u003Cstrong>强大的自动求导系统\u003C\u002Fstrong>：简化梯度计算与反向传播\u003C\u002Fli>\n\u003Cli>\u003Cstrong>活跃的社区与丰富的生态系统\u003C\u002Fstrong>：包括torchvision、torchtext、torchaudio等\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>目前，PyTorch已成为工业界最主流的深度学习平台之一，也是大模型开发与训练的首选框架。\u003C\u002Fp>\n\u003Ch2 id=\"课程内容概览\">\u003Ca class=\"anchor\" href=\"#课程内容概览\" aria-label=\"跳转到标题：课程内容概览\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>课程内容概览\u003C\u002Fh2>\u003Ch3 id=\"1-pytorch核心概念-tensor\">\u003Ca class=\"anchor\" href=\"#1-pytorch核心概念-tensor\" aria-label=\"跳转到标题：1. PyTorch核心概念：Tensor\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>1. PyTorch核心概念：Tensor\u003C\u002Fh3>\u003Cp>Tensor 是 PyTorch 中最重要的数据结构，它统一表示标量、向量、矩阵和高维数组。\u003C\u002Fp>\n\u003Ch4 id=\"tensor的构造方式\">\u003Ca class=\"anchor\" href=\"#tensor的构造方式\" aria-label=\"跳转到标题：Tensor的构造方式\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>Tensor的构造方式\u003C\u002Fh4>\u003Cpre>\u003Ccode class=\"language-python\">import torch\n\n# 1. 直接构造\ndata = [[1, 2], [3, 4]]\nx_data = torch.tensor(data)\n\n# 2. 来自NumPy数组\nimport numpy as np\nnp_array = np.array(data)\nx_np = torch.from_numpy(np_array)\n\n# 3. 基于其他Tensor，从而保留其他 Tensor 的部分属性\nz = torch.ones_like(x)  # 创建与x相同形状的全1 Tensor\n\n# 4. 随机初始化\nshape = (2, 3,)\nrand_tensor = torch.rand(shape)  # 随机Tensor\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4 id=\"tensor的基本属性\">\u003Ca class=\"anchor\" href=\"#tensor的基本属性\" aria-label=\"跳转到标题：Tensor的基本属性\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>Tensor的基本属性\u003C\u002Fh4>\u003Cpre>\u003Ccode class=\"language-python\"># 获取Tensor的基本属性\nprint(&quot;Shape:&quot;, x.shape)       # (2, 3)\nprint(&quot;Data type:&quot;, x.dtype)   # torch.int64\nprint(&quot;Device:&quot;, x.device)     # cpu\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cpre>\u003Ccode class=\"language-python\"># 将 Tensor 转移到计算设备上\nif torch.cuda.is_available():\n    x = x.to(&#39;cuda&#39;)\nelif hasattr(torch.backends, &quot;mps&quot;) and torch.backends.mps.is_available():\n    # For Mac Users\n    x = x.to(&#39;mps&#39;)\n\nprint(f&quot;Device tensor is stored on: {x.device}&quot;)\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4 id=\"tensor的计算操作\">\u003Ca class=\"anchor\" href=\"#tensor的计算操作\" aria-label=\"跳转到标题：Tensor的计算操作\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>Tensor的计算操作\u003C\u002Fh4>\u003Cpre>\u003Ccode class=\"language-python\"># 逐元素计算\na = torch.tensor([1, 2, 3])\nb = torch.tensor([4, 5, 6])\nc = a + b  # [5, 7, 9]\n\n# 广播机制\na = torch.randn(3, 4, 5)  # 3x4x5\nb = torch.randn(4, 5)     # 4x5\nc = a + b                 # 自动广播为3x4x5\n\n# 变换操作\nx = torch.randn(2, 3, 4)\nprint(x.view(2, 1, 3, 4).shape)  # (2, 1, 3, 4)\nprint(x.reshape(6, 4).shape)     # (6, 4)\nprint(x.permute(1, 0, 2).shape)  # (3, 2, 4)\nprint(x.transpose(1, 2).shape)   # (2, 4, 3)\nprint(x.unsqueeze(-1).shape)     # (2, 3, 4, 1)\nprint(x.view(2, 1, 3, 4).squeeze().shape)   # (2, 3, 4)\n\n# 对于转置，可以简单地使用 x.T 进行维度的从高到低的反转\nprint(x.T.shape)   # (4, 3, 2)\n\n# 矩阵乘法\na = torch.randn(2, 3)\nb = torch.randn(3, 4)\nc = a @ b                 # 2x4 矩阵乘法\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3 id=\"2-神经网络构建-nn-module\">\u003Ca class=\"anchor\" href=\"#2-神经网络构建-nn-module\" aria-label=\"跳转到标题：2. 神经网络构建：nn.Module\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>2. 神经网络构建：nn.Module\u003C\u002Fh3>\u003Cp>在PyTorch中，所有神经网络结构都是\u003Ccode>torch.nn.Module\u003C\u002Fcode>的子类。\u003C\u002Fp>\n\u003Ch4 id=\"自定义线性层示例\">\u003Ca class=\"anchor\" href=\"#自定义线性层示例\" aria-label=\"跳转到标题：自定义线性层示例\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>自定义线性层示例\u003C\u002Fh4>\u003Cpre>\u003Ccode class=\"language-python\">import torch.nn as nn\n\nclass MyLinear(nn.Module):\n    def __init__(self, in_features, out_features):\n        super().__init__()\n\n        # 权重矩阵 W: (out_features, in_features)\n        self.weight = torch.randn(out_features, in_features)\n\n        # 偏置 b: (out_features,)\n        self.bias = torch.randn(out_features)\n\n    def forward(self, x):\n        # 定义其计算流程，x 为输入 Tensor，返回值为输出 Tensor\n        # x: (N, in_features)\n        # x @ W^T -&gt; (N, out_features)\n        return x @ self.weight.t() + self.bias\n\n# 调用实现的 MyLinear Module\nlinear = MyLinear(in_features=3, out_features=2)\n\nx = torch.randn(4, 3)   # 4 条数据，每条 3 个特征\n\n# 直接调用 linear(input)，等同于调用 linear.forward(input)\ny = linear(x)\n\nprint(&quot;input shape:&quot;, x.shape)  # (4, 3)\nprint(&quot;output shape:&quot;, y.shape) # (4, 2)\nprint(y)\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4 id=\"使用内置模块构建mlp\">\u003Ca class=\"anchor\" href=\"#使用内置模块构建mlp\" aria-label=\"跳转到标题：使用内置模块构建MLP\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>使用内置模块构建MLP\u003C\u002Fh4>\u003Cpre>\u003Ccode class=\"language-python\"># 简单的多层感知机实现\nclass SimpleMLP(nn.Module):\n    def __init__(self, input_dim, hidden_dim, output_dim):\n        super().__init__()\n        # nn.Linear 的参数使用 Kaiming Uniform\n        self.fc1 = nn.Linear(input_dim, hidden_dim)\n        self.act = nn.ReLU()\n        self.fc2 = nn.Linear(hidden_dim, output_dim)\n\n    def forward(self, x):\n        x = self.fc1(x)\n        x = self.act(x)\n        x = self.fc2(x)\n        return x\n\nmodel = SimpleMLP(5, 10, 3)\ninput = torch.rand((4, 5))\n\n# 直接调用 model(input)，等同于调用 model.forward(input)\noutput = model(input)\noutput # shape: (4, 3)\n\n# 使用Sequential简化\nmodel = nn.Sequential(\n    nn.Linear(5, 10),\n    nn.ReLU(),\n    nn.Linear(10, 3)\n)\n\ninput = torch.rand((4, 5))\noutput = model(input)\noutput # shape: (4, 3)\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3 id=\"3-数据处理-dataset与dataloader\">\u003Ca class=\"anchor\" href=\"#3-数据处理-dataset与dataloader\" aria-label=\"跳转到标题：3. 数据处理：Dataset与DataLoader\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>3. 数据处理：Dataset与DataLoader\u003C\u002Fh3>\u003Cp>PyTorch提供了\u003Ccode>torch.utils.data.Dataset\u003C\u002Fcode>和\u003Ccode>torch.utils.data.DataLoader\u003C\u002Fcode>来处理数据。\u003C\u002Fp>\n\u003Ch4 id=\"自定义dataset\">\u003Ca class=\"anchor\" href=\"#自定义dataset\" aria-label=\"跳转到标题：自定义Dataset\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>自定义Dataset\u003C\u002Fh4>\u003Cpre>\u003Ccode class=\"language-python\">from torch.utils.data import Dataset\n\n# 一个能够实现所指定 transform 方法的自定义 Dataset\nclass MyTransformedDataset(Dataset):\n    def __init__(self, data, labels, transform=None):\n        self.data = data            # 通常为 torch.Tensor 或 numpy.ndarray\n        self.labels = labels\n        self.transform = transform  # 可以传入任何函数或预定义的 torchvision.transforms 组合\n\n    def __len__(self):\n        return len(self.data)\n\n    def __getitem__(self, idx):\n        x = self.data[idx]\n        y = self.labels[idx]\n\n        # 在此应用 transform（如归一化、随机旋转等）\n        if self.transform:\n            x = self.transform(x)\n\n        # 可以返回任意 Python 基本类型，如包含两个数据的 tuple\n        return x, y\n\n# 定义一个变换流程（示例：归一化）\nmy_transform = lambda x: (x - x.mean()) \u002F x.std()\n\n# 构造伪数据\nX = torch.randn(1000, 10)\ny = torch.randint(0, 2, (1000,))\n\ndataset = MyTransformedDataset(X, y, transform=my_transform)\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4 id=\"使用dataloader\">\u003Ca class=\"anchor\" href=\"#使用dataloader\" aria-label=\"跳转到标题：使用DataLoader\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>使用DataLoader\u003C\u002Fh4>\u003Cpre>\u003Ccode class=\"language-python\">from torch.utils.data import DataLoader\n\n# 紧接着上述自定义 dataset 示例\nloader = DataLoader(dataset, batch_size=32, shuffle=True)\n\n# 模拟训练循环中使用 DataLoader\nfor batch_idx, (batch_x, batch_y) in enumerate(loader):\n    # 打印每个 batch 的基本信息\n    print(f&quot;Batch {batch_idx}:&quot;)\n    print(&quot;  X shape:&quot;, batch_x.shape)\n    print(&quot;  y shape:&quot;, batch_y.shape)\n    print(&quot;  X sample:&quot;, batch_x[0])\n    print(&quot;  y sample:&quot;, batch_y[0])\n\n    # 这里可以插入模型 forward \u002F loss \u002F backward \u002F optimizer 等逻辑\n    # output = model(batch_x)\n    # loss = criterion(output, batch_y)\n    # ...\n\n    if batch_idx &gt;= 2:\n        break  # 这里只演示前几个 batch，避免输出过长\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3 id=\"4-huggingface-transformers-开箱即用的nlp工具\">\u003Ca class=\"anchor\" href=\"#4-huggingface-transformers-开箱即用的nlp工具\" aria-label=\"跳转到标题：4. HuggingFace Transformers：开箱即用的NLP工具\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>4. HuggingFace Transformers：开箱即用的NLP工具\u003C\u002Fh3>\u003Cp>HuggingFace Transformers库提供了多种预训练模型和开箱即用的API。\u003C\u002Fp>\n\u003Ch4 id=\"推理示例\">\u003Ca class=\"anchor\" href=\"#推理示例\" aria-label=\"跳转到标题：推理示例\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>推理示例\u003C\u002Fh4>\u003Cpre>\u003Ccode class=\"language-python\">import torch\nfrom transformers import AutoTokenizer, AutoModelForSequenceClassification\n\n# 情感分析任务示例\ncheckpoint = &quot;distilbert-base-uncased-finetuned-sst-2-english&quot;\ntokenizer = AutoTokenizer.from_pretrained(checkpoint)\nmodel = AutoModelForSequenceClassification.from_pretrained(checkpoint).cuda()\nmodel.eval()\n\ntexts = [\n    &quot;This library is extremely useful.&quot;,\n    &quot;This is a terrible user experience.&quot;\n]\n\ninputs = tokenizer(texts, padding=True, truncation=True, return_tensors=&quot;pt&quot;)\ninputs = {k: v.cuda() for k, v in inputs.items()}\n\nwith torch.no_grad():\n    outputs = model(**inputs)\n\n# logits: (batch, num_labels)\nlogits = outputs.logits\nprobs = torch.softmax(logits, dim=-1)\n\n# 概率输出\nprint(logits.shape, probs)\n\n# 把概率映射回标签名\nid2label = model.config.id2label\npred_ids = probs.argmax(dim=-1).tolist()\npreds = [(texts[i], id2label[pred_ids[i]], float(probs[i, pred_ids[i]].cpu())) for i in range(len(texts))]\npreds\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4 id=\"使用预训练模型进行文本生成\">\u003Ca class=\"anchor\" href=\"#使用预训练模型进行文本生成\" aria-label=\"跳转到标题：使用预训练模型进行文本生成\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>使用预训练模型进行文本生成\u003C\u002Fh4>\u003Cpre>\u003Ccode class=\"language-python\">\nfrom transformers import AutoTokenizer, AutoModelForCausalLM\n\n# 文本生成任务示例\ncheckpoint = &quot;Qwen\u002FQwen3-0.6B&quot;\ntokenizer = AutoTokenizer.from_pretrained(checkpoint)\nmodel = AutoModelForCausalLM.from_pretrained(checkpoint).cuda()\nmodel.eval()\n\nprompt = &quot;讲一个故事：&quot;\ninputs = tokenizer(prompt, return_tensors=&quot;pt&quot;)\ninputs = {k: v.cuda() for k, v in inputs.items()}\n\nwith torch.no_grad():\n    generated = model.generate(\n        **inputs,\n        max_new_tokens=60,\n        do_sample=True,\n        temperature=0.9,\n        top_p=0.95\n    )\n\ntext_out = tokenizer.decode(generated[0], skip_special_tokens=True)\ntext_out\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3 id=\"课程收获\">\u003Ca class=\"anchor\" href=\"#课程收获\" aria-label=\"跳转到标题：课程收获\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>课程收获\u003C\u002Fh3>\u003Cp>通过本课程，你将能够：\u003C\u002Fp>\n\u003Col>\n\u003Cli>理解PyTorch的核心概念与数据结构\u003C\u002Fli>\n\u003Cli>掌握Tensor的基本操作与计算\u003C\u002Fli>\n\u003Cli>构建自定义神经网络模型\u003C\u002Fli>\n\u003Cli>使用Dataset和DataLoader进行数据处理\u003C\u002Fli>\n\u003Cli>调用预训练模型进行快速推理\u003C\u002Fli>\n\u003Cli>为后续的大模型开发与训练打下坚实基础\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3 id=\"课程预告\">\u003Ca class=\"anchor\" href=\"#课程预告\" aria-label=\"跳转到标题：课程预告：\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>\u003Cstrong>课程预告\u003C\u002Fstrong>：\u003C\u002Fh3>\u003Cp>后续课程将深入讲解大模型训练、推理与优化技术，包括分布式训练、推理性能调优等主题课程。\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_01_zw6.jpg?Expires=1792752826&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=epXM94790JRyVZK5KPiIf95EZZQ%3D\" alt=\"\">\u003C\u002Fp>\n\u003Cp>\u003Cstrong>InfiniTensor大模型与人工智能系统训练营\u003C\u002Fstrong>，助你从基础到前沿，掌握大模型相关核心技能！\u003C\u002Fp>\n\u003Ch3 id=\"学习贴士\">\u003Ca class=\"anchor\" href=\"#学习贴士\" aria-label=\"跳转到标题：💡 学习贴士\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>💡 学习贴士\u003C\u002Fh3>\u003Cp>更多细节及完整课程内容，请观看直播或查看课程回放。\u003C\u002Fp>\n\u003Cp>链接：\u003Ca href=\"https:\u002F\u002Fwww.infinitensor.com\u002Fcamp\u002Fwinter2025\">https:\u002F\u002Fwww.infinitensor.com\u002Fcamp\u002Fwinter2025\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3 id=\"训练营报名持续进行中\">\u003Ca class=\"anchor\" href=\"#训练营报名持续进行中\" aria-label=\"跳转到标题：📚 训练营报名持续进行中\">\u003Cspan class=\"octicon octicon-link\">\u003C\u002Fspan>\u003C\u002Fa>📚 训练营报名持续进行中\u003C\u002Fh3>\u003Cp>扫码报名与加入群聊，或点击 \u003Cstrong>「阅读原文」\u003C\u002Fstrong> 直达官网报名\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Foss.infinitensor.com\u002Fprod\u002Fimages\u002FKnowledge_Base\u002FKB_01_zw7.jpg?Expires=1792752826&OSSAccessKeyId=LTAI5t9R6uzvTa69CT92cFvV&Signature=T6W1BlHdoBa2bd0P%2B0OABUI5sTc%3D\" alt=\"\">\u003C\u002Fp>\n",[128,131,133,136,140,143,146,149,151,154,157,160,163,166,168,170,172,175,178],{"id":129,"text":130,"level":110},"为什么选择pytorch","为什么选择PyTorch？",{"id":132,"text":132,"level":110},"课程内容概览",{"id":134,"text":135,"level":9},"1-pytorch核心概念-tensor","1. PyTorch核心概念：Tensor",{"id":137,"text":138,"level":139},"tensor的构造方式","Tensor的构造方式",4,{"id":141,"text":142,"level":139},"tensor的基本属性","Tensor的基本属性",{"id":144,"text":145,"level":139},"tensor的计算操作","Tensor的计算操作",{"id":147,"text":148,"level":9},"2-神经网络构建-nn-module","2. 神经网络构建：nn.Module",{"id":150,"text":150,"level":139},"自定义线性层示例",{"id":152,"text":153,"level":139},"使用内置模块构建mlp","使用内置模块构建MLP",{"id":155,"text":156,"level":9},"3-数据处理-dataset与dataloader","3. 数据处理：Dataset与DataLoader",{"id":158,"text":159,"level":139},"自定义dataset","自定义Dataset",{"id":161,"text":162,"level":139},"使用dataloader","使用DataLoader",{"id":164,"text":165,"level":9},"4-huggingface-transformers-开箱即用的nlp工具","4. HuggingFace Transformers：开箱即用的NLP工具",{"id":167,"text":167,"level":139},"推理示例",{"id":169,"text":169,"level":139},"使用预训练模型进行文本生成",{"id":171,"text":171,"level":9},"课程收获",{"id":173,"text":174,"level":9},"课程预告","课程预告：",{"id":176,"text":177,"level":9},"学习贴士","💡 学习贴士",{"id":179,"text":180,"level":9},"训练营报名持续进行中","📚 训练营报名持续进行中"]