zoukankan      html  css  js  c++  java
  • 卷积神经网络

    2D Convolution

    35-卷积神经网络-2d卷积.jpg

    Kernel size

    35-卷积神经网络-卷积静态.jpg

    • 矩阵卷积

    35-卷积神经网络-卷积动态图.gif

    Padding & Stride

    35-卷积神经网络-卷积padding.gif

    • 步长2

    35-卷积神经网络-卷积步长2.jpg

    Channels

    35-卷积神经网络-通道.jpg

    For instance

    • x: [b,28,28,3]
    • one k: [3,3,3]
    • multi-k: [16,3,3,3]
    • stride: 1
    • padding: [1,1,1,1]
    • bias: [16]
    • out: [b,28,28,16]

    35-卷积神经网络-卷积张量动态.gif

    LeNet-5

    35-卷积神经网络-最早的神经网络.jpg

    Pyramid Architecture

    • 从底层的边缘颜色到高层抽象的概念(轮子、车窗)

    35-卷积神经网络-金字塔结构.jpg

    layers.Conv2D

    import tensorflow as tf
    from tensorflow.keras import layers
    
    x = tf.random.normal([1, 32, 32, 3])
    
    # padding='valid':输入和输出维度不同
    layer = layers.Conv2D(4, kernel_size=5, strides=1, padding='valid')
    out = layer(x)
    out.shape
    
    TensorShape([1, 28, 28, 4])
    
    # padding='same':输入和输出维度相同
    layer = layers.Conv2D(4, kernel_size=5, strides=1, padding='same')
    out = layer(x)
    out.shape
    
    TensorShape([1, 32, 32, 4])
    
    layer = layers.Conv2D(4, kernel_size=5, strides=2, padding='same')
    out = layer(x)
    out.shape
    
    TensorShape([1, 16, 16, 4])
    
    layer.call(x).shape
    
    TensorShape([1, 16, 16, 4])
    

    weight & bias

    layer = layers.Conv2D(4, kernel_size=5, strides=2, padding='same')
    out = layer(x)
    out.shape
    
    TensorShape([1, 16, 16, 4])
    
    # 5,5--》size,3--》通道数,4--》核数量
    layer.kernel.shape
    
    TensorShape([5, 5, 3, 4])
    
    layer.bias
    
    <tf.Variable 'conv2d_11/bias:0' shape=(4,) dtype=float32, numpy=array([0., 0., 0., 0.], dtype=float32)>
    

    nn.conv2d

    w = tf.random.normal([5, 5, 3, 4])
    b = tf.zeros([4])
    x.shape
    
    TensorShape([1, 32, 32, 3])
    
    out = tf.nn.conv2d(x, w, strides=1, padding='VALID')
    out.shape
    
    TensorShape([1, 28, 28, 4])
    
    out = out + b
    out.shape
    
    TensorShape([1, 28, 28, 4])
    
    out = tf.nn.conv2d(x, w, strides=2, padding='VALID')
    out.shape
    
    TensorShape([1, 14, 14, 4])
    

    Gradient?

    [frac{partial{Loss}}{partial{w}} ]

    35-卷积神经网络-梯度.jpg

    For instance

    35-卷积神经网络-梯度实例.jpg

  • 相关阅读:
    怎样才是全能的程序员?
    [HDU 2553]N皇后问题
    [HDU 1870]愚人节的礼物
    [HDU 1016]Prime Ring Problem
    [HDU 1241]Oil Deposits
    [POJ 3250]Bad Hair Day
    [HDU 1276]士兵队列训练问题
    [POJ 2796]Feel Good
    [HDU 1237] 简单计算器
    总算开通博客园啦~
  • 原文地址:https://www.cnblogs.com/nickchen121/p/10925663.html
Copyright © 2011-2022 走看看