1. 程式人生 > >deep learning tutorial 翻譯(theano學習指南4(翻譯)- 卷積神經網路 )

deep learning tutorial 翻譯(theano學習指南4(翻譯)- 卷積神經網路 )

複製程式碼
from theano.tensor.nnet import conv
rng = numpy.random.RandomState(23455)

# instantiate 4D tensor for input
input = T.tensor4(name='input')

# initialize shared variable for weights.
w_shp = (2, 3, 9, 9)
w_bound = numpy.sqrt(3 * 9 * 9)
W = theano.shared( numpy.asarray(
            rng.uniform(
                low
=-1.0 /
w_bound, high=1.0 / w_bound, size=w_shp), dtype=input.dtype), name ='W') # initialize shared variable for bias (1D tensor) with random values # IMPORTANT: biases are usually initialized to zero. However in this # particular application, we simply apply the convolutional layer to
# an image without learning the parameters. We therefore initialize # them to random values to "simulate" learning. b_shp = (2,) b = theano.shared(numpy.asarray( rng.uniform(low=-.5, high=.5, size=b_shp), dtype=input.dtype), name ='b') # build symbolic expression that computes the convolution of input with filters in w
conv_out =
conv.conv2d(input, W) # build symbolic expression to add bias and apply activation function, i.e. produce neural net layer output # A few words on ``dimshuffle`` : # ``dimshuffle`` is a powerful tool in reshaping a tensor; # what it allows you to do is to shuffle dimension around # but also to insert new ones along which the tensor will be # broadcastable; # dimshuffle('x', 2, 'x', 0, 1) # This will work on 3d tensors with no broadcastable # dimensions. The first dimension will be broadcastable, # then we will have the third dimension of the input tensor as # the second of the resulting tensor, etc. If the tensor has # shape (20, 30, 40), the resulting tensor will have dimensions # (1, 40, 1, 20, 30). (AxBxC tensor is mapped to 1xCx1xAxB tensor) # More examples: # dimshuffle('x') -> make a 0d (scalar) into a 1d vector # dimshuffle(0, 1) -> identity # dimshuffle(1, 0) -> inverts the first and second dimensions # dimshuffle('x', 0) -> make a row out of a 1d vector (N to 1xN) # dimshuffle(0, 'x') -> make a column out of a 1d vector (N to Nx1) # dimshuffle(2, 0, 1) -> AxBxC to CxAxB # dimshuffle(0, 'x', 1) -> AxB to Ax1xB # dimshuffle(1, 'x', 0) -> AxB to Bx1xA output = T.nnet.sigmoid(conv_out + b.dimshuffle('x', 0, 'x', 'x')) # create theano function to compute filtered images f = theano.function([input], output)
複製程式碼

相關推薦

deep learning tutorial 翻譯theano學習指南4翻譯- 神經網路

from theano.tensor.nnet import conv rng = numpy.random.RandomState(23455) # instantiate 4D tensor for input input = T.tensor4(name='input') # initializ

Deep learning with Theano 官方中文教程翻譯—— 神經網路CNN

供大家相互交流和學習,本人水平有限,若有各種大小錯誤,還請巨牛大牛小牛微牛們立馬拍磚,這樣才能共同進步!若引用譯文請註明出處http://www.cnblogs.com/charleshuang/。 文章中的程式碼截圖不是很清晰,可以去上面的原文網址去檢視。 1、動機    卷積神經網路(CNN

深度學習FPGA實現基礎知識10(Deep Learning深度學習神經網路(Convolutional Neural Network,CNN))

第一點,在學習Deep learning和CNN之前,總以為它們是很了不得的知識,總以為它們能解決很多問題,學習了之後,才知道它們不過與其他機器學習演算法如svm等相似,仍然可以把它當做一個分類器,仍然可以像使用一個黑盒子那樣使用它。 第二點,Deep Learning強大的地方就是可以利用網路中間某一

機器學習與深度學習系列連載: 第二部分 深度學習十二神經網路 3 經典的模型LeNet-5,AlexNet ,VGGNet,GoogLeNet,ResNet

卷積神經網路 3 經典的模型 經典的卷積神經網路模型是我們學習CNN的利器,不光是學習原理、架構、而且經典模型的超引數、引數,都是我們做遷移學習最好的源材料之一。 1. LeNet-5 [LeCun et al., 1998] 我們還是從CNN之父,LeCun大神在98年提出的模

機器學習與深度學習系列連載: 第二部分 深度學習十一神經網路 2 Why CNN for Image?

卷積神經網路 2 Why CNN 為什麼處理圖片要用CNN? 原因是: 一個神經元無法看到整張圖片 能夠聯絡到小的區域,並且引數更少 圖片壓縮畫素不改變圖片內容 1. CNN 的特點 卷積: 一些卷積核遠遠小於圖片大小; 同樣的pat

機器學習與深度學習系列連載: 第二部分 深度學習神經網路 1 Convolutional Neural Networks

卷積神經網路 Convolutional Neural Networks 卷積神經網路其實早在80年代,就被神經網路泰斗Lecun 提出[LeNet-5, LeCun 1980],但是由於當時的資料量、計算力等問題,沒有得到廣泛使用。 卷積神經網路的靈感來自50年代的諾貝爾生物學獎

Tensorflow學習筆記第三天神經網路

     對CIFAR-10 資料集的分類是機器學習中一個公開的基準測試問題,其任務是對一組大小為32x32的RGB影象進行分類,這些影象涵蓋了10個類別: 飛機, 汽車, 鳥, 貓, 鹿, 狗, 青蛙, 馬, 船以及卡車。

機器學習筆記十二:TensorFlow實戰四影象識別與神經網路

1 - 卷積神經網路常用結構 1.1 - 卷積層 我們先來介紹卷積層的結構以及其前向傳播的演算法。 一個卷積層模組,包含以下幾個子模組: 使用0擴充邊界(padding) 卷積視窗過濾器(filter) 前向卷積 反向卷積(可選) 1.1

機器學習筆記十二:TensorFlow實現四影象識別與神經網路

1 - 卷積神經網路常用結構 1.1 - 卷積層 我們先來介紹卷積層的結構以及其前向傳播的演算法。 一個卷積層模組,包含以下幾個子模組: 使用0擴充邊界(padding) 卷積視窗過濾器(filter) 前向卷積 反向卷積(可選) 1.1.2 - 邊界填充

深度學習神經網路問題總結

 深度卷積網路   涉及問題: 1.每個圖如何卷積:   (1)一個圖如何變成幾個?   (2)卷積核如何選擇? 2.節點之間如何連線? 3.S2-C3如何進行分配? 4.1

深度學習神經網路入門學習(1)

卷積神經網路入門學(1)作者:hjimce卷積神經網路演算法是n年前就有的演算法,只是近年來因為深度學習相關演算法為多層網路的訓練提供了新方法,然後現在電腦的計算能力已非當年的那種計算水平,同時現在的訓練資料很多,於是神經網路的相關演算法又重新火了起來,因此卷積神經網路就又活

深度學習1——深度學習神經網路入門學習(1)

卷積神經網路入門學(1) 轉載自:hjimce的專欄 - 部落格頻道 - CSDN.NET 原文地址:http://blog.csdn.NET/hjimce/article/details/47323463 作者:hjimce 卷積

深度學習進階--神經網路與深度置信網路以及自動編碼初識補昨天部落格更新

總結一下昨天的學習過程 (注:這幾天老不在狀態,貌似進入了學習激情的瓶頸期,動力以及平靜心嚴重失控,Python3.X與Python2.X之間的程式碼除錯,尤其是環境配置搞得頭昏腦脹) 昨天瞭解接觸的內容 CNN卷積神經網路的基本原理以及在CPU中測試以及程式碼除錯(又是失

斯坦福大學深度學習公開課cs231n學習筆記10神經網路

前記:20世紀60年代,Hubel和Wiesel在研究貓腦皮層中用於區域性敏感和方向選擇的神經元時,發現其獨特的網路結構可以有效地降低反饋神經網路的複雜性,繼而提出了卷積神經網路(Convolutio

機器學習筆記神經網路CNN

1.前言: 卷積神經網路在計算視覺領域的表現十分出色,與普通的BP神經網路一樣,CNN同樣由神經元組成。其實卷積神經網路是卷積+神經網路,基本上由三部分組成:卷積層,pooling層,全連線層。 2.CNN:卷積層 卷積是一個訊號領域的概念,我們這裡提

深度學習神經網路Lenet-5實現

卷積神經網路Lenet-5實現 作者:hjimce 卷積神經網路演算法是n年前就有的演算法,只是近年來因為深度學習相關演算法為多層網路的訓練提供了新方法,然後現在電腦的計算能力已非當年的那種計算水平,同時現在的訓練資料很多,於是神經網路的相關演算法

人工智慧實踐:TensorFlow筆記學習—— 神經網路基礎

大綱7.1 卷積神經網路7.2  lenet5程式碼講解目標掌握卷積神經網路的搭建方法7.1 卷積神經網路全連線 NN:每個神經元與前後相鄰層的每一個神經元都有連線關係,輸入是特徵,輸出為預測的結果。引數個數:(前層X後層+後層)  一張解析度僅僅是28x28的黑白影象,就有

深度學習十五神經網路CNN3---區域性連線

       作用:降低引數數目,減少網路運算複雜度。       原理:一般認為人對外界的認知是從區域性到全域性的,而影象的空間聯絡也是區域性的畫素聯絡較為緊密,而距離較遠的畫素相關性則較弱。因而,每個神經元其實沒有必要對全域性影象進行感知,只需要對區域性進行感知,然後在更

深度學習神經網路一些問題總結

深度卷積網路涉及問題:1.每個圖如何卷積:(1)一個圖如何變成幾個?(2)卷積核如何選擇?2.節點之間如何連線?3.S2-C3如何進行分配?4.16-120全連線如何連線?5.最後output輸出什麼形式?①各個層解釋:   我們先要明確一點:每個層有多個Feature Ma

學習筆記之——基於pytorch的神經網路

本博文為本人的學習筆記。參考材料為《深度學習入門之——PyTorch》 pytorch中文網:https://www.pytorchtutorial.com/  關於反捲積:https://github.com/vdumoulin/conv_arithmetic/blob/ma