正在开发一种使用VR键盘的输入方法
|
这段代码中使用的优化水平以及为在90年代实现如此出色的计算机游戏而编写的整个代码显然令人惊讶。 如今,游戏开发通常不处理这一级别的计算,因为物理功能已经由游戏引擎实现。 GNU编译器集合
C编程语言就像现代计算之父一样,因为它通过提供良好的人类可读的抽象级别而与硬件之间的距离非常近。 确实,GNU C编译器已启动。 换句话说,它是使用编译器自举概念以C编程语言编写的。 我注意到我从Github上的GNU编译器集合的代码库中看到了最长的C源文件(可以有比这更长的C源文件,但这是我看到的)。 阿波罗(Apollo)工程团队付出了巨大的努力,通过用汇编语言编写了许多代码行,以取得如此惊人的成就。 在1960年代,编程比现在更加困难。 因为在那时,编程语言的抽象级别较低。 此外,程序员必须编写超级优化的代码才能有效地使用硬件。 雷神之锤III竞技场
Quake III Arena是由id Software开发的第一人称射击游戏。 它是在90年代开发的,当时3D游戏行业刚刚开始使用id Tech 3游戏引擎进行开发。 当时,硬件资源非常有限。 因此,游戏开发人员必须编写精心优化的代码以呈现图形元素。 许多游戏编程计算都需要向量归一化概念,这提出了平方根反比计算的要求。 如前所述,开发人员必须为这些与计算机图形学相关的工作选择最有效的算法。 因此,Quake III Arena团队使用一种非常聪明的方法进行快速反平方根计算,如下所示,使用位级计算。 几年前,我正在检查Python语言实现的源代码。 此后,我注意到了几个C源文件,并突然检查了GNU C编译器集合的实现。 我发现这个现代的C编译器是用C本身编写的。 学习事物的内部结构并进一步深入,可以为我们带来惊人的感觉和丰富的知识。 过去的开发人员已经做出了巨大的努力,为现代开发人员创造了一个和平的世界。 但是,作为现代开发人员,我们应该感谢他们的出色工作。 当我浏览Github存储库时,我注意到世界各地的开发人员已经完成了以下令人印象深刻的工作。 阿波罗11号制导计划
阿波罗11号是第一个成功的使人类登月的任务。 只有4 KB物理内存的阿波罗制导计算机(AGC)为控制航天器提供了支持。 AGC的软件以AGC汇编语言编写,并存储在称为绳索存储器的特殊只读存储器中。 一段时间之前,已扫描了源代码的扫描副本,这些副本已上传到Internet。 此后,有人将几个模块转换为文本文件,然后将其上传到Github存储库。 缺失何在 既考察了机器学习教育的现状,又讨论了真正的机器学习实践所需要的技能,现在我们可以评论一下教育的缺失何在了。对比课程涵盖的内容和实践的要求,有一点很清楚,学生们所受的关于如何管理数据的教导是有欠缺的。 一方面课程提供的数据集很干净,已经做了很好的预处理,另一方面,除了画出几个数据点,课程也没有鼓励太多的对数据的挖掘。这种对数据集进行清洗和挖掘的一手实践的缺乏,对学生真正上阵时的实践能力非常不利。 另外一点,尽管课堂上提供了对关键理论框架的数学背景的直觉式的讲解,但是为什么特定任务下给定的模型就比其他模型要有更好的表现,这背后的理论给学生们讲得不够。结果就是,尽管学生也熟悉不少模型,他们还是不知道哪些模型最适合给定的数据集和任务。不完全懂得关键模型和技术的数学基础的全部细节,学生没法在特定情境下快速选对模型。 哪些已经做得不错了,哪些还能做得更好 通过对课堂知识到实践技能之间的缺失的分析,我们可以看到大多数课程在传授基础知识上做得不错。课程里讲授的概念可以让你理解一个机器学习算法是如何工作的,它如何才能收敛。课程还让学生能够熟悉适用于不同任务的各种最佳算法,并接触到广泛的学习材料,可助有志者进一步深入。
但是,提升空间还是很大的。很多课把开始的几周时间花在同一个地方:线性分类器和反向传播。这些无疑是关键的主题,但是把将近三分之一的课时花在讲授预备知识上并非最佳选择——把本科生和研究生的内容做个区分会很有用。 (编辑:四平站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
