机器学习从理论到工程的第二步-开发环境与工具篇(下)

好啦~继续昨天的《第二步——开发环境与工具篇(上)》~

 

其实有点尴尬啦,本来想一篇讲完的,结果小夕太啰嗦了,还没有开始讲正文,就写了快2000字了。。。所以说,这一篇是上一篇的正文。。。

 

matlab就不用说了,matlab程序本身就集成了所有你需要的东西了~顺便提一下,没有条件使用特殊免收费版matlab的时候,octave甚至一些在线octave网站都是可以接手matlab的~

 

C、C++、Java也不用多说了,C/C++就用VS、Xcode、Qt等IDE吧,同样,Java也是就用intellij idea或者eclipse等IDE吧(小夕觉得前者更好用)。

 

下面重点说python,也是我们做机器学习完整项目时的主力语言。

 文本/代码编辑器(上):

Python的代码编辑器与解释器,小夕强烈推荐Jupyter Notebook(前身是Ipython,以下简称JN)。

 

官网:http://jupyter.org/

 

JN不仅可以让你码代码,而且可以让你优雅的码出优雅的代码~直接上个临时乱写的演示截图(忽略代码里大量语法错误啦~)

 

 

它是由很多单元格组成,每个单元格你可以设置成文本格,也可以设置成代码格。对于文本格,可以让你用markdown排版文字,用latex写数学公式,如上图第1、3、5个格子~比如第5个格子,运行一下,markdown和latex源码就被转化成了漂亮的排版和公式:

 

 

而我们在JN中写完函数,下面就可以紧跟着做一下单元测试(当然仅对于方便做这个的函数)。比如上面的,我们定义了优化函数,下面就可以紧跟着写个单元测试的代码。这样做是因为每个单元格都是可以独立运行的啦,得益于它内嵌的解释器~

 

比如我们运行一下第二个单元格。

 

 

可以看到这个单元格里的代码就运行了~

 

当代码完成之后,可以进一步进行整体调试的时候,就可以把它导出为python代码啦:

 

 

所以JN尤其适合去写机器学习,或者说科学计算相关的项目代码。在完成一个很复杂的数学过程的函数前,你完全可以用一个文本单元格来详细的描述这个函数的功能和实现细节,然后再优雅的实现这个函数。是不是炒鸡棒呢~

 

这里小夕只是给大家稍微介绍一下,它的功能和特色远比小夕说的多得多,官网的详细的教程链接贴在这里了~

 

https://jupyter-notebook.readthedocs.io/en/latest/index.html

英语基础比较惨的同学可以试试用chrome翻译成中文,或者直接找中文博客啦。

 文本/代码编辑器(下):

JN适合优雅的写代码,但是不适合重量级的代码阅读或者数据集预览。这时候就需要一款传统的高性能代码编辑器啦。小夕在此力推Sublime Text 3

 

比如你的数据集是一个700多M的纯文本,里面有几十万的样本,比如下面:

 

 

然后你想看一下这个数据集里面是什么样子的,什么想进去匹配一些关键字看看有没有。那怎么办呢?为此去敲代码也太麻烦啦~而大部分的编辑器开这么大的文件的时候往往卡半天甚至直接崩溃。而用sublime的话:

 

 

打开过程非常优雅啊有没有~而且丝毫不卡,不会影响你其他的工作。

 

 

就这么优雅的打开了~进行查找替换等操作也是相对来说很优雅的啦。

 

这种高性能文本编辑器,也可以通过安装插件打造成一个轻量级IDE,不过小夕不建议初学者尝试啦。如下,project管理,代码编译、运行、检查等功能一应俱全,当然是因为安装了一堆插件的原因。

 

 

哦对了,刚下载好的Sublime的界面跟小夕的不一样的,小夕DIY了部分皮肤,2333,相关的DIY教程网上也有很多,但是小夕不建议初学者弄的太复杂,仅仅把它作为一个性能重量级,使用轻量级的文本/代码的编辑器/阅读器就可以啦。

IDE:

代码完成了~需要整体调试、打包的时候怎么办呢?当然就需要一个正式的IDE啦~当然主要用的是它的调试器和项目管理的功能。

 

从小夕的使用体验来看,Pycharm给小夕的感觉最棒。而且也有免费版,功能足够了。

 

 

快捷键、皮肤什么的都可以方便的DIY,而且可以白天、夜间快速切换主题~

 

如图,白天么么哒~

 

 

晚上。。。

 

 

项目管理、运行与调试等基本技能小夕就不讲了,下面小夕只讲一下如何将其与我们的环境管理软件协同工作。

开发环境管理:

 不仅代码编辑器没有使用pycharm(当然啦,调试代码的时候当然使用pycharm内置的编辑器更方便),而且开发环境管理也没有使用pycharm的,当然是因为有更好用的~

 

那就是Anaconda

 

相信很多人都听说过anaconda了。使用它可以很方便的管理开发环境(不理解开发环境概念的同学务必先返回上一篇理解一下)。

 

安装好anaconda后,在命令行里一句

 

 

就可以创建一个名为“myenv”的开发环境(虚拟机)。(注意!不同操作系统下的命令可能不一样!以官方文档为准。)

 

要管理这个虚拟机里的资源,就进入(激活)这个虚拟机,也是一句:

 

 

就可以进入这个虚拟机里。然后通过“conda list”查看当前虚拟机里的资源(已安装的库及其版本),使用“conda install”安装新的库,使用“conda uninstall”卸载已安装的库,而且与python自带的安装器“pip”完美融合,管理开发环境炒鸡方便有没有。

 

那在anaconda把开发环境管理好了,如何在pycharm中使用anaconda管理的开发环境呢?

 

只需要在创建新项目的时候,解释器选择虚拟机里的python解释器就可以啦:

 

(当然,也可以在这里点击“Create Conda Env”直接新建一个Anaconda环境,都是相通的)

虚拟机一般是在anaconda的安装目录下的env文件夹下,如图,小夕这里有4个开发环境:

 

 

确定好要用哪个开发环境后,就进去选择bin文件夹里的python:

 

 

就ok啦~

 

然后在项目开发过程中,使用anaconda添加了新的库的时候,就可以pycharm的File标签下同步一下,就ok了~

 

总结一下,小夕推荐的python利器有:

1、jupyter notebook:优雅的写代码与单元测试的代码编辑器。

2、sublime text 3:高性能的文本/代码编辑/阅读器。

3、pycharm:方便项目管理与调试的IDE。

4、anaconda:开发环境管理的利器。

 

这些神器的使用教程小夕就不写了,还是首推官网的教程,无法接受英语的同学可以寻找中文优秀博客甚至视频教程。这是小夕御用的开发神器哦(逃\(//∇//)\

对了,如果大家有私藏的神器,欢迎发到评论区共享哦( ̄∇ ̄)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/481197.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里-2019算法岗笔试编程题-kmp匹配

版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 https://blog.csdn.net/qq_25737169/article/details/82503724 </div><link rel"stylesheet" href"https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_…

IBM量子处理器,将突破1000位

来源&#xff1a;半导体行业观察IBM的CONDOR是世界上第一台拥有超过1000个量子比特的通用量子计算机&#xff0c;它将于2023年首次亮相。预计这一年IBM还将推出Heron&#xff0c;这是该公司表示可能对其有所帮助的新型模块化量子处理器群中的第一个到2025年生产出超过4000个量子…

ChatGPT到底有多聪明?我测试了ChatGPT的数学能力

来源&#xff1a;AI前线译者&#xff1a;马可薇 人人都听说过最新&#xff0c;也是最复杂的聊天机器人 chatGPT。而众所周知&#xff0c;它在英文文学等“软话题”方面甚是熟练&#xff0c;所以我决定测试它在数学这类“硬话题”方面的表现。你可能不知道&#xff0c;但我是有…

从朴素贝叶斯到贝叶斯网

回顾在文章《朴素贝叶斯》中&#xff0c;小夕为大家介绍了朴素贝叶斯模型的基本知识&#xff0c;并且得出了朴素贝叶斯是利用联合概率P(x1,x2,x3...xn,y)来确定某个样本为某个类别的概率&#xff0c;进而利用最大后验概率&#xff08;MAP&#xff09;来决策类别。也就是说&…

2022年,谁在数学史上永远留下了姓名

来源&#xff1a;新智元这一年&#xff0c;数学领域有什么大事&#xff1f;Quanta Magazine做了一份全年总结。我们可以把数学家想象成考古学家——他们煞费苦心地拂去世界隐藏结构上的灰尘。起来很吸引人&#xff1f;“你的起点并不重要&#xff0c;但要眼光长远&#xff0c;了…

神经网络激活函数=生物转换器?

啊~昨晚躺了一个小时竟然没有睡着&#xff0c;美容觉泡汤了...于是竟然大半夜起来写了这篇文章在《逻辑回归到神经网络》中&#xff0c;小夕让神经网络冒了个泡。在《一般化机器学习与神经网络》中&#xff0c;将神经网络这一火热的模型强制按回机器学习一般框架里。在《BP算法…

从Encoder到Decoder实现Seq2Seq模型

首发于机器不学习关注专栏写文章从Encoder到Decoder实现Seq2Seq模型天雨粟模型师傅 / 果粉​关注他300 人赞同了该文章更新&#xff1a;感谢Gang He指出的代码错误。get_batches函数中第15行与第19行&#xff0c;代码已经重新修改&#xff0c;GitHub已更新。前言好久没有更新专…

市场增速超20%,国产操作系统“浴火重生” | 解读操作系统的 2022

作者 | 凌敏 本文是“2022 InfoQ 年度技术盘点与展望”系列文章之一&#xff0c;由 InfoQ 编辑部制作呈现&#xff0c;重点聚焦操作系统领域在 2022 年的重要进展、动态&#xff0c;希望能帮助你准确把握 2022 年操作系统领域的核心发展脉络&#xff0c;在行业内始终保持足够的…

线性代数应该这样讲(二)

在《...&#xff08;一&#xff09;》中&#xff0c;小夕从映射的角度讲解了矩阵及矩阵运算&#xff0c;这也是机器学习中看待矩阵的非常重要的视角。另一方面说&#xff0c;矩阵当然也是用于存储数据的数据结构&#xff0c;这也是最好理解的形式。另外还可以看做是一个线性方程…

2023将至,Bengio等大佬年度展望!懂理性的AI模型要来了?

来源&#xff1a;新智元【导读】2022年对AI来说注定是不平凡的一年&#xff0c;这不吴恩达、Bengio等一众圈内大佬在接受DeepLearning.ai的采访中都展望了2023年AI的发展趋势&#xff0c;还分享了自己的科研小故事。还有1天&#xff0c;2022年就要过去了。此前我们报道了吴恩达…

【NLP】Attention Model(注意力模型)学习总结

【NLP】Attention Model&#xff08;注意力模型&#xff09;学习总结郭耀华发表于郭耀华‘s Blog订阅294在这篇文章中&#xff1a;1. 什么是Attention机制&#xff1f;2. 先了解编码-解码框架&#xff1a;Encoder-Decoder框架3. Attention Model4. Attention机制的本质思想5. S…

杂谈机器学习的几个应用场景

在上一篇文章末尾&#xff0c;小夕提到了“机器学习是实现自然语言处理的正确道路”。其实确实如此&#xff0c;纵观整个自然语言处理的发展史&#xff0c;也是纵观整个人工智能的发展史&#xff0c;从诞生到现在&#xff0c;机器学习不仅是在理论和工程上实现自然语言处理的目…

2022年度十大AI技术盘点:AIGC风暴来袭,自动驾驶后会无期?

来源&#xff1a;AI科技大本营翻译 & 整理&#xff1a;杨阳“科学不能告诉我们应该做什么&#xff0c;只能告诉我们能做什么。”——让-保罗萨特《存在与虚无》这一年&#xff0c;AI又有哪些前沿技术突破呢&#xff1f;通过汇总梳理2022年10大AI技术&#xff0c;AI科技大本…

从逻辑回归到受限玻尔兹曼机

在那很久很久以前&#xff0c;可爱的小夕写了一篇将逻辑回归小题大做的文章&#xff0c;然后在另一篇文章中阐述了逻辑回归的本质&#xff0c;并且推广出了softmax函数。从那之后&#xff0c;小夕又在一篇文章中阐述了逻辑回归与朴素贝叶斯的恩仇录&#xff0c;这两大祖先级人物…

Peacock:大规模主题模型及其在腾讯业务中的应用-2015

Peacock&#xff1a;大规模主题模型及其在腾讯业务中的应用 作者&#xff1a;赵学敏 王莉峰 王流斌 孙振龙 严浩 靳志辉 王益 摘要 如果用户最近搜索了“红酒木瓜汤”&#xff0c;那么应该展示什么样的广告呢&#xff1f;从字面上理解&#xff0c;可能应该返回酒水或者水果类广…

史上最简单的玻尔兹曼机模型讲解

在上一篇文章中&#xff0c;小夕讲述了逻辑回归为了抗衡贝叶斯网&#xff0c;也开始了自己的进化。然而令我们没有想到的是&#xff0c;逻辑回归最终竟然进化成了一个生成式模型——受限玻尔兹曼机&#xff08;RBM&#xff09;&#xff0c;也就是变成了敌方&#xff08;生成式模…

从头到尾彻底理解KMP(2014年8月22日版)

从头到尾彻底理解KMP 作者&#xff1a;July 时间&#xff1a;最初写于2011年12月&#xff0c;2014年7月21日晚10点 全部删除重写成此文&#xff0c;随后的半个多月不断反复改进。后收录于新书《编程之法&#xff1a;面试和算法心得》第4.4节中。 1. 引言 本KMP原文最初写于2年多…

解开玻尔兹曼机的封印会发生什么?

在上一篇文章中&#xff0c;小夕讲述了逻辑回归为了抗衡贝叶斯网&#xff0c;也开始了自己的进化。然而令我们没有想到的是&#xff0c;逻辑回归最终竟然进化成了一个生成式模型——受限玻尔兹曼机&#xff08;RBM&#xff09;&#xff0c;也就是变成了敌方&#xff08;生成式模…

KMP算法的核心,是一个被称为部分匹配表(Partial Match Table)的数组以及next数组求解

KMP算法的核心&#xff0c;是一个被称为部分匹配表(Partial Match Table)的数组。我觉得理解KMP的最大障碍就是很多人在看了很多关于KMP的文章之后&#xff0c;仍然搞不懂PMT中的值代表了什么意思。这里我们抛开所有的枝枝蔓蔓&#xff0c;先来解释一下这个数据到底是什么。 对…

Softmax(假神经网络)与词向量的训练

今天终于要完成好久之前的一个约定了~在很久很久以前的《如果风停了&#xff0c;你会怎样》中&#xff0c;小夕提到了“深刻理解了sigmoid的同学一定可以轻松的理解用(假)深度学习训练词向量的原理”&#xff0c;今天就来测测各位同学对于sigmoid的理解程度啦~习惯性的交待一下…