Commit Graph

10 Commits

Author SHA1 Message Date
kingecg 28cf1f533a ```
test(model): 修复矩阵形状不匹配的测试用例

- 将bias从vector改为1x2矩阵以匹配输出形状
- 更新梯度初始化为矩阵格式而非向量
- 修改输入数据创建方式,使用NewMatrix替代NewVector
- 调整期望输出计算逻辑以正确处理矩阵运算

fix(optimizer): 修复Adam优化器在矩阵参数下的索引访问

- 添加对1维和2维形状的分别处理逻辑
- 修正一阶矩和二阶矩估计的索引访问方式
- 确保矩阵参数的每个元素都能正确更新

test(optimizer): 增强优化器测试覆盖矩阵参数场景

- 添加矩阵参数的Adam优化器测试用例
- 验证内部状态矩阵形状与参数保持一致
- 确保参数沿梯度反方向正确更新
```
2026-01-01 15:44:04 +08:00
kingecg 16c2277474 ```
feat(examples): 更新simple_model_example.go以使用gomatrix包

- 导入gomatrix包替代部分gotensor功能
- 修改权重张量梯度初始化使用gomatrix.NewZeros
- 更新must函数为泛型实现
- 重构损失函数实现使用gomatrix操作
- 优化输出格式化避免重复数据访问

refactor(model_test): 更新测试用例使用gomatrix构造函数

- 修改TestSequential测试使用gomatrix.NewMatrix和gomatrix.NewVector
- 更新TestSaveLoadModel测试使用gomatrix构造函数
- 修改TestLinearLayer测试使用NewTensor构造权重矩阵

refactor(trainer_test): 将Must函数改为泛型实现

- 更新Must函数为泛型版本支持任意类型
```
2026-01-01 15:14:10 +08:00
程广 9aa53cbd5c ```
feat: 添加高级优化器示例和简单模型示例

添加了 advanced_optimizer_example.go 和 simple_model_example.go
两个示例文件,演示了不同优化器的使用方法和简单模型的训练过程。

同时添加了模型、优化器和训练器的单元测试文件,包括:
- model_test.go: 测试Sequential模型、模型保存加载功能和线性层
- optimizer_test.go: 测试SGD和Adam优化器功能
- trainer_test.go: 测试训练器的基本功能和完整训练过程

更新了go.mod和go.sum中的gomatrix依赖版本。
```
2025-12-31 17:52:34 +08:00
程广 6afb8362ac ```
refactor(examples): 重命名CNN示例文件为目录结构

将 cnn_example.go 文件移动到 cnn_example 目录中,以更好地组织示例代码结构。
```
2025-12-31 14:46:16 +08:00
程广 fcc2e54144 ```
feat: 添加模型定义、优化器和训练器功能

- 实现Model接口和Sequential序列模型,支持模型定义和前向传播
- 添加SGD和Adam优化器,支持参数更新和梯度清零
- 创建Trainer训练器,提供完整的训练和评估流程
- 实现模型保存和加载功能,支持参数序列化
- 更新README文档,添加模型训练示例和API文档
- 重构README中的功能特性和示例代码
```
2025-12-31 14:45:29 +08:00
kingecg 3e9e913dd4 ```
feat(tensor): 添加激活函数、卷积池化和神经网络层功能

- 新增Sigmoid、ReLU、Softmax等激活函数
- 实现Conv2D、MaxPool2D、AvgPool2D等卷积和池化操作
- 添加Flatten层和CrossEntropy、MeanSquaredError等损失函数
- 更新README文档,添加CNN示例说明
- 扩展API文档,详细说明新增功能的使用方法
```
2025-12-30 23:29:24 +08:00
kingecg fd232d65fa ```
feat(examples): 更新CNN示例中的全连接层实现

- 修复权重矩阵大小计算,根据展平后的实际大小动态创建权重
- 添加张量重塑逻辑,将展平后的张量转换为正确的2D格式进行矩阵乘法
- 使用动态生成的权重值替代固定的权重数组
- 确保矩阵乘法维度匹配:(1, N) * (N, 2) = (1, 2)
```
2025-12-30 23:23:51 +08:00
kingecg 3536fdf8cf ```
feat(tensor): 添加卷积和池化操作支持

新增Conv2D、MaxPool2D和AvgPool2D方法,支持二维卷积神经网络操作。
实现了前向传播和反向传播功能,包括梯度计算。

feat(layers): 添加激活函数和损失函数

新增Softmax、Sigmoid、ReLU激活函数和CrossEntropy、MSE损失函数。
实现了展平层Flatten操作,支持多维张量展平为一维。

test(tensor): 添加扩展张量操作的单元测试

新增Sigmoid、ReLU、Softmax、Flatten和MeanSquaredError的测试用例。
验证激活函数和损失函数的正确性及数值稳定性。

example(cnn): 添加卷积神经网络示例

创建CNN示例程序,演示卷积、池化、激活函数等操作的使用。
包含完整的前向传播流程和损失计算示例。
```
2025-12-30 23:18:07 +08:00
kingecg 9d6d4bdf56 ```
docs: 添加项目文档和示例代码

添加了完整的项目文档,包括README.md文件,详细介绍gotensor库的功能特性、
安装方法和使用示例。同时添加了多个示例程序展示基本运算、自动微分和线性
回归功能,并完善了测试用例。

- 添加LICENSE文件(MIT许可证)
- 添加README.md项目文档
- 添加基本运算示例
- 添加自动微分示例
- 添加线性回归示例
- 添加单元测试文件
```
2025-12-30 23:03:54 +08:00
kingecg 2da5bc6ece ```
feat: 初始化Go张量库基础实现

- 添加Tensor数据结构定义,包含数据、梯度和反向传播相关字段
- 实现基本张量操作:加法、减法、乘法、矩阵乘法和数乘
- 实现张量创建函数:全零、全一、单位矩阵
- 实现反向传播机制和梯度计算
- 添加.go文件到gitignore以忽略vendor目录
- 配置go模块依赖和版本信息
```
2025-12-30 22:49:34 +08:00