14 深度学习-卷积

1.简述人工智能、机器学习和深度学习三者的联系与区别。

人工智能是计算机科学的一个分支,它企图了解智能的本质。

机器学习属于人工智能的一个分支,也是人工智能的和核心。

深度学习是利用深度神经网络来解决特征表达的一种学习过程。

 

2. 全连接神经网络与卷积神经网络的联系与区别。

在全连接神经网络中,每两层之间的节点都有边相连。

卷积神经网络也是通过一层一层的节点组织起来的,对于卷积神经网络,相邻两层之间只有部分节点相连。

在卷积神经网络的前几层中,每一层的节点都被组织成一个三维矩阵。前几层中每一个节点只和上一层中部分节点相连。

 

3.理解卷积计算。

以digit0为例,进行手工演算。

 

 

 

 

 

from sklearn.datasets import load_digits #小数据集8*8

digits = load_digits()

 

4.理解卷积如何提取图像特征。

读取一个图像;

以下矩阵为卷积核进行卷积操作;

显示卷积之后的图像,观察提取到什么特征。

 

1 0 -1
1 0 -1
1 0 -1

 

1 1 1
0 0 0
-1 -1 -1

 

-1 -1 -1
-1 8 -1
-1 -1 -1

 

 

卷积API

scipy.signal.convolve2d

tf.keras.layers.Conv2D

原图片:

 

图片:

 

图片1:

 

图片2:

 

图片3:

 

 

from PIL import Image
from scipy.signal import convolve2d
import numpy as np
import matplotlib.pyplot as plt
from pylab import mpl

# 指定字体,解决plot不能显示中文的问题
mpl.rcParams['font.sans-serif'] = ['SimHei']

# 读取一张图片
image = Image.open(r"D:/STUDY/机器学习/juanji.jpg")
p = image.convert("L")

k = np.array([[-1, 0, 1], [-2, 0, 2], [-1, 0, 1]])
k1 = np.array([[1, 0, -1], [1, 0, -1], [1, 0, -1]])  # 垂直边缘
k2 = np.array([[1, 1, 1], [0, 0, 0], [-1, -1, -1]])  # 水平边缘
k3 = np.array([[-1, -1, -1], [-1, 8, -1], [-1, -1, -1]])

pg0 = convolve2d(p, k, boundary='symm', mode='same')
pg1 = convolve2d(p, k1, boundary='symm', mode='same')
pg2 = convolve2d(p, k2, boundary='symm', mode='same')
pg3 = convolve2d(p, k3, boundary='symm', mode='same')

plt.imshow(p)
plt.title("原图片")
plt.show()  # 显示图片
plt.imshow(pg0)
plt.title("图片")
plt.show()
plt.imshow(pg1)
plt.title("图片1")
plt.show()
plt.imshow(pg2)
plt.title("图片2")
plt.show()
plt.imshow(pg3)
plt.title("图片3")
plt.show()

 

 

5. 安装Tensorflow,keras

posted @ 2020-06-02 09:42  虚鲲  阅读(162)  评论(0编辑  收藏  举报