初识人工智能

简介: 初识人工智能

1.机器学习简单了解

刚开始接触人工智能的时候,大家肯定看到了一些名词:人工智能、深度学习、机器学习...what??哈哈,先来简单的给大家解释一下这三者的区别,再来谈论其他的问题。说的简单一点,机器学习是人工智能的一个实现途径,深度学习则是机器学习的一个方法发展而来。

人工智能是一个庞大的系统,它有很多的分支,比如计算机视觉、语音识别、文本挖掘、机器翻译、机器人这些。这些在生活中大家也经常使用,比如面部识别、谷歌翻译、小机器人等等这些。它们都是不同的分支,但同属于人工智能。

人工智能必备三要素:数据、算法、计算力。这也就是为什么人工智能如此火爆,但是过了许久,人才缺口仍然如此巨大,数学能力是一道难以逾越的门槛。

那么我们先从机器学习入手,开始了解人工智能吧。机器学习是从数据自动分析获得模型,并利用模型对未知数据进行预测。它的工作流程是:获取数据、数据基本处理、特征工程、机器学习(模型训练)、模型评估。

特征工程:使用专业背等知识,处理数据,使得数据更容易被机器识别。

2.机器学习算法

2.1 监督学习

输入数据是由输入特征值和目标值所组成。当输出的是一个连续的值的时候,我们称之为回归;输出的是有限个离散值的时候,称之为分类

2.2 无监督学习

输入数据是由输入特征值所组成。数据只有特征值,无目标值。

2.3 半监督学习

数据,部分是特征值+目标值,部分是只有特征值。

2.4 强化学习

数据,是一个动态的过程,每一次的输出,并不能立刻知道结果的正误。

3.Jupyter Notebook使用(Linux)

1.打开界面(输入完命令会直接启动浏览器):

jupyter notebook

2.和vim类似,jupyter分为编辑模式和命令模式。

3.命令模式下,回车或者鼠标双击cell进入编辑模式。

cell:一对In Out会话被视作一个代码单元,称为cell

4.编辑模式下按esc键退出编辑,进入命令模式。

5.常用的快捷键(命令模式下):

y:cell切换到Code模式,也就是可以写代码了。
m:cell切换到Markdown模式,可以编写Markdown笔记。
a:在当前cell的上面添加cell
b:在当前cell的下面添加cell
dd:删除当前cell

6.其他快捷键:

Shift+Enter,执行本单元代码,并跳转到下一单元
Ctrl+Enter,执行本单元代码,留在本单元

4.Matplotib的简单使用

4.1 Matplotlib三层结构

4.1.1 容器层

Canvas:画板--底层已经包含,不需要关注

figure:画布--在每次使用,都需要实例化

axes:坐标系--申明图像的绘制区域

4.1.2 辅助显示层

声明需要绘制的x轴,y轴,标题...

4.1.3 图像层

声明需要绘制哪些图像(plot,scatter, bar...)

plot:折线图

hist:直方图

pie:饼图

bar:柱状图

4.2基本流程

import matplotlib.pyplot as plt
 # 1.创建画布
 plt.figure(figsize=(20,8), dpi=100)
 # 2.绘制图像
x = [1,2,3]
 y = [4,5,6]
 plt.plot(x, y)
. # 保存图片到指定路径
. plt.savefig("test.png")
 # 3.显示图像
 plt.show()

figsize:指定图的长宽

dpi:图像的清晰度

注意:保存图片操作一定放到show之前。否则会保存一个空白图片。

4.3 一些常用功能

1.添加x,y刻度

plt.xticks()
plt.yticks()

注意:里面传入的第一个值,必须是数字,不能是字符串,如果要显示字符串,需要进行替换

2.添加网格显示

plt.grid(True, linestyle="**", alpha=0.5)

True -- 是否显示网格

linestyle -- 线的形状

alpha -- 线的透明度

3.一个图像,多次plot:直接进行数据传输,使用。

4.显示图例

plt.legend(loc="best")

loc -- 图例显示位置

5.多个坐标系图形绘制

plt.subplots(nrows=, ncols=)

nrows -- 几行

ncols -- 几列

4.4 案例:显示温度变化状况

# 需求:画出某城市11点到12点1小时内每分钟的温度变化折线图,温度范围在15度~18度
# 初次完成
# 0.构造数据
x = range(60)
y = [random.uniform(15, 18) for i in x]
# 1.创建画布
plt.figure(figsize=(20, 8))
# 2.图像绘制
plt.plot(x, y)
# 2.1 添加x,y轴刻度
x_ticks_label = ["11点{}分".format(i) for i in x]
y_ticks = range(40)
plt.xticks(x[::5], x_ticks_label[::5], fontsize=20)
plt.yticks(y_ticks[::5])
# 2.2 添加网格显示
plt.grid(True, linestyle="--", alpha=0.5)
# 2.3 添加x,y轴描述和标题
plt.xlabel("时间")
plt.ylabel("温度")
plt.title("中午11点--12点温度变化图", fontsize=25)
# 3.显示
plt.show()

4.5 案例:多个坐标系显示-plt.subplots(面向对象的画图方法)

# 需求:画出某城市11点到12点1小时内每分钟的温度变化折线图,温度范围在15度~18度
# 多个axes
# 0.构造数据
x = range(60)
y_shanghai = [random.uniform(15, 18) for i in x]
y_beijing = [random.uniform(1, 14) for i in x]
# 1.创建画布
# plt.figure(figsize=(20, 8))
fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(20, 8), dpi=100)
# 2.图像绘制
# plt.plot(x, y_shanghai, label="上海")
# plt.plot(x, y_beijing, label="北京", linestyle="--", color="r")
axes[0].plot(x, y_shanghai, label="上海")
axes[1].plot(x, y_beijing, label="北京", linestyle="--", color="r")
# 2.1 添加x,y轴刻度
x_ticks_label = ["11点{}分".format(i) for i in x]
y_ticks = range(40)
# plt.xticks(x[::5], x_ticks_label[::5])
# plt.yticks(y_ticks[::5])
axes[0].set_xticks(x[::5], x_ticks_label[::5])
axes[0].set_yticks(y_ticks[::5])
axes[0].set_xticklabels(x_ticks_label[::8])
axes[1].set_xticks(x[::5], x_ticks_label[::5])
axes[1].set_yticks(y_ticks[::5])
axes[1].set_xticklabels(x_ticks_label[::8])
# 2.2 添加网格显示
# plt.grid(True, linestyle="--", alpha=0.5)
axes[0].grid(True, linestyle="--", alpha=0.5)
axes[1].grid(True, linestyle="--", alpha=0.5)
# 2.3 添加x,y轴描述和标题
# plt.xlabel("时间")
# plt.ylabel("温度")
# plt.title("中午11点--12点温度变化图", fontsize=25)
axes[0].set_xlabel("时间")
axes[0].set_ylabel("温度")
axes[0].set_title("上海中午11点--12点温度变化图", fontsize=25)
axes[1].set_xlabel("时间")
axes[1].set_ylabel("温度")
axes[1].set_title("北京中午11点--12点温度变化图", fontsize=25)
# 2.4 显示图例
# plt.legend(loc=0)
axes[0].legend(loc=0)
axes[1].legend(loc=0)
# 3.显示
plt.show()


日常问题解决

1 pip下载包速度慢解决

Linux中大家使用pip命令进行安装时,会发现下载速度奇慢!!按照网上的教程更换国内的源,发现还是不行。后来发现了原因,大家从设置里面修改后的源是不适用于pip安装的。如果想pip安装包的时候下载速度快一点,按照下面的命令进行修改即可:

1.先在主目录下创建 .pip目录,然后在目录中创建 pip.conf文件。

mkdir ~/.pip
vim ~/.pip/pip.conf

2.在打开的文件中编写如下的内容:

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple

将pip的源更换为清华的镜像源。


参考文献:https://blog.csdn.net/YZXnuaa/article/details/79710673

3.保存退出即可。

2 GPU上适合运行计算密集型的程序和易于并行的程序。

CPU是中央处理器,内部结构十分复杂,有复杂的控制逻辑和诸多优化电路,计算能力只是CPU的一小部分功能。而GPU便是专门为计算而生了,GPU加速计算可以将应用程序计算密集部分的工作转到GPU上,CPU就可以空出更多时间处理其他程序。这样一来,应用程序的运行速度就快的多了。CPU适合IO密集型,而GPU适合计算密集型。平时经常玩游戏的小伙伴肯定深有感触,游戏对GPU要求很高。

3 创建虚拟环境

创建python3的虚拟环境:

mkvirtualenv 虚拟环境名 -p python3

删除虚拟环境:

rmvirtualenv 虚拟环境名

进入虚拟环境:

workon 虚拟环境名

查看所有虚拟环境:

workon

退出虚拟环境:

deactivate
相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
XML 缓存 开发框架
SpringBoot实践:上传图片文件时,报临时目录不存在
SpringBoot实践:上传图片文件时,报临时目录不存在
433 0
|
应用服务中间件 数据库 Docker
Dokku和Docker的完美配合,一起来辩
本文讲的是Dokku和Docker的完美配合,一起来辩,【编者的话】本文作者介绍了如何在单机上将Dokku和Docker结合。Dokku是一个小型的PaaS平台,只需使用Git将代码push到对应的仓库上就能自动触发部署,构建过程非常简单。
2478 0
|
域名解析 缓存 负载均衡
内容分发网络 CDN
内容分发网络(英语:Content Delivery Network 或 Content Distribution Network,缩写:CDN)将源站资源缓存到全国各地的边缘服务器,供用户就近获取,降低源站压力。 通过阅读本篇文章,你可以了解到 CDN 的工作过程。 1、CDN 服务商的职责:CDN 专用的域名服务器将域名解析成缓存服务器的 IP 地址。 2、CDN 使用者的任务:使用 CDN 服务的网站,将网站域名的解析权交给 CDN 专用的域名服务器,再将需要分发的内容注入 CDN(或者由 CDN 拉取),就可以实现内容加速了。
460 1
内容分发网络 CDN
QGS
|
9月前
|
Java 关系型数据库 MySQL
手拉手springboot3整合mybatis-plus多数据源
手拉手springboot3整合mybatis-plus多数据源
QGS
379 1
|
存储 NoSQL Java
千万级GPS数据接入案例分享
项目需要接入全省的GPS数据,分析接入时的方案演进。
635 0
|
网络协议 物联网 数据安全/隐私保护
NB-IoT 之 M5310-A 模块介绍及应用场景分析 | 学习笔记
快速学习 NB-IoT 之 M5310-A 模块介绍及应用场景分析
NB-IoT 之 M5310-A 模块介绍及应用场景分析 | 学习笔记
|
数据采集 机器学习/深度学习 算法
Matlab函数——mapminmax
Matlab函数——mapminmax
208 0
|
9月前
|
JavaScript 前端开发 Unix
JavaScript日期时间操作完整指南!(上)
JavaScript日期时间操作完整指南!(上)
168 0

热门文章

最新文章