人工智慧-Keras深度學習入門-mnist,編程環境Jupyter

2020-10-22 guszhang


一、運行 Jupyter

Jupyter在編輯過程中,每編輯一段代碼,就可以運行一段代碼,運行的結果也將直接顯示在代碼下方, 方便查看。 在數據科學領域, 需要頻繁的進行數據清洗,查看,以及畫圖, 非常需要這種交互式的開發環境。


運行以及編輯的所有結果會保存在文件中,後續只要把文件分享給別人, 就可以看到你的一系列操作。


Jupyter以段落為主的編輯模式:


啟動jupyter, 系統提示如下錯誤:

C:\WINDOWS\system32>jupyter notebook

AttributeError: type object 'IOLoop' has no attribute 'initialized'

原因:

tornado版本過高,如下圖為5.1.1,不支持jupyter notebook.

conda install tornado=4.5

啟動jupyter, 啟動成功


為了便於文件管理, 指定工作路逕啟動:

jupyter notebook D:\g_learn\jupyter


二、通過Jupter,來進行Keras環境檢查:

新建一個python文件,命名為keras_evn,保存

  1. Python 版本檢查,輸入命令!python --version,用 [shift +enter]運行
  2. 基礎包導入檢查,用 [shift +enter]運行,正常
  3. 檢查安裝版本

三、用Python實現感知機,為了便於理解keras的各種api的作用:

前向傳播:通過輸入層輸入,並且一路向前計算出輸出的結果。

反向傳播:通過輸出反向更新權重的過程。差值*學習率來更新權重。

鏈式法則:是微積分中的求導法則,用於求一個複合函數的導數,是在微積分的求導運算中一種常用的方法。複合函數的導數將是構成複合這有限個函數在相應點的 導數的乘積,就像鎖鏈一樣一環套一環,故稱鏈式法則。

線性感知機:根據特徵對數據進行分類通過這個算法,可以發現一條曲線、曲面,或者叫做超平面,在二維圖形中可以表現為一條直線,當維度大於3時表現為是一個超平面,n-1維。

在一個二維空間內,生成一些點, 生成一條直線,將原來點進行分割。用感知機對隨機點進行分類, 來看差別。

運行結果如下:

四、Keras Hello world - Minist手寫體識別:

Keras基礎模塊:

在juypter中, 用SHIFT+TAB鍵快速查看函數參數

Minist 手寫體識別導入數據集|模型|層|優化器

從數據集中加載數據,訓練集和測試集,這個操作需要一會兒

訓練集60000張 28*28,測試集

這是可視化的包, 以灰度展示,加上參數cmap="gray"

看一下這張圖片是不是5,將圖片轉成一個一維的向量,並查看。

可以看到這是0-255的值

可以看到這是0-255的值

我們期望把值縮小到0-1之內, 神經網絡可以更快的收斂。

對有標籤進行處理, keras提供了相應的工具,用to_categorical,將向量轉化為二階矩陣,因為是0-9, 所以是10個。


構建模型,後面的工作都交給神經網絡。輸入層-隱藏層-輸出層

以上搭建了模型,通過compile,對神經網絡進行編譯:優化器,損失函數, 通過【準確度】可以人為評判。

對模型進行訓練,優化5次,可以看到, 精度越來越高,損失越來越小

用evaluate對模型的效果進行評估

'activations', 激活函數'applications', 有已經訓練好的模型'callbacks',回調函數engine 是layer層的核心代碼layers 包括keras已經實現的網絡層,和卷積層等losses 損失函數,衡量訓練中的好壞metricsmodels 函數式編程,和序貫編程optimizer 更新權值的一個方法preprocessing 預處理模塊regularizersutils 工具模塊wrappers 封裝模塊

相關焦點

  • Tensorflow(入門)——Mnist分類問題
    最近開始向深度學習發展,學習深度學習自然要學習Tensorflow,而且它的中文社區非常活躍,課程強烈推薦龍龍老師的課。要學習深度學習,先從分類問題開始入門吧。在Tensorflow社區中,有個入門級的問題,就是Mnist數據集的分類問題。
  • 圖像分類入門,輕鬆拿下90%準確率|教你用Keras搞Fashion-MNIST
    這個數據集致力於成為手寫數字數據集MNIST的替代品,可用作機器學習算法的基準測試,也同樣適合新手入門。Keras是個容易上手且深受歡迎的深度學習高級庫,是一個獨立開源項目。在TensorFlow中,可以使用tf.keras函數來編寫Keras程序,這樣就能充分利用動態圖機制eager execution和tf.data函數。下面可能還會遇到其他深度學習名詞,我們就不提前介紹啦。
  • Keras與PyTorch及Caffe的CNN實現對比
    ,而且由於先進的深度學習框架,它非常容易部署。這些深度學習框架提供了高級編程接口,幫助我們設計深度學習模型。使用深度學習框架,它通過提供內置的庫函數來減少開發人員的工作,從而使我們能夠更快更容易地構建模型。
  • Keras PyTorch Caffe CNN實現對比
    在當今世界,人工智慧已被大多數商業運作所應用,而且由於先進的深度學習框架,它非常容易部署。這些深度學習框架提供了高級編程接口,幫助我們設計深度學習模型。使用深度學習框架,它通過提供內置的庫函數來減少開發人員的工作,從而使我們能夠更快更容易地構建模型。
  • 評測| CNTK在Keras上表現如何?能實現比TensorFlow更好的深度學習嗎?
    作者:Max Woolf機器之心編譯參與:Jane W、吳攀Keras 是由 Franois Chollet 維護的深度學習高級開源框架,它的底層基於構建生產級質量的深度學習模型所需的大量設置和矩陣代數。Keras API 的底層基於像 Theano 或谷歌的 TensorFlow 的較低級的深度學習框架。
  • 資料| Keras 圖像深度學習實戰
    它是一款非常流行的深度學習計算框架,利用keras只要十幾行代碼就能寫出一個簡單的神經網絡訓練模型。Keras本身並不提供深度學習的計算引擎,實際它是利用TensorFlow或者Theano作為後端計算引擎的,但它封裝了眾多API接口,使用者只要了解其封裝層的特性就能靈活應用於各種應用場景,是作為深度學習開發者的編程利器。
  • 因特理臻深度學習系統培訓教程
    17NumPy 切片和索引 21NumPy 高級索引 23NumPy 廣播(Broadcast) 26星期二 keras深度學習框架一、認識keras 1二、為什麼選擇 Keras 4三、Keras 模型 5四、Sequential 順序模型 8五、函數式 API定義模型
  • 想學習人工智慧,這個的數據集必須掌握,MNIST入門與實戰
    前文我們介紹了如何在Windows環境下安裝TensorFlow( )。學習知識最好的方法就是實踐了,因此接下來我們通過實操的方式來學習人工智慧相關的知識。學習人工智慧少不了需要一些數據集,比如進行鑑黃的人工智慧少不了一些類似的圖片。進行語音識別的人工智慧,語料庫是少不了的。對於初學人工智慧的同學常常為數據集而發愁。
  • 入門深度學習不會搭建環境?手把手教你在Amazon EC2上安裝Keras
    由於用法十分簡單,它很適合入門深度學習。它基於Tensorflow,一個數值計算的開源庫,但是也可以使用Theano。租到的機器可以使用Jupyter Notebook通過瀏覽器來訪問。Jupyter Notebook是一個通過交互式代碼來共享和編輯文檔的web應用。通過cuDNN,一個深度神經網絡GPU加速庫,Keras可以在GPU上運行。
  • Python入門編程,搭建運行環境,關注知識點
    Python在AI領域是主流開發語言,學習入門不難,尤其是隨著近幾年人工智慧深度學習快速發展,學習使用Python編程的程式設計師越來越多。一,快速搭建開發環境不僅Python語言好學,而且開發環境容易搭建,Jupyter Notebook和AI互相搭臺,共同助推Python繁榮了起來。Jupyter Notebook是一個交互式筆記本,便於創建和共享程序文檔,支持實時代碼,數學方程,可視化和 markdown,在用Python編寫AI代碼時特別方便。
  • 深度學習的學習率調節實踐
    當一個ANN包含一個很深的隱藏層時,它被稱為深度神經網絡(DNN)。在這項調查中,我們將在MNIST時尚數據集上訓練一個深度MLP,並通過指數增長來尋找最佳學習率,繪製損失圖,並找到損失增長的點,以達到85%以上的準確率。對於最佳實踐,我們將實現早期停止,保存檢查點,並使用TensorBoard繪製學習曲線。
  • python小白學習之anaconda的安裝與Jupyter環境配置
    隨著機器學習和人工智慧的崛起,python被越來越多的程序猿使用。python非常易用,但是包管理和Python不同版本問題卻讓人非常頭疼。Anaconda有著強大的包管理與環境管理功能,將python和許多常用的package打包。本文主要介紹linux下Anaconda的安裝與Jupyter環境配置。
  • 哪一個才更適合編程實現深度神經網絡?
    編程實現神經網絡的最佳框架是什麼?TensorFlow還是PyTorch?我的回答是:別擔心,你從哪一個入門,你選擇哪一個並不重要,重要的是自己動手實踐!下面我們開始吧!最重要的是要學習背後的深度學習概念,您在其中一個框架中獲得的所有知識在另一個框架下照樣有用。3. 工業應用還是學術研究?但是,很明顯,神經網絡的工業應用與學術研究是截然不同的。 在這種情況下,決定選擇哪一個很重要。
  • 用Keras構建神經網絡的3種方法
    這就像是TensorFlow試圖找到通往光明的深度學習環境的道路。由於TensorFlow是目前市場上最成熟的深度學習庫,這基本上是你能得到的最好的。Keras-TensorFlow的關係背景TensorFlow發展成為一個深度學習平臺並不是一夜之間發生的。最初,TensorFlow將自己推銷為一個符號數學庫,用於跨一系列任務的數據流編程。
  • keras深度學習實戰培訓教程
    keras深度學習實戰培訓教程 學習基礎:熟悉python,有了深度學習理論基礎,就是缺少動手編程能力,無從下手。參加培訓後可以參加深度學習競賽,做科研工作。手把手教你掌握深度學習 1.波士頓房價回歸學習(3節課)文檔學習代碼訓練代碼解釋普通版本優化版本 2. 燕尾花分類學習(2節課)文檔學習代碼訓練代碼解釋 3.
  • Keras R語言接口正式發布,同時公開20個完整示例
    關於keras的介紹Keras是一個高層神經網絡API,為支持快速實驗而生,目前主要功能如下:支持相同的代碼無縫跑在CPU或GPU上對用戶友好,易於快速prototype深度學習模型支持計算機視覺中的卷積網絡、序列處理中的循環網絡,也支持兩種網絡的任意組合支持任意網絡架構:多段輸入或多段輸出模型
  • 小白學CNN以及Keras的速成
    對於框架之爭,在知乎上已經有很多人在撕逼了,這個就好比哪種程式語言好這個問題一樣。對於我們來講,選擇一個穩定的框架,好好的學習deep learning才是重中之重,對於哪種框架更好的問題,我們學好之後自然有自己的見解,所以前期切忌在刷知乎聽完大神撕逼之後頻繁更換框架。
  • 人工智慧領域之深度學習環境配置,CentOS7.5系統下配置GPU環境
    近幾年在科研領域深度學習憑藉著超強的實力脫穎而出,人工智慧也走進了各行各業,因此相關領域的方向也成為學術界的愛寵,絕大多數相關領域的導師都開展了深度學習的相關課題。當然在很多高校和科研院所的導師以前一直是做這個方向的,同學們學習起來肯定會更加便捷,在學習深度學習的過程中配置環境變成了一個大難題,筆者之前在Ubuntu16.04LTS系統下配置深度學習GPU計算環境,在訓練的過程中經常出現一系列問題,系統出現了許多故障,因此筆者開始進行在Centos7.5環境下進行配置GPU計算環境,此環境經過一年使用非常穩定,因此發布此教程,希望可以對剛剛入門做深度學習相關領域的有一些幫助
  • Wandb用起來,一行Python代碼實現Keras模型可視化
    from wandb import magicKeras examples連結:https://github.com/keras-team/keras簡單的CNN由入門的mnist_cnn.py開始,我添加了一行「from wandb import magic」——你也可以查看mnist_cn.py,這是從Keras examples
  • Keras vs PyTorch:誰是第一深度學習框架?
    兩大框架的連結:  Keras:https://github.com/keras-team/keras (https://keras.io/)  PyTorch:https://github.com/pytorch/pytorch  你想學習深度學習嗎?