Keras 笔记

To take notes about the essential Keras elements to build basic neural networks. The explainations of each section haven’t finished yet.

1. Single Layer Neural Network (Linear Regression)

单层神经网络相当于(非)线性回归模型,第一个例子是构建一个最简单一元线性回归模型。

  1. 创建数据
    单层神经网络模型需要数据进行训练,因此我们使用 numpy 创建一些人造数据,且我们的 $y$ 为 $y = ax+b$ 。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    import numpy as np
    import tensorflow as tf
    from tensorflow.keras import layers
    import matplotlib.pyplot as plt
    plt.style.use('seaborn')

    # create data
    X = np.linspace(-1, 1, 200)
    np.random.shuffle(X) #randomize the data
    Y = 2*X + 10 + np.random.normal(0, 0.05, (200,))

    # plot data
    plt.scatter(X, Y)
    plt.show()
  1. 构建神经网络

    1. tf.keras.models.Sequential()
      1
      2
      3
      4
      tf.keras.models.Sequential(
      layers=None,
      name=None
      )
      用Keras创建神经网络,我们首先需要用 tf.keras.models.Sequential() 来建立网络,这里面只有一个argument,即 layers。这里添加神经层的方法有两种,一种是建立 model 的时候直接放入神经层,另一种是通过 model.add 来添加。如:
      1
      2
      3
      4
      5
      6
      7
      8
      # option 1
      model = tf.keras.models.Sequential([
      tf.keras.layers.Dense(1, activation = None, use_bias = True)
      ])

      # option 2
      model = tf.keras.models.Sequential()
      model.add(tf.keras.layers.Dense(1, activation = None, use_bias = True))
    2. tf.keras.layers.Dense()

      上面的例子中我们给 model 添加了一个 tf.keras.layers.Dense(), 它代表最典型的全连接神经网络层,即每个输入节点连接到每个输出节点。

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      tf.keras.layers.Dense(
      units,
      activation=None,
      use_bias=True,
      kernel_initializer='glorot_uniform',
      bias_initializer='zeros',
      kernel_regularizer=None,
      bias_regularizer=None,
      activity_regularizer=None,
      kernel_constraint=None,
      bias_constraint=None
      )

      Arguments:

      • units: 正整数,输出空间的维数。
      • activation:要使用的激活功能。如果未指定任何内容,则不应用激活(即 “linear” activation:a(x)= x)。
      • use_bias:Boolean,该层是否使用bias vector。
      • …其他看文档: https://www.tensorflow.org/api_docs/python/tf/keras/layers/Dense
    3. models.Sequential().compile()

      model 添加完神经层后,必须进行 model.compile() 才能继续后续的模型训练,并且在 model.compile 的时候需要指定 optimizerloss

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      model.compile(
      optimizer,
      loss=None,
      metrics=None,
      loss_weights=None,
      sample_weight_mode=None,
      weighted_metrics=None,
      target_tensors=None,
      distribute=None,
      )

      Arguments:

  1. 完整例子

2. Multiple Layer Neural Network

3. Convolutional Neural Network

4. Recurrent Neural Network

4.1 RNN

4.2 LSTM

5. Generative Adversarial Network

Reference

  1. TensorFlow Tutorial:https://www.tensorflow.org/tutorials/
  2. TensorFlow Guide:https://www.tensorflow.org/guide/

Comments

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×