zoukankan      html  css  js  c++  java
  • 全连接层

    Outline

    • Matmul

    • Neural Network

    • Deep Learning

    • Multi-Layer

    Recap

    • out = f(X@W + b)

    • out = relut(X@W + b)

    Neural Network

    • h = relut(X@W + b)

    16-全连接层-xwb.jpg

    16-全连接层-xwb3.jpg

    • h0=relu(X@W1+b1) # Input

    • h1=relu(h0@W2+b2) # Hidden

    • out=relu(h1@W3+b3) # Output

    • Neural Network in the 1980s

      • 3~5 layers

    Here comes Deep Learning

    16-全连接层-xwb4.jpg

    • Deep Learning now
      • n1200layers

    16-全连接层-xwb5.jpg

    Heros

    推动深度学习发展的功臣:

    • BigDATA
    • ReLU
    • Dropout
    • BatchNorm
    • ResNet
    • Xavier Initialization
    • Caffe/TensorFlow/PyTorch
    • ...

    Fully connected layer

    import tensorflow as tf
    
    x = tf.random.normal([4, 784])
    
    net = tf.keras.layers.Dense(512)
    out = net(x)
    
    out.shape
    
    TensorShape([4, 512])
    
    net.kernel.shape, net.bias.shape
    
    (TensorShape([784, 512]), TensorShape([512]))
    
    net = tf.keras.layers.Dense(10)
    try:
        net.bias
    except Exception as e:
        print(e)
    
    'Dense' object has no attribute 'bias'
    
    net.get_weights()
    
    []
    
    net.weights
    
    []
    
    net.build(input_shape=(None, 4))
    net.kernel.shape, net.bias.shape
    
    (TensorShape([4, 10]), TensorShape([10]))
    
    net.build(input_shape=(None, 20))
    net.kernel.shape, net.bias.shape
    
    (TensorShape([20, 10]), TensorShape([10]))
    
    net.build(input_shape=(2, 4))
    net.kernel
    
    <tf.Variable 'kernel:0' shape=(4, 10) dtype=float32, numpy=
    array([[ 0.39824653, -0.56459695,  0.15540016, -0.25054374, -0.33711377,
            -0.49766102, -0.27644783, -0.4385618 ,  0.6163305 ,  0.40391672],
           [ 0.14267981,  0.04587489, -0.34641156,  0.41443396,  0.5877181 ,
            -0.58475596,  0.6121434 ,  0.3081839 , -0.29890376,  0.54232216],
           [-0.61803645,  0.31125462,  0.40059066, -0.54361427, -0.6469191 ,
             0.39140797, -0.53628796,  0.59679496,  0.41008878, -0.45868778],
           [ 0.07785475, -0.45004582, -0.42372018, -0.39478874,  0.08843976,
             0.09751028,  0.625625  ,  0.2192722 , -0.527462  ,  0.5550728 ]],
          dtype=float32)>
    

    Multi-Layers

    • keras.Sequential([layer1,layer2,layer3])
    from tensorflow import keras
    
    x = tf.random.normal([2, 3])
    model = keras.Sequential([
        keras.layers.Dense(2, activation='relu'),
        keras.layers.Dense(2, activation='relu'),
        keras.layers.Dense(2)
    ])
    

    model.build(input_shape=[None, 3])
    model.summary()

    # [w1,b1,w2,b2,w3,b3]
    for p in model.trainable_variables:
    print(p.name, p.shape)

    Model: "sequential3"

    Layer (type) Output Shape Param #
    =================================================================

    dense13 (Dense) multiple 8

    dense14 (Dense) multiple 6

    dense_15 (Dense) multiple 6

    Total params: 20
    Trainable params: 20
    Non-trainable params: 0
    _
    dense13/kernel:0 (3, 2)
    dense
    13/bias:0 (2,)
    dense14/kernel:0 (2, 2)
    dense
    14/bias:0 (2,)
    dense15/kernel:0 (2, 2)
    dense
    15/bias:0 (2,)

  • 相关阅读:
    Git初级实践教程(图文)
    如何合并多个PPT
    优秀小工具集锦
    VS2015链接错误一则
    VisualStudio配色方案
    AI贪吃蛇(二)
    springMVC
    SSH三大框架的搭建整合(struts2+spring+hibernate)(转)
    生成图片验证码
    Spring JdbcTemplate详解(转)
  • 原文地址:https://www.cnblogs.com/abdm-989/p/14123271.html
Copyright © 2011-2022 走看看