设计和实现AI算法算法时有没有必要在代码中加注释,没有用必要在实现之前弄个UML图???
问题如题:
设计和实现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图???的更多相关文章
- Linux内核设计第四周学习总结 使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
陈巧然原创作品 转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 实验目的: 使用库函数A ...
- 贝叶斯公式由浅入深大讲解—AI基础算法入门
1 贝叶斯方法 长久以来,人们对一件事情发生或不发生的概率,只有固定的0和1,即要么发生,要么不发生,从来不会去考虑某件事情发生的概率有多大,不发生的概率又是多大.而且概率虽然未知,但最起码是一个确定 ...
- 贝叶斯公式由浅入深大讲解—AI基础算法入门【转】
本文转载自:https://www.cnblogs.com/zhoulujun/p/8893393.html 1 贝叶斯方法 长久以来,人们对一件事情发生或不发生的概率,只有固定的0和1,即要么发生, ...
- 2018科大讯飞AI营销算法大赛全面来袭,等你来战!
AI技术已成为推动营销迭代的重要驱动力.AI营销高速发展的同时,积累了海量的广告数据和用户数据.如何有效应用这些数据,是大数据技术落地营销领域的关键,也是检测智能营销平台竞争力的标准. 讯飞AI营销云 ...
- 实践案例丨基于ModelArts AI市场算法MobileNet_v2实现花卉分类
概述 MobileNetsV2是基于一个流线型的架构,它使用深度可分离的卷积来构建轻量级的深层神经网,此模型基于 MobileNetV2: Inverted Residuals and Linear ...
- 3.5星|《算法霸权》:AI、算法、大数据在美国的阴暗面
算法霸权 作者在华尔街对冲基金德绍集团担任过金融工程师,后来去银行做过风险分析,再后来去做旅游网站的用户分析.后来辞职专门揭露美国社会生活背后的各种算法的阴暗面. 书中提到的算法的技术缺陷,我归纳为两 ...
- 十大经典排序算法详细总结(含JAVA代码实现)
原文出处:http://www.cnblogs.com/guoyaohua/p/8600214.html 0.排序算法说明 0.1 排序的定义 对一序列对象根据某个关键字进行排序. 0.2 术语说明 ...
- 【优化算法】Greedy Randomized Adaptive Search算法 超详细解析,附代码实现TSP问题求解
01 概述 Greedy Randomized Adaptive Search,贪婪随机自适应搜索(GRAS),是组合优化问题中的多起点元启发式算法,在算法的每次迭代中,主要由两个阶段组成:构造(co ...
- JAVA十大经典排序算法最强总结(含JAVA代码实现)
0.排序算法说明 0.1 排序的定义 对一序列对象根据某个关键字进行排序. 0.2 术语说明 稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面: 不稳定:如果a原本在b的前面,而a=b,排 ...
- 从算法入手讲解如何在SQL Server中实现最优最简
算法是计算机科学中一个重要的研究方向,是解决复杂问题的关键.在计算机世界中,算法无处不在.数据库是存储数据和执行大批量计算的场所,在数据库中使用一些简单的SQL命令,进行存储.查询.统计.以解决现实世 ...
随机推荐
- 请写出常用的linux指令
a.cd /home 进入 '/ home' 目录' b.cd .. 返回上一级目录 c.cd ../.. 返回上两级目录 d.mkdir dir1 创建一个叫做 'dir1' 的目录' e.mkdi ...
- 增补博客 第二十三篇 python 对比Python中的列表、元组、字典、集合、字符串等之间异同
1. 列表(List): - 异同:列表是可变(Mutable)的有序容器,使用方括号 [] 定义,可以存储任意类型的元素.可以通过索引访问和修改列表中的元素.列表支持切片操作和列表推导式. - 相同 ...
- nexus服务启动/关闭命令
nexus服务启动/关闭命令history | grep nexus # 查看服务器上面的历史请求命令ps -ef | grep nexus 查看进程及目录find / -name 'nexus' # ...
- Kubernetes(二)资源管理
1. 资源管理介绍 在kubernetes中,所有内容都抽象为资源,用户需要操作资源来管理kubernetes. Kubernetes本质上就是一个集群系统,用户可以在集群中部署各种服务,所谓的部署服 ...
- arm linux 移植 SQLite 3
背景 SQLite 是 一个 常用于 嵌入式平台的 轻量级数据库. host平台 :Ubuntu 16.04 arm平台 : S5P6818 SQLite :3.31.1 arm-gcc :4.8.1 ...
- Taro 滚动切换tab页
import React, { Component } from 'react' import { View, Text, ScrollView } from '@tarojs/components' ...
- .Net Core WebAPI Swagger Failed to load API definition
1.错误现象 1.1.写完一个测试API,Ctrl+F5运行,提示错误: Failed to load API definition.(如下图) 1.2.点击 http://localhost:516 ...
- Solo 开发者周刊 (第3期):如何打造令人惊艳的AI体验
这里会整合 Solo 社区每周推广内容.产品模块或活动投稿,每周五发布.在这期周刊中,我们将深入探讨开源软件产品的开发旅程,分享来自一线独立开发者的经验和见解.本杂志开源,欢迎投稿. 好文推荐 Plu ...
- 将mysql的查询结果保存到文件中,并将文件从内网下载到外网服务器
方法一: 直接执行命令: mysql> SELECT ordersid from yws.callback_clockd ORDER BY ordersid ASC limit 0,10000 ...
- 基于微信小程序+Springboot校园二手商城系统设计和实现
\n文末获取源码联系 感兴趣的可以先收藏起来,大家在毕设选题,项目以及论文编写等相关问题都可以给我加好友咨询 一. 前言介绍: 在当今社会的高速发展过程中,产生的劳动力越来越大,提高人们的生活水平和质 ...