从零开始机器学习

预备知识

接触编程这么久,却没有对编程这个广泛的概念做一个系统的整理,感到非常可惜,但亡羊补牢为时不晚,希望本文的整理能够给刚进入大学或者刚接触编程的朋友提供帮助。

  1. 计算机技术的演进过程。计算机技术的发展阶段决定了对应的编程语言:第一阶段的标志是ENIAC的诞生,此阶段主要解决计算能力的问题,重视探索计算机系统、操作系统,代表语言是C语言,重视利用内存,提高性能;第二阶段的标志是个人PC的诞生,此阶段主要解决交互的问题,包括计算机之间的通信(互联网)和人与计算机的通信(Windows视窗操作系统),代表语言分别是Java(面向对象和跨平台),VB(理解交互逻辑);第三阶段的标志是安卓操作系统的诞生,进入了复杂信息系统时代,移动通信成为主流,云计算,大数据,网络安全都是代表词语,主要解决数据问题;第四阶段的标志是2016年人工智能时代的到来,随着计算机算力的提高和数据的爆炸,Python一度成为了“超级语言”。

  1. 按照可读性可以将其分类。编程语言分为机器语言汇编语言高级语言,由数电的知识我们知道,计算机实际上只能理解0和1,所以机器语言是最基本的语言,人类几乎不可读,但实际上所有的语言都是变为机器语言之后才被执行的,将其变为机器语言的过程请看下面第3点;为了增加可读性,出现了汇编语言,但编写效率太低不符合需求;之后从C语言开始的其他语言实际上都是高级语言了,也有人将Python这种生态庞大的语言称为超级语言,表明其强大的能力。
  2. 按照源代码转化为目标代码的方式也可将其分类。编程语言分为静态语言脚本语言,静态语言(以C,Java,C++为例)需要编译器,编译器将其一次性转化为目标代码,进而执行;而另一种动态语言(以Python,JS为例)则不同,是由解释器将其逐条解释逐条运行的,这也就对应着编译器和解释器的不同。

说起来配置环境,一直以来都是令人头疼的事情,本质是对程序运行不够了解,下面明确几个不同的东西。

  1. 编译器/解释器:每种语言都需要自己对应的编译器/解释器,用来识别语法,并将其转化为计算机可读的目标代码,这个是必须的。
  2. 集成开发环境(IDE)是为开发者提供的一个平台,例如Visual Studio和PyCharm,每种IDE都有其强项即擅长的语言,一般而言IDE可以编写很多种语言的程序,并且利用多种功能帮助开发者提高效率,但本质上依旧需要借助编译器/解释器完成,IDE不是必须的,也就是说只要有对应的编译器/解释器,事实上你用记事本编写的程序也可以运行,这就是为什么有高手在用notepad++(实际上只是一个功能较多的记事本)。
  3. 环境。你的电脑虽然有编译器/解释器,你也编写了源代码,但是你的电脑并不知道编译器在哪里,怎么去处理,所以你需要告诉电脑怎么对你的源文件进行操作,用什么操作,这就是程序的运行环境,一些安装教程中所说的添加“环境变量”目的就在于此。
  4. 库/包/模块。这3个概念一般而言是一样的,本质都是一系列函数,分为标准库和第三方库,为了提高开发效率,从而将其封装开源,供开发者使用,就叫做第三方库,我们在编程中需要利用某些特殊的函数就要下载对应的库/包/模块。

前期准备

  1. 下载python解释器:https://www.python.org/
    需要注意python2.x和python3.x是不同的,现在主流都是python3.x,下载时一般不需要最高版本,低一些的版本足够使用,而且最高版本可能出现某些不兼容的问题。
  2. 下载PyCharm:https://www.jetbrains.com/pycharm/
    本文推荐此IDE,也可以下载其他的,适合自己的才是最好的。

网上有很多教程,我就不重复了。这时候已经初步构建好了运行的基本环境,但是对机器学习而言还需要一些第三方库作为支持。

  1. 安装必须的库
    包括numpy,torch,streamlit等,在GitHub下载的代码中可能有requirements.txt文件,直接告诉你需要哪些库,或者根据自己需要,下载即可。

我们直接用win+r打开cmd进入命令行,网上的教程都是利用pip命令安装,但是下载速度实在太慢,动辄下载失败,一切重来。

解决方法如下:
使用国内镜像网站下载,也就是将pip命令改为:

pip install -i 网址 所需要安装的库名

网址为国内镜像网址,包括:

也可以直接前往镜像网站寻找适合的版本。

  1. 安装pytorch
    这个库比较大,直接使用
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple torch

然后打开PyCharm,运行:

import torch
import torchvision

print(torch.__version__)
print(torch.cuda.is_available())

得到结果:

1.7.1+cpu
False

以上,准备工作基本完成,可以搬运大佬的代码自己运行了。个人认为,代码只是工具,重点还是要放在机器学习的模型以及算法本身上面,增强数学能力,勇于突破创新,才是机器学习的重点,不可本末倒置。

最后,给出pytorch和streamlit的官方文档,方便查阅
pytorch:https://pytorch.apachecn.org/docs/1.0/
streamlit:https://docs.streamlit.io/en/stable/index.html

Guess you like

Origin blog.csdn.net/qq_45510888/article/details/113060102