问题如题:

设计和实现AI算法算法时有没有必要在代码中加注释,没有用必要在实现之前弄个UML图???

今天看到一个博文:

https://www.cnblogs.com/siyuanwai/p/15432932.html

里面又怎一端话:

看了这段话后我有了一些想法。

现在的AI算法发展的十分迅速以至于很多AI算法不再只停留于算法层面,在某种意义上来说现在的很多AI算法都可以用AI系统工程或是AI工程来描述,总的来说现在的AI算法不同于传统的AI算法,不再是那种结构单一、逻辑简单、代码量较少的那种小体积的代码结构。现在的很多AI算法都是有多个组成部分,而每个组成部分又可能接着细分,最终的子组成部分可能才是传统意义上的算法,在这种情况下还用传统的算法编写方法来编写代码很难适应现在的情况,即使算法的最初面对者是学术界的,即使这些算法并没有工程方面的要求,但是这么复杂的,这么大体积的算法可能用工程项目来说更为贴切。

复杂的AI算法与其说是算法不如说是AI算法工程项目更为贴切。

就像本文题目中所说的,AI算法需要不需要在代码中加注释,需要不需要在算法代码编写之前使用UML这类的软件需求或结构设计软件进行下规划呢。(特殊说明下,这里并不是说要用UML设计一个完整的流程,因为这个用不到,再复杂的AI算法项目最终面对的往往也不是最终用户,最终面对的也还是算法本身,所以我们往往需要设计一些各个算法子组成部分间的关系结构可能就可以了)

说下个人观点:对于越来越庞杂的AI算法项目,在编写代码之前做好一定的设计分析工作,如使用UML中的类图之类的分析设计图即可,在编写具体的AI算法项目的代码时也加入适当的注释,毕竟代码量大了,逻辑复杂了,往往没有注释的情况下是难以解读的。要是以前的较短代码量的算法代码没有注释也是能够接受的,现在的AI算法项目代码量大的惊人,逻辑结构也搞的错综复杂,如果没有一点软件工程的知识来支撑是难以编写出具有可读性的AI代码的,同时现在的AI研究在学术界还是工程界都是需要不对的调参,不断的优化,不断的改进的,如果代码设计之初就没有构建清楚整个项目的代码结构,那么后期的优化改进就会变得像打补丁一样折磨人。可以说不好的项目代码架构设计,不好的编码风格,没有适当的代码注释,这些问题不仅仅是开发工程师的噩梦同时也是AI算法开发工程师的噩梦。现在的AI算法在代码量和代码变更程度上更像是开发项目而不是传统的那种小代码量的算法,因此使用适当的项目开发技术作为支撑是很有必要的。

最后给出我很认同的一句话:

编写高质量可维护的代码是程序员的基本修养。

同时我也认为编写高质量的代码不仅仅是程序员的基本要求同时也是AI工作者的基本要求,AI工作者在编写AI算法程序时保证良好的代码质量也是十分必要的。

====================================================

python 官方给出的编程规范:

https://www.python.org/dev/peps/pep-0008/

设计和实现AI算法算法时有没有必要在代码中加注释,没有用必要在实现之前弄个UML图???的更多相关文章

  1. Linux内核设计第四周学习总结 使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用

    陈巧然原创作品 转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 实验目的: 使用库函数A ...

  2. 贝叶斯公式由浅入深大讲解—AI基础算法入门

    1 贝叶斯方法 长久以来,人们对一件事情发生或不发生的概率,只有固定的0和1,即要么发生,要么不发生,从来不会去考虑某件事情发生的概率有多大,不发生的概率又是多大.而且概率虽然未知,但最起码是一个确定 ...

  3. 贝叶斯公式由浅入深大讲解—AI基础算法入门【转】

    本文转载自:https://www.cnblogs.com/zhoulujun/p/8893393.html 1 贝叶斯方法 长久以来,人们对一件事情发生或不发生的概率,只有固定的0和1,即要么发生, ...

  4. 2018科大讯飞AI营销算法大赛全面来袭,等你来战!

    AI技术已成为推动营销迭代的重要驱动力.AI营销高速发展的同时,积累了海量的广告数据和用户数据.如何有效应用这些数据,是大数据技术落地营销领域的关键,也是检测智能营销平台竞争力的标准. 讯飞AI营销云 ...

  5. 实践案例丨基于ModelArts AI市场算法MobileNet_v2实现花卉分类

    概述 MobileNetsV2是基于一个流线型的架构,它使用深度可分离的卷积来构建轻量级的深层神经网,此模型基于 MobileNetV2: Inverted Residuals and Linear ...

  6. 3.5星|《算法霸权》:AI、算法、大数据在美国的阴暗面

    算法霸权 作者在华尔街对冲基金德绍集团担任过金融工程师,后来去银行做过风险分析,再后来去做旅游网站的用户分析.后来辞职专门揭露美国社会生活背后的各种算法的阴暗面. 书中提到的算法的技术缺陷,我归纳为两 ...

  7. 十大经典排序算法详细总结(含JAVA代码实现)

    原文出处:http://www.cnblogs.com/guoyaohua/p/8600214.html 0.排序算法说明 0.1 排序的定义 对一序列对象根据某个关键字进行排序. 0.2 术语说明 ...

  8. 【优化算法】Greedy Randomized Adaptive Search算法 超详细解析,附代码实现TSP问题求解

    01 概述 Greedy Randomized Adaptive Search,贪婪随机自适应搜索(GRAS),是组合优化问题中的多起点元启发式算法,在算法的每次迭代中,主要由两个阶段组成:构造(co ...

  9. JAVA十大经典排序算法最强总结(含JAVA代码实现)

    0.排序算法说明 0.1 排序的定义 对一序列对象根据某个关键字进行排序. 0.2 术语说明 稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面: 不稳定:如果a原本在b的前面,而a=b,排 ...

  10. 从算法入手讲解如何在SQL Server中实现最优最简

    算法是计算机科学中一个重要的研究方向,是解决复杂问题的关键.在计算机世界中,算法无处不在.数据库是存储数据和执行大批量计算的场所,在数据库中使用一些简单的SQL命令,进行存储.查询.统计.以解决现实世 ...

随机推荐

  1. Android开发基础——真机测试错误,ADB启动不了,程序安装不了,the connection to adb is down,INSTALL_CANCELED_BY_USER...

    在Android开发中,无论是真机测试还是AVD测试,都会报出这些错误.在这里,我会详细说明一下怎么会出现这些错误的,然后要怎么样才能解决这些错误. 错误一: The connection to ad ...

  2. 快速识别你家的猫猫狗狗,教你用ModelBox开发AI萌宠应用

    本文分享自华为云社区<ModelBox-AI应用开发:动物目标检测[玩转华为云]>,作者:阳光大猫. 一.准备环境 ModelBox端云协同AI开发套件(Windows)环境准备[视频教程 ...

  3. wpfui:一个开源免费具有现代化设计趋势的WPF控件库

    wpfui介绍 wpfui是一款开源免费(MIT协议)具有现代化设计趋势的WPF界面库.wpfui为wpf的界面开发提供了流畅的体验,提供了一个简单的方法,让使用WPF编写的应用程序跟上现代设计趋势. ...

  4. fastadmin的导出到excel功能

    正常的excel导出没什么问题,最近一直头疼的是怎么导出数据中包含图片,并且图片还是数组?????by user 悦悦 https://www.cnblogs.com/nuanai 1.导出的exce ...

  5. 12-Python数据库访问

    在CentOS7上安装Mariadb https://blog.csdn.net/NetRookieX/article/details/104734181 常用的增删改查 show databases ...

  6. C++类与对象详解

    什么是类和对象 类和对象的概念 类是对象的抽象,对象是对客观事物的抽象. 用通俗的话来说: 类是类别的意思,是数据类型. 对象是类别下的具体事物. 也就是说: 类是数据类型,对象是变量. 比如: 水果 ...

  7. Java开发者的神经网络进阶指南:深入探讨交叉熵损失函数

    前言 今天来讲一下损失函数--交叉熵函数,什么是损失函数呢?大体就是真实与预测之间的差异,这个交叉熵(Cross Entropy)是Shannon信息论中一个重要概念,主要用于度量两个概率分布间的差异 ...

  8. Linux驱动中的异步函数(aio_read和aio_write)

    Linux驱动中的异步函数(aio_read和aio_write) 我们可以在signal_handler使用了read和write函数处理设备文件的读写操作.然而这两个函数可以分别用aio_read ...

  9. ARM+DSP!全志T113-i+玄铁HiFi4开发板硬件说明书(1)

    前 言 本文档主要介绍开发板硬件接口资源以及设计注意事项等内容,测试板卡为全志T113-i+玄铁HiFi4开发板.由于篇幅问题,本篇文章共分为上下两集,点击账户可查看更多内容详情,开发问题欢迎留言,感 ...

  10. AT_abc318_g 题解

    因为是图上路径是否经过某个点的问题,所以考虑建出圆方树,然后根据圆方树的性质,\(a\) 到 \(c\) 存在经过 \(b\) 的路径等价于 \(a,c\) 在圆方树上的路径经过 \(b\) 或者 \ ...