Skip to content

sshockwave/OOP-ComputationalGraph1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OOP计算图大作业

项目地址:https://github.com/sshockwave/OOP-ComputationalGraph1

该项目在第一阶段结束后开源

测试状态:CircleCI

文档

编译代码

支持在Windows和Linux下编译,需要安装至少支持C++14的g++和make。

运行:

make

即可完成编译。

有可能需要根据运行环境设置Makefile中的$(CXX)变量,该变量为使用的编译器可执行文件。可以在Makefile中调整编译选项$(CXX_FLAGS)

程序生成步骤:

  1. 生成.d依赖关系文件到dep/目录;
  2. 再生成.o二进制文件到bin/中;
  3. 生成各个任务的主程序为test/{task_name}/main;其中{task_name}为任务名称,具体实现了的任务见文档和test/目录。

运行程序

基础部分的三个程序main1main2main3在项目根目录下生成。其他程序见对应test目录。

以Linux为例:

# 运行第一阶段主程序
./main1
# 运行第二阶段主程序
./main2
# 运行牛顿迭代法
./main3
# 运行梯度下降法
test/gradient_descent/main

测试程序

自动化测试需要在linux环境下进行。需要python3来运行测试的checker,需要python中的numpy库来校验梯度下降法的答案。

测试所有程序:

make test

如需单独测试:

# 测试第一阶段主程序
make test/stage1/run
# 测试第二阶段主程序
make test/stage2/run
# 测试牛顿迭代法
make test/newton/run
# 测试梯度下降法
make test/gradient_descent/run