From 3e9e913dd4a8553798954cd768467e0c5c836117 Mon Sep 17 00:00:00 2001 From: kingecg Date: Tue, 30 Dec 2025 23:29:24 +0800 Subject: [PATCH] =?UTF-8?q?```=20feat(tensor):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=BF=80=E6=B4=BB=E5=87=BD=E6=95=B0=E3=80=81=E5=8D=B7=E7=A7=AF?= =?UTF-8?q?=E6=B1=A0=E5=8C=96=E5=92=8C=E7=A5=9E=E7=BB=8F=E7=BD=91=E7=BB=9C?= =?UTF-8?q?=E5=B1=82=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增Sigmoid、ReLU、Softmax等激活函数 - 实现Conv2D、MaxPool2D、AvgPool2D等卷积和池化操作 - 添加Flatten层和CrossEntropy、MeanSquaredError等损失函数 - 更新README文档,添加CNN示例说明 - 扩展API文档,详细说明新增功能的使用方法 ``` --- README.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/README.md b/README.md index ab7fb08..7d6b63e 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,9 @@ gotensor 是一个用 Go 语言编写的张量计算库,提供了基本的张 - 基本张量运算:加法、减法、乘法、矩阵乘法等 - 张量操作:数乘、转置等 - 自动微分和反向传播 +- 激活函数:Sigmoid、ReLU、Softmax等 +- 卷积和池化操作:Conv2D、MaxPool2D、AvgPool2D等 +- 神经网络层:Flatten、损失函数等 - 支持多种初始化方式:零张量、单位矩阵、随机张量等 ## 安装 @@ -57,6 +60,7 @@ func main() { - [基本运算示例](examples/basic_operations.go):展示基本的张量运算 - [自动微分示例](examples/autograd_example.go):演示自动微分和反向传播 - [线性回归示例](examples/linear_regression.go):使用 gotensor 实现简单的线性回归 +- [CNN示例](examples/cnn_example.go):使用卷积、池化等操作构建简单的卷积神经网络 运行示例: @@ -69,6 +73,9 @@ go run examples/autograd_example.go # 线性回归示例 go run examples/linear_regression.go + +# CNN示例 +go run examples/cnn_example.go ``` ## API 文档 @@ -88,6 +95,24 @@ go run examples/linear_regression.go - `MatMul(other *Tensor)` - 矩阵乘法 - `Scale(factor float64)` - 数乘 +### 激活函数 + +- `Sigmoid()` - Sigmoid激活函数 +- `ReLU()` - ReLU激活函数 +- `Softmax()` - Softmax激活函数 + +### 卷积和池化 + +- `Conv2D(kernel *Tensor, stride, padding int)` - 二维卷积操作 +- `MaxPool2D(kernelSize, stride int)` - 二维最大池化 +- `AvgPool2D(kernelSize, stride int)` - 二维平均池化 + +### 神经网络层 + +- `Flatten()` - 将多维张量展平为一维 +- `CrossEntropy(target *Tensor)` - 交叉熵损失函数 +- `MeanSquaredError(target *Tensor)` - 均方误差损失函数 + ### 其他方法 - `ZeroGrad()` - 将梯度置零