zoukankan      html  css  js  c++  java
  • 机器学习作业14--深度学习-卷积

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

    答:人工智能包含了机器学习,机器学习包含了深度学习,其中人工智能出现得最早。

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

    答: 除了结构相似,卷积神经网络的输入输出以及训练的流程和全连接神经网络也基本一致,类似的,全连接神经网络的损失函数以及参数的优化过程也都适用于卷积神经网络。

    全连接神经网络和卷积神经网络的唯一区别就是神经网络相邻两层的连接方式。

    3.理解卷积计算。

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

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

    digits = load_digits()

    0 0 5 13 9 1 0 0
    0 0 13 15 10 15 5 0
    0 3 15 2 0 11 8 0
    0 4 12 0 0 8 8 0
    0 5 8 0 0 9 8 0
    0 4 11 0 1 12 7 0
    0 2 14 5 10 12 0 0
    0 0 6 13 10 0 0 0

    卷积核:

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

    结果:

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

    读取一个图像;

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

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

    实验代码:

     1 from PIL import Image
     2 import matplotlib.pyplot as plt
     3 import numpy as np
     4 import pylab
     5 from scipy.signal import convolve2d
     6 
     7 I = Image.open(r'C:/Users/23625/Desktop/机器学习/项目/data/e.jpg')
     8 L = I.convert('L')
     9 
    10 e = np.array(I)  # 原图
    11 eg = np.array(L)  # 灰度图
    12 
    13 k1 = np.array([[1, 0, -1], [1, 0, -1], [1, 0, -1]])  # 垂直边缘检查
    14 k2 = np.array([[1, 1, 1], [0, 0, 0], [-1, -1, -1]])  # 水平边缘
    15 k3 = np.array([[-1, -1, -1], [-1, 8, -1], [-1, -1, -1]])
    16 
    17 p1 = convolve2d(eg, k1, boundary='symm', mode='same')
    18 p2 = convolve2d(eg, k2, boundary='symm', mode='same')
    19 p3 = convolve2d(eg, k3, boundary='symm', mode='same')
    20 
    21 plt.matshow(p1)
    22 plt.matshow(p2)
    23 plt.matshow(p3)
    24 pylab.show()

    原图:

    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

    5. 安装Tensorflow,keras

    参考:https://blog.csdn.net/u011119817/article/details/88309256 

    6. 设计手写数字识别模型结构,注意数据维度的变化。

    from tensorflow.keras.models import Sequential

    from tensorflow.keras.layers import Dense, Flatten, Conv2D, MaxPool2D

    model = tf.keras.Sequential()

    model.add(Conv2D(…))

    model.add(MaxPool2D(…))

    ...

  • 相关阅读:
    移动端头部声明
    清除浮动绝招
    图片采用base64压缩,可以以字符串的形式传送base64给服务端转存为图片
    js cookie的封装和调用
    js 封装设计cookie
    div可编辑状态设置
    align使图片和文字居中
    布局如何做到自适应?
    Jmeter学习笔记四_压力测试
    Pycharm中配置Git版本管理
  • 原文地址:https://www.cnblogs.com/m2362563619/p/13047384.html
Copyright © 2011-2022 走看看