深度学习代码与前端代码区别

深度学习的代码能力与开发后台或者前端的工程代码能力不是一个概念。

写前端代码:脑海中是整个工程的架构,写代码则是把这些架构用 code 具体化。

写深度学习代码:脑海中浮现的是整个网络框架,以及网络框架中的流动的gradient,当你可以熟练地在脑中模拟流动的gradient,你就可以实现任何复杂的idea,甚至独立去实现一些现有框架所不包含的结构。

提升深度学习代码能力的方法

1.详细理解每一个深度学习模块的功能,实现细节:

找github上的代码,打印一份纸质版出来,用pycharm这类软件debug模式运行,一行一行跑,每步跑完查看生成的新变量,包括数据类型,具体数值,适当在纸上做做标注和笔记。再结合具体的paper来理解,进步会很快。

2.在1的基础上独立实现一些简单的深度学习框架:

本人从Andrej Karpathy的convnet.js学习了很多;基本可以 from scratch的撸一个可以用的动态图的深度学习框架(当然效率远不如现成大库pyTorch,TensorFlow等)

3.在2的学习过程中或者更好地是快速学习完成之后,开始着手研究自己领域的相关论文,手动实现论文中的算法,并和论文开源代码的最后结果进行比较,以验证自己写得正确。

4.进入正循环阶段,读paper,写code,想idea,写code…

其他

写深度学习的代码第一个感觉就是跟普通的业务代码不一样,普通业务代码写的至少有思路,最多就是麻烦。

但深度学习的代码实在复杂的多,而且比较麻烦。对新手最难理解就是张量,如果之前接触过Matlab的矩阵操作会感到很难理解。但如果接触过python的列表就容易理解了,简单理解就是高维数据的表达方式。在loss函数需要的就是张量的操作,如果单看代码不可能理解究竟做了什么,所以最好就是运行一遍看看结果是什么。

如果看过著名的网络代码,就发现有各种文件,数据,模型,训练,预测,日志,配置,把很多人都搞得蒙了,其实一个完整的模型不需要这么多东西,这么多是为了别人能只修改几个参数就能轻易使用。所以一开始不需要这么复杂,数据集,模型,训练,预测就行了。

当然,起步肯定要看别人写好的代码,熟悉设计思路。只看代码是不够的,如果不想只做一个下代码,调参数的,推荐参加kaggle比赛,也可以看别人的论文,尝试自己复现。复现会比较难,推荐先看写好的代码,然后自己不看只通过记忆复现。

参考

1.深度学习研究生如何快速提升代码能力,写出高效的代码?

深度学习研究生如何快速提升代码能力,写出高效的代码?相关推荐

  1. 如何写出高效的代码?(持续更新)

    一.写代码之前应该做什么? 先分析这个需求是不是很复杂,如果复杂就需要严格按照下面的1.2.3步骤进行.否则可以直接去第3步骤. 1.画功能模块图 因为现在大部分企业都是面向需求开发,功能模块图可以让 ...

  2. 【通知】深度学习之模型设计书籍勘误汇总!附赠资源和代码开源问题

    大家好,新书<深度学习之模型设计>上市已经两个星期了,详情如下: 言有三新书来袭!业界首次深入全面讲解深度学习模型设计 由于个人精力和能力,以及排版编辑流程问题,书中难免会有一些错误,这一 ...

  3. 【完结】给新手的12大深度学习开源框架快速入门项目

    文/编辑 | 言有三 这是一篇总结文,给大家来捋清楚12大深度学习开源框架的快速入门,这是有三AI的GitHub项目,欢迎大家star/fork. https://github.com/longpen ...

  4. 深度学习目标检测:YOLOv5实现车辆检测(含车辆检测数据集+训练代码)

    深度学习目标检测:YOLOv5实现车辆检测(含车辆检测数据集+训练代码) 目录 深度学习目标检测:YOLOv5实现车辆检测(含车辆检测数据集+训练代码) 1. 前言 2. 车辆检测数据集说明 (1)车 ...

  5. 自媒体爆文怎么写?学会拆解优秀文章,快速提升写作能力

    很多人都觉得自媒体写作很难,尤其是对于写作功底比较差的人来说,一听到写文章就怕了.其实,自媒体写作和常规写作是有区别的.学会拆解优秀文章是快速提升写作能力的最佳方法之一.今天就通过拆解文章来给大家介绍 ...

  6. 深度学习框架PyTorch快速开发与实战

    深度学习框架PyTorch快速开发与实战 邢梦来,王硕,孙洋洋 著 ISBN:9787121345647 包装:平装 开本:16开 用纸:胶版纸 正文语种:中文 出版社:电子工业出版社 出版时间:20 ...

  7. 深度学习时间序列预测:GRU算法构建单变量时间序列预测模型+代码实战

    深度学习时间序列预测:GRU算法构建单变量时间序列预测模型+代码实战 GRU(Gate Recurrent Unit)是循环神经网络(Recurrent Neural Network, RNN)的一种 ...

  8. 深度学习之循环神经网络(11-b)GRU情感分类问题代码

    深度学习之循环神经网络(11-b)GRU情感分类问题代码 1. Cell方式 代码 运行结果 2. 层方式 代码 运行结果 1. Cell方式 代码 import os import tensorfl ...

  9. 深度学习之循环神经网络(11-a)LSTM情感分类问题代码

    深度学习之循环神经网络(11-a)LSTM情感分类问题代码 1. Cell方式 代码 运行结果 2. 层方式 代码 运行结果 1. Cell方式 代码 import os import tensorf ...

最新文章

  1. python神经网络风格_[Deep-Learning-with-Python]使用LSTM生成尼采风格文章
  2. spring jmx_JMX和Spring –第3部分
  3. 【Tools】ubuntu16.04升级Python2.7到3.5
  4. 软件测试的出路到底在哪?
  5. php用vscode开发,VSCode PHP开发
  6. element布局容器大小_Element-UI 技术揭秘(4)— Container 布局容器组件的设计与实现。...
  7. 如何定时唤醒计算机命令,如何设置定时开机 定时开机命令设置方法
  8. 康熙字典214个部首CJK编码
  9. 设计模式之--生成器模式与抽象工厂模式的比较
  10. android数据适配器参数,Android 万能适配器BRVAH
  11. 微电网逆变器VF控制_SIMULINK_模型搭建详解_附加“仿真教程”
  12. CSS3时光流逝效果
  13. 解决 login.live.com onedrive.live.com 等微软国外网站打不开问题
  14. 思科EA3500官方固件刷opwrt教程
  15. 高配游戏组装电脑配置清单表 2021 组装电脑配置推荐2021
  16. Linux网络通讯命令大全
  17. javascript运行机制
  18. JAVAWeb开发:Tomcat出现The origin server did not find a current representation for the target reso...的问题
  19. 学 Python 都用来干嘛的?
  20. Java学习之旅(一):探索extends

热门文章

  1. MYSQL高级篇-----索引优化分析
  2. 系统学习机器学习之SVM(四)--SVM算法总结
  3. Xavier 下GMSL相机ROS驱动发布CompressedImage消息(基于NVJPG硬件编码)
  4. Word中使用交叉引用插入多个参考文献
  5. 敏捷考证?你应该知道的敏捷体系认证名单(最全整理)
  6. 小新Air15的USB接口只能充电,不能传送数据
  7. 【畅购商城】用户登录
  8. 线性插值函数的基函数构造
  9. WPF学习之深入浅出话命令
  10. oppor9桌面布局设置_oppor9添加桌面图标