keras如何輸出softmax分類結果屬於某一類的概率

時間 2021-07-08 22:03:13

1樓:匿名使用者

softmax是用於單標籤輸出,模型訓練後,呼叫model.predict函式就可以輸出結果為[0.5,0.

4,0.1](輸出數量為最後一層隱藏層的neuron數)這樣的矩陣,裡面即為你所需的**概率值,值得注意的是,softmax會限制輸出的所有概率相加為1。

如果需要**的是多個標籤而不是單個標籤,則需要使用sigmoid作為輸出啟用函式,那麼輸出就不再強制相加為1,可以得到每個分類的實際**值,此時只需要設定一個致信的threshold則可以得到多個分類**值。

每個啟用函式的詳細解釋看這裡網頁連結

2樓:手機使用者

不知道您有沒有解決,希望可以一起討論,我現在也需要得到每種分類的置信度。

3樓:一顆塞踢得

# test_x 測試資料,三維矩陣形式[samples_num, time_steps, feature_dim]

# batch_size自行設定

predict_y = model.predict(test_x, batch_size = batch_size)

然後檢視predict_y的值即可

4樓:匿名使用者

keras 自身包含 mnist 這個資料集,再分成訓練集和測試集。x 是一張張**,y 是每張**對應的標籤,即它是哪個數字。輸入的 x 變成 60,000*784 的資料,然後除以 255 進行標準化,標準化之後就變成了(0, 1)之間。

對於 y,要用到 keras 改造的 numpy 的一個函式 np_utils.to_categorical,把 y 變成了 one-hot 的形式,即之前 y 是一個數值, 在 0-9 之間,現在是一個大小為10 的向量,其屬於哪個數字,就在那個位置為 1,其他位置都是 0。

計算機到底和數學有什麼關係

5樓:河傳楊穎

數學是基礎學科,有豐富的數學基礎可以對理解程式設計中的邏輯有幫助。

程式設計對不同的人有不同的意義:

對於一般的程式設計師就是**的產出和可執行程式(數學在這裡面並不是特別重要,更重要的是對各種框架的理解、熟練掌握、設計模式等)。

對於演算法工程師來說,數學就很重要了(例如機器學習,密碼學,計算機圖形學等,當然這個對題主來說還太遙遠)。

題主說的函式實際上就是為了實現目的的一種封裝形式,而遞迴只是在函式中呼叫自身(當然需要終止條件)。

擴充套件資料

計算機的三大主要特點

1、運算速度快:計算機內部電路組成,可以高速準確地完成各種算術運算。當今計算機系統的運算速度已達到每秒萬億次,微機也可達每秒億次以上,使大量複雜的科學計算問題得以解決。

例如:衛星軌道的計算、大型水壩的計算、24小時天氣算需要幾年甚至幾十年,而在現代社會裡,用計算機只需幾分鐘就可完成。

2、計算精確度高:科學技術的發展特別是尖端科學技術的發展,需要高度精確的計算。計算機控制的導彈之所以能準確地擊中預定的目標,是與計算機的精確計算分不開的。

一般計算機可以有十幾位甚至幾十位(二進位制)有效數字,計算精度可由千分之幾到百萬分之幾,是任何計算工具所望塵莫及的。

3、邏輯運算能力強:計算機不僅能進行精確計算,還具有邏輯運算功能,能對資訊進行比較和判斷。計算機能把參加運算的資料、程式以及中間結果和最後結果儲存起來,並能根據判斷的結果自動執行下一條指令以供使用者隨時呼叫。

6樓:匿名使用者

電腦科學和數學的關係有點奇怪。二三十年以前,電腦科學基本上還是數學的一個分

支。而現在,電腦科學擁有廣泛的研究領域和眾多的研究人員,在很多方面反過來推動

數學發展,從某種意義上可以說是孩子長得比媽媽還高了。

但不管怎麼樣,這個孩子身上始終流著母親的血液。這血液是the mathematical underpi

nning of computer science(電腦科學的數學基礎),-- 也就是理論電腦科學。

現代電腦科學和數學的另一個交叉是計算數學/數值分析/科學計算,傳統上不包含在理

論電腦科學以內。所以本文對計算數學全部予以忽略。

最常和理論電腦科學放在一起的一個詞是什麼?答:離散數學。這兩者的關係是如此密

切,以至於它們在不少場合下成為同義詞。

傳統上,數學是以分析為中心的。數學系的同學要學習三四個學期的數學分析,然後是復

變,實變,泛函等等。實變和泛函被很多人認為是現代數學的入門。在物理,化學,工程

上應用的,也以分析為主。

隨著電腦科學的出現,一些以前不太受到重視的數學分支突然重要起來。人們發現,這

些分支處理的數學物件與傳統的分析有明顯的區別:分析研究的物件是連續的,因而微分

,積分成為基本的運算;而這些分支研究的物件是離散的,因而很少有機會進行此類的計

算。人們從而稱這些分支為“離散數學”。“離散數學”的名字越來越響亮,最後導致以

分析為中心的傳統數學分支被相對稱為“連續數學”。

離散數學經過幾十年發展,基本上穩定下來。一般認為,離散數學包含以下學科:

1) 集合論,數理邏輯與元數學。這是整個數學的基礎,也是電腦科學的基礎。

2) 圖論,演算法圖論;組合數學,組合演算法。電腦科學,尤其是理論電腦科學的核心是

演算法,而大量的演算法建立在圖和組合的基礎上。

3) 抽象代數。代數是無所不在的,本來在數學中就非常重要。在電腦科學中,人們驚訝

地發現代數竟然有如此之多的應用。

但是,理論電腦科學僅僅就是在數學的上面加上“離散”的帽子這麼簡單嗎?一直到大

約十幾年前,終於有一位大師告訴我們:不是。d.

e.knuth(他有多偉大,我想不用我廢話了)在stanford開設了一門全新的課程concrete mathematics。 concrete這個詞在這裡有兩層含義:

第一,針對abstract而言。knuth認為,傳統數學研究的物件過於抽象,導致對具體的問題

關心不夠。他抱怨說,在研究中他需要的數學往往並不存在,所以他只能自己去創造一些

數學。為了直接面嚮應用的需要,他要提倡“具體”的數學。在這裡我做一點簡單的解釋。

例如在集合論中,數學家關心的都是最根本的問題--公理系統的各種性質之類。而一些具體集合的性質,各種常見集合,關係,對映都是什麼樣的,數學家覺得並不重要。然而,在電腦科學中應用的,恰恰就是這些具體的東西。

knuth能夠首先看到這一點,不愧為當世計算機第一人。

第二,concrete是continuous(連續)加上discrete(離散)。不管連續數學還是離散數學,

都是有用的數學!

前面主要是從數學角度來看的。從計算機角度來看,理論電腦科學目前主要的研究領域

包括:可計算性理論,演算法設計與複雜性分析,密碼學與資訊保安,分散式計算理論,並

行計算理論,網路理論,生物資訊計算,計算幾何學,程式語言理論等等。這些領域互相

交叉,而且新的課題在不斷提出,所以很難理出一個頭緒來。

下面隨便舉一些例子。

由於應用需求的推動,密碼學現在成為研究的熱點。密碼學建立在數論(尤其是計算數論)

,代數,資訊理論,概率論和隨機過程的基礎上,有時也用到圖論和組合學等。

很多人以為密碼學就是加密解密,而加密就是用一個函式把資料打亂。這就大錯特錯了。

現代密碼學至少包含以下層次的內容:

第一,密碼學的基礎。例如,分解一個大數真的很困難嗎?能否有一般的工具證明協議正

確?第二,密碼學的基本課題。例如,比以前更好的單向函式,簽名協議等。

第三,密碼學的高階問題。例如,零知識證明的長度,祕密分享的方法。

第四,密碼學的新應用。例如,數字現金,叛徒追蹤等。

7樓:匿名使用者

計算機都是用二進位制數字來運算的。

8樓:匿名使用者

數學只要是演算法思想.. 程式設計核心就是演算法思想。

計算機專業與數學課程

9樓:為午夜陽光

計算機專業與數學課程中線性代數,概率論和離散數學有密切的關係,務必學好這些。要知道,凡是能稱之為“科學”的專業,就必須有一定的數學功底,否則難以稱作“科學”。這三門課是本科時期最重要的三門數學課,比高等數學重要。

如果想在電腦科學的道路上走遠點,那這三門可是必修的。

就電腦科學與技術專業而言,以下這些是必修的:

1、計算機組成原理(包括先修課程“數字邏輯與數字系統”,簡稱“數電”):這是一門硬體基礎課,學完後你能清楚的知道如何從用最簡單的數字元件,像搭積木一樣構成整個計算機系統,那就算及格了。

2、線性代數,概率論和離散數學:要知道,凡是能稱之為“科學”的專業,就必須有一定的數學功底,否則難以稱作“科學”。這三門課是本科時期最重要的三門數學課,比高等數學重要。

如果想在電腦科學的道路上走遠點,那這三門可是必修的。

3、mit開設的《introduction to algorithm》,中文版叫《演算法導論》:應該學習它而不是國內習慣開設的《資料結構》。資料結構僅僅是演算法的一部分,國內的資料結構課程迴避了很多本質的東西,僅僅是對一些常見的資料結構的羅列,學起來總有些不痛不癢的感覺。

《introduction to algorithm》雖然有些章節夾雜著很多很讓人討厭的“數學”,但卻能從本質上帶你領略這門十分必要而且有趣兒的課。

4、作業系統與編譯原理:作業系統可以說是《演算法導論》的實驗課,最好能在學習期間自己實現一個小型的作業系統,或者作業系統各分系統的demo。編譯原理可能是普遍本科生覺得難的一門課,但是作為軟體科學家,這是基礎中的基礎,學完之後所有的語言在你看來應該沒有太大的區別,這麼課應該是離散數學+演算法導論的實驗課。

最好能在學習期間自己實現一個小型的編譯器,語言最好是自創。

5、掌握一門常用的程式語言和程式設計技術:能瞭解用過的所有的程式內部大致是怎樣的,能用自己熟悉的語言編寫大部分的程式,至少不能是對任何一個程式滿頭霧水。

10樓:匿名使用者

必學的是:離散

數學,高等數學,概率論與數理統計,線性代數這些都是學計算機必學的課.

組合數學與數論,是有關密碼的.

數值分析,是有關建數學模型的.(有點型別計算機的演算法)集合論與圖論,其實跟離散數學差不多.

......

這些學了也會有點幫助.

請問SVM如何輸出概率值,如何讓SVM輸出概率

傲羽千凝 使用libsvm工具箱的話,在函式svmtrain和svmpredict的輸入引數部分加入 b 1 函式svmpredict的輸出引數增加至3個即可 例如 prob estimates svmpredict label test,feature test,svmstruct,b 1 其中p...

在php中如何輸出空格,在PHP中如何輸出空格

echo 空nbsp 把空字去掉。 陽光上的橋 你的問題有三個意思 一是php輸出東西的方法,回答 php使用echo語句輸出內容,例如下面的語句輸出hello echo hello 二是php如何輸出空格,回答 空格是乙個字串,前後使用引號 但雙均可 然後用echo就可以輸出,例如下面的語句輸出兩...

C語言中如何輸出圖形,C語言如何輸出圖中的圖形?

你可以採用迴圈的方法來做,需要輸出a的位置的時候就輸出a,其他地方就輸出空格,就行了 include void main int i,j,n printf 請輸入要輸出幾行 n scanf d n for i 0 i n i for j 0 jprintf for int k 0 k 2 i 1 k...