- github地址:https://github.com/minitorch/Module-0
- 参考答案地址:https://github.com/Cornell-Tech-ML/minitorch-0-MCLYang
- classroom地址:https://github.com/shaiic/minitorch-module-0-CastleDream
这个classroom地址记录给自己看的,一般人应该没有权限看
只记录几点需要注意的。
1. streamlit执行的问题
streamlit run app.py -- 0
中执行的app.py
脚本文件位于\minitorch-module-0-CastleDream\project\
这个文件夹中,不是整个repo的根目录- 同时,需要提前安装torch,因为这里引用了torch。
pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple
2. 任务完成后,检查代码
执行代码,参考:style
第一步:
# 检查全部
black .
# 也可以只检查特定的几个文件
black minitorch/ tests/ project/
优化代码格式,加空格啥的,输出类似这样
第二步:
flake8
# 也可以只检查特定的几个文件
flake8 minitorch/ tests/ project/
也是检测代码格式
第三步:
# 可以直接测试一整个project
pytest -m task0_1
- 进行单元测试/属性测试
- PyTest默认会测试名称中包含
test
的文件和包含test
函数/类等 - 执行成功的话,结果类似:
如果有问题,就会显示错误,根据提示去修改就好了。
值得注意的有一点:
这个提示的意思是,函数的Docstring
中没有出现对参数的解释,例如:
def test_sigmoid(a):
r"""Check properties of the sigmoid function, specifically
* It is always between 0.0 and 1.0.
* one minus sigmoid is the same as negative sigmoid
* It crosses 0 at 0.5
* it is strictly increasing.
"""
# TODO: Implement for Task 0.2.
raise NotImplementedError('Need to implement for Task 0.2')
python中,函数体中以三组双引号括起来的内容就是Docstring
,可以看到,对应于上面的第一个问题,就是Docstring
中没有出现参数a
,可以直接删除docstring,或者自己在docstring中补上关于这个参数的解释。
3. 提交作业,查看分数
在项目的action中,就可以看到提交的情况,点进去,就可以看到评分情况了。
5. black库总是丢失,需要重复安装
还有一个很奇葩的问题,
# 执行下面的代码
python -m pip install -r requirements.txt
会安装black这个包,而且就是requirements文件中要求的版本
同时在最后的提示信息里,也说安装好了
但是去找的时候,找不到,而且安装的时候,还可以再安装一个新版本。。
6. 可视化
streamlit run app.py -- {
{
module number}}
# --和模块编号之间有个空格
例如,streamlit run app.py -- 0
,就会看到如下显示
还有这种损失函数结果的绘图。可以学习一下项目中关于streamlit的使用。
7. 一些需要理解的东西
包括python的函数式编程,python的魔法函数等。记录在了另一些博客中
参考:
+