今天主要完成了高维矩阵乘法的测试工作。编写了多个测试用例,验证了不同维度的矩阵乘法结果是否正确。通过调用Python脚本计算预期结果,并与实际结果进行对比,确保了实现的正确性。修复了一些潜在的错误,优化了代码性能。整体测试结果令人满意,所有测试用例均通过。
今天主要实现了激活函数层的反向传播逻辑。为ReLU、Sigmoid和Tanh激活函数分别编写了反向传播的实现代码。通过单元测试验证了反向传播的正确性,确保了梯度计算的准确性。此外,还对代码进行了重构,提升了代码的可读性和维护性。整体开发进展顺利,所有单元测试均通过。
今天主要完成了线性层的反向传播逻辑。为线性层编写了反向传播的实现代码。通过单元测试验证了反向传播的正确性,确保了梯度计算的准确性。此外,还对代码进行了重构,提升了代码的可读性和维护性。整体开发进展顺利,所有单元测试均通过。
不足之处在于batchsize的实现,目前只支持batchsize=1,目前训练会loss为nan
找到了mnist不收敛的原因,增加了重置所有梯度的方法
总算实现了高速loss下降,同时dropout层也完成了反向传播
Hogwilds无锁更新参数 由于深度学习模型通常具有一定的容错性,以及参数维度高、稀疏性等特点,少量的冲突对最终结果影响不大 cpu利用率达到了总cpu的100%
感觉padding是ok 其它的conv、maxpooling不太ok
matrix的M,N,rows,cols这些真容易搞混 比如rows是行数,cols是列数,我还以为rows是每行元素个数 干脆参考tensor,使用shape来表示
重构tensor,支持泛型 优化tensor的运算