国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【深度學(xué)習(xí)】6-4 卷積神經(jīng)網(wǎng)絡(luò) - CNN的實現(xiàn)

這篇具有很好參考價值的文章主要介紹了【深度學(xué)習(xí)】6-4 卷積神經(jīng)網(wǎng)絡(luò) - CNN的實現(xiàn)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

CNN的實現(xiàn)
【深度學(xué)習(xí)】6-4 卷積神經(jīng)網(wǎng)絡(luò) - CNN的實現(xiàn)
網(wǎng)絡(luò)的構(gòu)成是“Convolution - ReLU - Pooling -Affine - ReLU - Affine - Softmax”,我們將它實現(xiàn)為名為 SimpleConvNet的類。
首先來看一下 SimpleConvNet的初始化(init),取下面這些參數(shù)。
input_dim——輸入數(shù)據(jù)的維度:(通道,高,長)
conv_param——卷積層的超參數(shù)(字典)。字典的關(guān)鍵字如下:
filter_num——濾波器的數(shù)量
filter_size——濾波器的大小
stride——步幅
pad——填充
hidden_size——隱藏層(全連接)的神經(jīng)元數(shù)量
output_size——輸出層(全連接)的神經(jīng)元數(shù)量
weitght_int_std——初始化時權(quán)重的標準差

這里,卷積層的超參數(shù)通過名為 conv_param的字典傳入。

SimpleConvNet的實現(xiàn)如下:

class SimpleConvNet:
	def __init__(self, input_dim=(1,28,28), conv_param={'filter_num':30, 'filter_size':5,'pad':0, 'stride':1}, hidden_size=100,output_size=10, weight_init_std=0.01):
		filter_num = conv_param['filter_num']
		filter_size = conv_param['filter_size']
		filter_pad = conv_param['filter_pad']
		filter_stride = conv_param['filter_stride']
		input_size = input_dim[1]
		conv_output_size = (input_size - filter_size + 2*filter_pad) / filter_stride +1
		pool_output_size = int(filter_num * (conv_output_size /2) * (conv_output_size/2))

		# 這里將由初始化參數(shù)傳入的卷積層的超參數(shù)從字典中取了出來(以方便后面使用),然后,計算卷積層的輸出大小。

		# 接下來是權(quán)重參數(shù)的初始化部分
		self.params = {}
		self.params['W1'] = weight_init_std * np.random.randn(filter_num, input_dim[0],filter_size, filter_size)
		self.params['b1'] = np.zeros(filter_num)

		self.params['W2'] = weight_init_std * np.random.randn(pool_output_size, hidden_size)
		self.params['b2'] = np.zeros(hidden_size)

		self.params['W3'] = weight_init_std * np.random.randn(hidden_size, output_size)
		self.params['b3'] = np.zeros(output_size)

		# 最后生成必要的層
		self.layers = OrderDict()
		self.layers['Conv1'] = Convolution(self.params['W1'],self.params['b1'],conv_param['stride'],conv_param['pad'])
		self.layers['Relu1']= Relu()
		self.layers['Pool1']= Pooling(poo_h=2,pool_w=2,stride=2)
		self.layers['Affine1'] = Affine(self.params['W2'],self.params['b2'])
		self.layers['Relu2'] = Relu()
		self,layers['Affine2']= Affine(self.params['W3'],self.params['b3'])
		self.last_layer = SoftmaxWithLoss()
		# 從最前面開始按順序向有序字典(OrderedDict)的layers中添加層。只有最后的SoftmaxWithLoss層被添加到別的變量LastLayer中。

以上就是simpleConvNet的初始化中進行的處理。像這樣初始化后,進行推理的predict方法和求損失函數(shù)值的 Loss方法就可以像下面這樣實現(xiàn)

def predict(self, x):
	for layer in self.layers.values():
		x = layer.forward(x)
	return x

def loss(self, x, t):
	y = self.predict(x)
	return self.lastLayer.forward(y,t)

這里,參數(shù)x是輸入數(shù)據(jù),t是監(jiān)督標簽。用于推理的predict方法從頭開始依次調(diào)用已添加的層,并將結(jié)果傳遞給下一層。

在求損失函數(shù)的loss方法中,除了使用predict方法進行的forward處理之外,還會繼續(xù)進行forward處理,直到到達最后的SoftmaxwithLoss層。

下面是基于誤差反向傳播法求梯度的代碼實現(xiàn)

def gradient(self,x,t):
	#forward
	self.loss(x,t)
	#backward
	dout = 1
	dout = self.lastLayer.backward(dout)
	
	layers = list(self.layers.values())
	layers.reverse()
	for layer in layers:
		dout = layer.backward(dout)
	# 設(shè)定
	grads={}
	grads['W1'] = self,layers['Conv1'].dw
	grads['b1'] = self.layers['Conv1'].db
	grads['W2'] = self.layers['Affine1'].dw
	grads['b2'] = self,layers['Affine1'].db
	grads['W3'] = self,layers['Affine2'].dw
	grads['b3'] = self.layers['Affine2'].db
	
	return grads

參數(shù)的梯度通過誤差反向傳播法(反向傳播)求出

使用這個 SimpleConvNet學(xué)習(xí) MNIST 數(shù)據(jù)集。訓(xùn)練數(shù)據(jù)的識別率為 99.82%,測試數(shù)據(jù)的識別率為 98.96%,測試數(shù)據(jù)的識別率大約為 99%,就小型網(wǎng)絡(luò)來說,這是一個非常高的識別率。文章來源地址http://www.zghlxwxcb.cn/news/detail-496452.html

到了這里,關(guān)于【深度學(xué)習(xí)】6-4 卷積神經(jīng)網(wǎng)絡(luò) - CNN的實現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 深度學(xué)習(xí)03-卷積神經(jīng)網(wǎng)絡(luò)(CNN)

    深度學(xué)習(xí)03-卷積神經(jīng)網(wǎng)絡(luò)(CNN)

    CNN,即卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network),是一種常用于圖像和視頻處理的深度學(xué)習(xí)模型。與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)相比,CNN 有著更好的處理圖像和序列數(shù)據(jù)的能力,因為它能夠自動學(xué)習(xí)圖像中的特征,并提取出最有用的信息。 CNN 的一個核心特點是卷積操作,它可以在圖像上進

    2024年02月05日
    瀏覽(25)
  • 深度學(xué)習(xí)入門(三):卷積神經(jīng)網(wǎng)絡(luò)(CNN)

    深度學(xué)習(xí)入門(三):卷積神經(jīng)網(wǎng)絡(luò)(CNN)

    給定一張圖片,計算機需要模型判斷圖里的東西是什么? (car、truck、airplane、ship、horse) CONV:卷積計算層,線性乘積求和 RELU:激勵層,激活函數(shù) POOL:池化層,取區(qū)域平均或最大(MAX POOL) PC:全連接層 對CNN來說,它是一塊一塊進行對比的,“小塊”稱之為Features特征。

    2024年02月11日
    瀏覽(37)
  • 深度學(xué)習(xí)入門教學(xué)——卷積神經(jīng)網(wǎng)絡(luò)CNN

    深度學(xué)習(xí)入門教學(xué)——卷積神經(jīng)網(wǎng)絡(luò)CNN

    1、應(yīng)用領(lǐng)域 檢測任務(wù) 分類與檢索 超分辨率重構(gòu) 2、卷積網(wǎng)絡(luò)與傳統(tǒng)網(wǎng)咯的區(qū)別 傳統(tǒng)神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)都是用來 提取特征 的。 神經(jīng)網(wǎng)絡(luò): 可以將其看作是一個二維的。 卷積神經(jīng)網(wǎng)絡(luò): 可以將其看作是一個三維的。 ?3、整體框架 該層主要是對原始圖像數(shù)據(jù)進行預(yù)處

    2024年02月10日
    瀏覽(25)
  • 【深度學(xué)習(xí)&NLP】基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)實現(xiàn)中文文本情感分析(分類)附代碼以及數(shù)據(jù)集鏈接

    【深度學(xué)習(xí)&NLP】基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)實現(xiàn)中文文本情感分析(分類)附代碼以及數(shù)據(jù)集鏈接

    【注】:本文所述的實驗的完整實現(xiàn)代碼包括數(shù)據(jù)集的倉庫鏈接會在文末給出(建議讀者自行配置GPU來加速TensorFlow的相關(guān)模型,運行起來會快非常多) 目錄 一、研究的背景和目的 二、文本數(shù)據(jù)集描述 1、數(shù)據(jù)集來源以及使用目的 2、數(shù)據(jù)規(guī)模、以及如何劃分數(shù)據(jù)集 3、數(shù)據(jù)集的

    2024年02月04日
    瀏覽(92)
  • 【深度學(xué)習(xí)_TensorFlow】卷積神經(jīng)網(wǎng)絡(luò)(CNN)

    【深度學(xué)習(xí)_TensorFlow】卷積神經(jīng)網(wǎng)絡(luò)(CNN)

    這篇文章的行文思路如下: 先根據(jù)視頻了解卷積和卷積神經(jīng)網(wǎng)絡(luò)的整體框架 接著了解卷積神經(jīng)網(wǎng)絡(luò)構(gòu)建過程中的一些重要操作,包括內(nèi)積、填充、池化。 然后介紹卷積層如何實現(xiàn)。 最后用卷積神經(jīng)網(wǎng)絡(luò)的開山之作(LeNet-5)來進行上手練習(xí)。 最近學(xué)習(xí)信號與系統(tǒng)的時候,了

    2024年02月07日
    瀏覽(97)
  • 【深度學(xué)習(xí)】最強算法之:卷積神經(jīng)網(wǎng)絡(luò)(CNN)

    【深度學(xué)習(xí)】最強算法之:卷積神經(jīng)網(wǎng)絡(luò)(CNN)

    小屌絲 :魚哥, 看下這個流程圖,我沒看明白 小魚 :啥流程圖。 小屌絲 :你看,就是這個。 小魚 :嗯,不錯,不錯。 小屌絲 :能不能給我講一講這個? 小魚 :你要了解CNN ? 小屌絲 :CNN 是? 小魚 :…你這… 深度學(xué)習(xí)知道嗎? 小屌絲 :知道啊 小魚 :你都知道深度

    2024年04月09日
    瀏覽(27)
  • 學(xué)習(xí)筆記:深度學(xué)習(xí)(3)——卷積神經(jīng)網(wǎng)絡(luò)(CNN)理論篇

    學(xué)習(xí)筆記:深度學(xué)習(xí)(3)——卷積神經(jīng)網(wǎng)絡(luò)(CNN)理論篇

    學(xué)習(xí)時間:2022.04.10~2022.04.12 CNN(Convolutional Neural Networks, ConvNets, 卷積神經(jīng)網(wǎng)絡(luò))是神經(jīng)網(wǎng)絡(luò)的一種,是理解圖像內(nèi)容的最佳學(xué)習(xí)算法之一,并且在圖像分割、分類、檢測和檢索相關(guān)任務(wù)中表現(xiàn)出色。 3.1.1 什么是CNN? CNN是一種帶有卷積結(jié)構(gòu)的前饋神經(jīng)網(wǎng)絡(luò), 卷積結(jié)構(gòu) 可以減少

    2024年02月03日
    瀏覽(31)
  • 深度學(xué)習(xí)入門——卷積神經(jīng)網(wǎng)絡(luò)CNN基本原理+實戰(zhàn)

    深度學(xué)習(xí)入門——卷積神經(jīng)網(wǎng)絡(luò)CNN基本原理+實戰(zhàn)

    ? 卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)是深度學(xué)習(xí)技術(shù)中最基礎(chǔ)的網(wǎng)絡(luò)結(jié)構(gòu),模擬人腦工作,具備強大的特征學(xué)習(xí)能力。CNN結(jié)構(gòu)主要由兩部分組成:特征提取部分和分類部分color{blue}{特征提取部分和分類部分}特征提取部分和分類部分。特征提取部分網(wǎng)絡(luò)將執(zhí)行一系列

    2024年01月21日
    瀏覽(37)
  • 文本分類系統(tǒng)Python,基于深度學(xué)習(xí)CNN卷積神經(jīng)網(wǎng)絡(luò)

    文本分類系統(tǒng)Python,基于深度學(xué)習(xí)CNN卷積神經(jīng)網(wǎng)絡(luò)

    文本分類系統(tǒng),使用Python作為主要開發(fā)語言,通過TensorFlow搭建CNN卷積神經(jīng)網(wǎng)絡(luò)對十余種不同種類的文本數(shù)據(jù)集進行訓(xùn)練,最后得到一個h5格式的本地模型文件,然后采用Django開發(fā)網(wǎng)頁界面,實現(xiàn)用戶在界面中輸入一段文字,識別其所屬的文本種類。 在我們的日常生活和工作中

    2024年02月08日
    瀏覽(93)
  • 深度學(xué)習(xí)實戰(zhàn)——卷積神經(jīng)網(wǎng)絡(luò)/CNN實踐(LeNet、Resnet)

    深度學(xué)習(xí)實戰(zhàn)——卷積神經(jīng)網(wǎng)絡(luò)/CNN實踐(LeNet、Resnet)

    ??? ? 憶如完整項目/代碼詳見github: https://github.com/yiru1225 (轉(zhuǎn)載標明出處 勿白嫖 star for projects thanks) 本系列博客重點在深度學(xué)習(xí)相關(guān)實踐(有問題歡迎在評論區(qū)討論指出,或直接私信聯(lián)系我)。 第一章??深度學(xué)習(xí)實戰(zhàn)——不同方式的模型部署(CNN、Yolo)_如何部署cnn_

    2023年04月11日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包