深度學習入門之第三章 神經網路 輸出層的設計方案

2021-09-11 05:34:05 字數 1338 閱讀 7788

本節所講的神經網路輸出層主要是指用於識別器中的輸出層設計,識別器的輸出層一般具有兩個功能,第一判斷影象是真實影象還是生成的影象,第二用於conditional gans中判斷影象的類別。

如果是判別影象是否是真實影象,通常我們會直接使用sigmoid函式,

如果是判別影象的類別,且不是二分類問題的話  我們一般都會使用到softmax函式

當然也有直接輸出不使用sigmoid或者softmax函式的, 但是這種情況都是和tensorflow封裝好的優化器相結合,這裡就不講這部分。 等講到優化器那一章好好談談這種情況

softmax函式其公式為

我的理解就是求資料最有可能是那個類別 而且從結果可以看出 softmax最後輸出的資料總和一定是1

import numpy as np

import tensorflow as tf

def softmax(x):

c = np.max(x)

exp = np.exp(x-c)

sum_exp = np.sum(exp)

class_y = exp / sum_exp

return class_y

sample = np.array([-1, 1, -2, 2])

result = softmax(sample)

sum_result = np.sum(result)

print("the result of softmax difined by myself is:",result)

print("the sum of softmax difined by myself is:",sum_result)

sample = tf.convert_to_tensor(sample,dtype=tf.float64)

tf_result = tf.nn.softmax(sample)

sess = tf.session()

print("the result of sigmoid difined by tensorflow is: ", sess.run(tf_result))

'''程式輸出結果是:

the result of softmax difined by myself is: [0.03467109 0.25618664 0.01275478 0.69638749]

the sum of softmax difined by myself is: 1.0

the result of softmax difined by tensorflow is: [0.03467109 0.25618664 0.01275478 0.69638749]

'''

深度學習入門學習 第三章 神經網路

7.12 第三章 神經網路 對於感知機來說,設定權重的工作,即確定合適的,能符合預期的輸入與輸出的權重,現在還是由人工進行的。神經網路的乙個重要性質是它可以自動的從資料中學習到合適的權重引數。本章內容 先介紹神經網路的概要,然後重點關注神經網路進行識別時的處理。1.從感知機到神經網路 了解不同之處,...

第三章 tensorflow入門

tensoflow即tensor flow,張量 流動,張量即陣列。tensorboard視覺化工具。tensorflow三個基本概念 計算圖 tf.graph 張量 tf.tensor 會話 tf.session 計算圖是計算模型,每個節點是乙個運算,邊表示資料傳遞關係,資料是張量。tensofl...

深度學習 神經網路入門

在進行這方面學習工作的時候,在網上蒐集到了很多的資料與部落格,之前一直把學習的筆記存放在有道雲裡,最近決定還是想要整理成部落格所以接下來會一直把我之前的機器學習 深度學習 強化學習的相關知識和自己的經驗整理成部落格陸續更新 深度學習是基於神經網路的研究,含多隱層的多層感知器就是一種深度學習結構。深度...