GitHub链接

低阶 API, 中阶 API, 高阶 API, 登神长阶 API.

低阶 API

线性回归模型

生成随机测试数据.

n = 400
X = 10*torch.rand([n,2])-5.0 # torch.rand是均匀分布
w0 = torch.tensor([[2.0],[-3.0]])
b0 = torch.tensor([[10.0]])
Y = X@w0 + b0 + torch.normal(0.0,2.0,size = [n,1]) # @表示矩阵乘法,增加正态扰动
阅读全文 »

GitHub链接

Pytorch 的动态计算图.

动态计算图

Pytorch 的计算图由节点和边组成, 节点表示张量或者 Function, 边表示张量和 Function 之间的依赖关系.

Pytorch 的计算图是动态图:

  • 计算图的正向传播是立即执行的, 无需等待完整的计算图创建完毕, 每条语句都会在计算图中动态添加节点和边, 并立即执行正向传播得到计算结果.
  • 计算图在反向传播后立即销毁. 如果在程序中使用了 backward 方法执行了反向传播, 或者利用torch.autograd.grad方法计算了梯度, 那么创建的计算图会被立即销毁, 下次调用需要重新创建.
阅读全文 »

GitHub链接

自动微分机制.

神经网络通常依赖反向传播求梯度来更新网络参数, 求梯度过程通常复杂且易出错, 而深度学习框架可以帮我们自动求梯度.

Pytorch 一般通过反向传播方法求梯度, 该方法求得的梯度存在对应自变量张量的 grad 属性下, 也可以调用torch.autograd.grad函数求梯度.

阅读全文 »

终于拿到了心心念念的 Switch2, 也玩上了心心念念的动森.

下一步准备蹲个便宜点的旷野之息卡带, 主机游戏是真的贵啊. 动森想去别人的岛都得开个 VIP, 唉日本人也太坏了.

其实我有点想在这写点类似开荒日志之类的东西, 想想还是算了, 太蠢了.

GitHub链接

张量的基本概念.

数据类型

张量的数据类型 (dtype) 基本和numpy.array一致, 但不支持 str 类型. 包括:

torch.float64(torch.double),
torch.float32(torch.float),
torch.float16,
torch.int64(torch.long),
torch.int32(torch.int),
torch.int16,
torch.int8,
torch.uint8,
torch.bool

一般使用torch.float32类型.

阅读全文 »

GitHub链接

时间序列数据建模.

准备数据

通过继承 torch.utils.data.Dataset 实现自定义时间序列数据集.

torch.utils.data.Dataset 是一个抽象类, 加载自定义数据只需要继承该类并覆写__len__方法返回数据集大小和__getitem__方法返回第 i 个样本即可.

阅读全文 »

GitHub链接

文本数据建模.

配环境配了一上午, gensim 需要scipy<1.14.0,>=1.7.0, 没有对应的 wheel, pip 决定下载源码自己编译, 然后报了个网上搜不到的罕见错误, 升级了两遍我的 MinGW, 从网上下了个 patch.exe, 装了个 MSYS2, 试图装了 pkg-config 和 openblas, 还把之前卸掉的 visual studio 装了回来, 最后还是没搞好.

然后发现是 python 版本不兼容导致没有 wheel, 换到 python3.10 马上就好了. 吃大份去吧.

阅读全文 »

GitHub链接

图片数据建模.

准备数据

cifar2 数据集包含 5000 张飞机 airplane 照片和 5000 张机动车 automobile 照片, 任务目标是训练一个模型区分 airplane 和 automobile 两种图片.

在 Pytorch 中构建图片数据管道通常有两种方法:

  • 使用 torchvision 中的 datasets.ImageFolder 读取图片, 然后用 DataLoader 并行加载
  • 通过继承 torch.utils.data.Dataset 实现用户自定义读取逻辑, 然后用 DataLoader 并行加载

本文介绍第一种方法.

阅读全文 »

GitHub链接

结构化数据建模.

数据预处理

结构化数据一般会使用 Pandas 中的 DataFrame 进行预处理.

import numpy as np 
import pandas as pd
import matplotlib.pyplot as plt
import torch
from torch import nn
from torch.utils.data import Dataset,DataLoader,TensorDataset
阅读全文 »

2210.03629v3

Abstract

LLM 在语言理解和决策任务中表现出色, 但在推理和行动方面的能力很少被联系起来研究. 本文探讨了如何让 LLM 交错生成推理轨迹和针对任务的特定行动, 从而增强两者之间的协同作用: 推理轨迹帮助模型生成, 追踪并更新行动计划, 处理异常情况, 而特定行动允许模型与外部来源 (知识库或环境) 进行接口交互并获取额外信息. 作者将该方法命名为 ReAct (Reason+Act), 并将其应用于多种语言和决策任务, 展示了它在先进的基准上的有效性和更高的人类可读性与可靠性. ReAct 在问答和事实验证中, 通过和简单的维基百科 API 交互, 在思维链 (CoT) 中克服了普遍存在的幻觉和错误传播问题, 生成了类似人类的解决任务轨迹, 比基准更具可解释性, 不带推理痕迹. 此外, 在两个交互式决策基准测试中, ReAct 的成功率显著超过了模仿和强化学习方法, 只需在 prompt 中给出一两个上下文的例子.

阅读全文 »

丝之歌终于要出了, 我已经记不清我等了几年了. 我是高一玩的空洞, 所以应该是五年左右.

究竟是怎样的结局, 才配得上这一路的颠沛流离😭😭😭

0%