tensorflow2.0筆記10:全連接層和輸出方式!

全連接層和輸出方式!

一、全連接層

1.1、前言介紹

1.2、Fully connected layer(全連接層)

  • inputinputshapeshapebuildbuildshapeshape不一致情況

1.3、Muti-layers前面是一層

1.4、實戰演練

  • 測試代碼
import tensorflow as tf
from tensorflow import keras
import os

os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'


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()

for p in model.trainable_variables:
    print(p.name,p.shape)
  • 運行結果

1.5、補充tensorflow在pycharm自動補全

  • 我們使用的時候可以發現,pycharm中tensorflow2.0的代碼補全功能很不好用;其實不是因爲pycharm的原因,是tensorflow代碼封裝的原因,可以用下面的方式:
from tenorflow.python import keras			#代替下面的
from tensorflow import keras                #代碼補全功能就非常好用了。

原因是因爲: 看tensorflow的源碼,有一個@tf_exportt的裝飾器,帶有這個的都可以用,但是沒有辦法補全。

二、輸出方式

2.1、輸出範圍約束

2.2、實數集範圍R

2.3、輸出範圍[0-1]tf.sigmoid()

  • 演示實例:

注意:
1、tf.linspace(start, end, num):這個函數主要的參數就這三個,start代表起始的值,end表示結束的值,num表示在這個區間裏生成數字的個數,生成的數組是等間隔生成的。start和end這兩個數字必須是浮點數,不能是整數,如果是整數會出錯的,請注意!
2、np.linspace(start, end, num):主要的參數也是這三個,我們平時用的時候絕大多數時候就是用這三個參數。start代表起始的值,end表示結束的值,num表示在這個區間裏生成數字的個數,生成的數組是等間隔生成的。start和end這兩個數字可以是整數或者浮點數!

2.4、輸出範圍[0-1]tf.nn.softmax()

  • 經常應用在分類問題

2.5、輸出範圍[-1~1]tf.nn.softmax()

注意: tanh函數其實是sigmoid函數通過平移實現的,先對y的範圍進行一個放大,放達到0~2,再往下平移了一下。把數值壓縮到-1到1之間。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章