㈠ cnn中含有weights的是哪些層
你的數據是另一種,而人工合成的圖像由於添加非自然噪點。用MNIST訓練網路,reg等。而是在確定結構上調整參數,數據集是一種分布,完全用數據集訓練的模型就能得到一個還好的結果,卷積的模板大小等?
對於把流行數據集與自己數據混合訓練模型的方法。如果你的數據量大到足以與數據集媲美,只訓練後面的全連接層參數。如果自己的數據和數據集有些差別,用你自己的數據集,如果是1,但我認為結果不會太好。
需要學習的話。但是對於流行數據集而言,無非是把CNN當成學習特徵的手段,所以能用肉眼難分辨的雜訊嚴重干擾分類結果,不滿足模型假設。如果二者相差過大。然後cs231n
與其問別人。如果是各種主題。如果是彩色數字,首先你去看UFLDL教程,那麼可能不加自己的數據,而欺騙CNN的方法則主要出於,自然圖像分布在一種流形結構中,1,自己的標注數據量一般不會太大:1000。cnn認為圖像是局部相關的,後面的全連接層對應普通的神經網路做分類,你需要固定卷積池化層,learning rate,那麼直接用你的數據訓練網路即可,我沒試過:100這種比例,也未嘗不可,視你的數據量調整規模,先轉成灰度,weight scale,首先你看了imageNet數據集了嗎。
CNN一是調整網路結構,前面的卷積層學習圖像基本-中等-高層特徵,你可以吧網路看成兩部分,幾層卷積幾層池化。
你用CNN做圖像分類。而後用於分類的全連接層,訓練的模型需要這種流形假設。如果兩種數據十分相似。這時候只能把數據集用來訓練cnn的特徵提取能力,那混在一起我認為自己的是在用自己的數據當做雜訊加到數據集中,用彩色的imageNET訓練,放到一起訓練。在流行的數據集上訓練完你要看你的圖像是什麼
㈡ 神經網路參數如何確定
神經網路各個網路參數設定原則:
①、網路節點 網路輸入層神經元節點數就是系統的特徵因子(自變數)個數,輸出層神經元節點數就是系統目標個數。隱層節點選按經驗選取,一般設為輸入層節點數的75%。如果輸入層有7個節點,輸出層1個節點,那麼隱含層可暫設為5個節點,即構成一個7-5-1 BP神經網路模型。在系統訓練時,實際還要對不同的隱層節點數4、5、6個分別進行比較,最後確定出最合理的網路結構。
②、初始權值的確定 初始權值是不應完全相等的一組值。已經證明,即便確定 存在一組互不相等的使系統誤差更小的權值,如果所設Wji的的初始值彼此相等,它們將在學習過程中始終保持相等。故而,在程序中,我們設計了一個隨機發生器程序,產生一組一0.5~+0.5的隨機數,作為網路的初始權值。
③、最小訓練速率 在經典的BP演算法中,訓練速率是由經驗確定,訓練速率越大,權重變化越大,收斂越快;但訓練速率過大,會引起系統的振盪,因此,訓練速率在不導致振盪前提下,越大越好。因此,在DPS中,訓練速率會自動調整,並盡可能取大一些的值,但用戶可規定一個最小訓練速率。該值一般取0.9。
④、動態參數 動態系數的選擇也是經驗性的,一般取0.6 ~0.8。
⑤、允許誤差 一般取0.001~0.00001,當2次迭代結果的誤差小於該值時,系統結束迭代計算,給出結果。
⑥、迭代次數 一般取1000次。由於神經網路計算並不能保證在各種參數配置下迭代結果收斂,當迭代結果不收斂時,允許最大的迭代次數。
⑦、Sigmoid參數 該參數調整神經元激勵函數形式,一般取0.9~1.0之間。
⑧、數據轉換。在DPS系統中,允許對輸入層各個節點的數據進行轉換,提供轉換的方法有取對數、平方根轉換和數據標准化轉換。
(2)網路層哪個是帶可訓練參數的擴展閱讀:
神經網路的研究內容相當廣泛,反映了多學科交叉技術領域的特點。主要的研究工作集中在以下幾個方面:
1.生物原型
從生理學、心理學、解剖學、腦科學、病理學等方面研究神經細胞、神經網路、神經系統的生物原型結構及其功能機理。
2.建立模型
根據生物原型的研究,建立神經元、神經網路的理論模型。其中包括概念模型、知識模型、物理化學模型、數學模型等。
3.演算法
在理論模型研究的基礎上構作具體的神經網路模型,以實現計算機模擬或准備製作硬體,包括網路學習演算法的研究。這方面的工作也稱為技術模型研究。
神經網路用到的演算法就是向量乘法,並且廣泛採用符號函數及其各種逼近。並行、容錯、可以硬體實現以及自我學習特性,是神經網路的幾個基本優點,也是神經網路計算方法與傳統方法的區別所在。
㈢ matlab BP神經網路。下面的總是報錯,我剛開始學習,求指教。
這個我最擅長,我來教你~~~
你的建立網路這一步有點問題,你這種調用格式我很少見,也只有在2008a版本以上或許才可以用,估計是版本問題,我建議你改成這樣,肯定沒問題,我給你編好了:
net=newff(minmax(input_train),[5 1],{'tansig','purelin'},'trainlm');
inputWeights=net.IW{1,1};
inputbias=net.b{1};
input_train表示歸一化之後的輸入矩陣。
這樣絕對是沒問題的,你可以試一下
㈣ BP網路中的trainlm訓練函數,需要設置的參數
以輸出層權值更新的演算法做說明: 新w(i,j)=舊w(i,j)+a*E(i)O(j)+b*oldw(i,j), 其中,新w(i,j)為計算一步以後的權,舊w(i,j)為初始權,E(i)為輸出層第i個神經元的輸出誤差,O(j)為隱含層第j個神經元的輸出數據,a學習系數,b慣性系數。其實b就是優化設計中梯度下降法的步長,訓練函數和梯度下降法是一個樣子的,都是通過初始點,選定負梯度方向,計算步長,然後得到下一點,如此循環,神經網路把梯度下降法簡化了,直接選定步長,不再計算步長了,
㈤ caffe中怎麼固定前面的網路參數,訓練後面層的參數
1、會更新,finetune的過程相當於繼續訓練,跟直接訓練的區別是初始化的時候:
a. 直接訓練是按照網路定義指定的方式初始化(如高斯隨機初始化)
b. finetune是用你已經有的參數文件來初始化(就是之前訓練好的caffemodel)
2、嗯,這個問題有兩種情況:比如有4個全連接層A->B->C->D
a. 你希望C層的參數不會改變,C前面的AB層的參數也不會改變,這種情況也就是D層的梯度不往前反向傳播到D層的輸入blob(也就是C層的輸出blob 沒有得到梯度),你可以通過設置D層的propagate_down為false來做到。
propagate_down的數量與輸入blob的數量相同,假如你某個層有2個輸入blob,那麼你應該在該layer的Param裡面寫上兩行:
propagate_down : 0 # 第1個輸入blob不會得到反向傳播的梯度
propagate_down : 0 # 第2個輸入blob不會得到反向傳播的梯度
這樣的話,你這個layer的梯度就不會反向傳播啦,前面的所有layer的參數也就不會改變了
b. 你希望C層的參數不會改變,但是C前面的AB層的參數會改變,這種情況,只是固定了C層的參數,C層得到的梯度依然會反向傳播給前面的B層。只需要將對應的參數blob的學習率調整為0:
你在layer裡面加上param { lr_mult: 0 }就可以了,比如全連接層裡面:
layer {
type: "InnerProct"
param { # 對應第1個參數blob的配置,也就是全連接層的參數矩陣的配置
lr_mult: 0 # 學習率為0,其他參數可以看caffe.proto裡面的ParamSpec這個類型
}
param { # 對應第2個參數blob的配置,也就是全連接層的偏置項的配置
lr_mult: 0 # 學習率為0
}
}
不知道這樣說你能不能理解
㈥ 菜鳥請BP神經網路達人幫忙。。萬分感謝!
步驟基本上是這樣的,但你需要自己根據數據來設置相應的參數
close all ;
clear ;
echo on ;
clc ;
% NEWFF——生成一個新的前向神經網路
% TRAIN——對 BP 神經網路進行訓練
% SIM——對 BP 神經網路進行模擬
pause
% 敲任意鍵開始
clc
% 定義訓練樣本
% P 為輸入矢量
p=[ ];
% T 為目標矢量
t= [];
%訓練樣本的歸一化
for i=1:(訓練樣本的指標數)
P(i,:)=(p(i,:)-min(p(i,:)))/(max(p(i,:))-min(p(i,:)));
end
pause
clc
% 創建一個新的前向神經網路
net=newff(minmax(P),[15,2],{'tansig','purelin'},'traingda'); %這些參數要自己設置
% 當前輸入層權值和閾值
inputWeights=net.IW{1,1};
inputbias=net.b{1} ;
% 當前網路層權值和閾值
layerWeights=net.LW{2,1} ;
layerbias=net.b{2} ;
pause
clc
% 設置訓練參數 也要自己設置
net.trainParam.show = 50;
net.trainParam.lr = 0.05;
%net.trainParam.mc = 0.9; % 附加動量因子
net.trainParam.epochs =5000;
net.trainParam.goal = 1e-4;
pause
clc
% 調用 TRAINGDM 演算法訓練 BP 網路
[net,tr]=train(net,P,t);
pause
clc
% 對 BP 網路進行模擬
p_test=[];
for i=1:6
P_test(i,:)=(p_test(i,:)-min(p_test(i,:)))/(max(p_test(i,:))-min(p_test(i,:)));
end
t_test=[];
A = sim(net,P_test)
% 計算模擬誤差
E = t - A
error=mse(E)
pause
clc
echo off
%反歸一化
for i=1:2
predict(i,:)=A(i,:)*(max(t(i,:))-min(t(i,:)))+ min(t(i,:));
end
predict %即模擬結果
pause
㈦ 卷積神經網路用全連接層的參數是怎麼確定的
卷積神經網路用全連接層的參數確定:卷積神經網路與傳統的人臉檢測方法不同,它是通過直接作用於輸入樣本,用樣本來訓練網路並最終實現檢測任務的。
它是非參數型的人臉檢測方法,可以省去傳統方法中建模、參數估計以及參數檢驗、重建模型等的一系列復雜過程。本文針對圖像中任意大小、位置、姿勢、方向、膚色、面部表情和光照條件的人臉。
輸入層
卷積神經網路的輸入層可以處理多維數據,常見地,一維卷積神經網路的輸入層接收一維或二維數組,其中一維數組通常為時間或頻譜采樣;二維數組可能包含多個通道;二維卷積神經網路的輸入層接收二維或三維數組;三維卷積神經網路的輸入層接收四維數組。
由於卷積神經網路在計算機視覺領域應用較廣,因此許多研究在介紹其結構時預先假設了三維輸入數據,即平面上的二維像素點和RGB通道。
㈧ 卷積神經網路訓練的參數是什麼
嗯,卷積神經網路是一個通過他的訓練的話,那他是知道她有一個參數,通過它的參數,你才能知道他的個訓練的一個參數的一個對比值。
㈨ 網路層、數據鏈路層和物理層傳輸數據單位分別是()
A是錯誤的。
因為在網路傳輸中,報文是具有完整意義的二進制數據整體;報文在傳輸層被拆分成較小的可傳輸的數據單元,並添加頭部,形成包,到達網路層後再次被添加頭部形成新的包。
這樣做的目的是,當數據經過網路節點時,在這里添加目的地址與源地址,包在到達數據鏈路層後被封裝成幀,最後才是物理層的比特,
所以C才是對的,分別是包、幀、比特的單位;因為這是層層分割,層層傳遞的一個關系。
網路層:數據包(packet)——數據鏈路層:數據幀(frame)——物理層:比特流(bit)。
(9)網路層哪個是帶可訓練參數的擴展閱讀
在電子學領域里,表帶寬是用來描述頻帶寬度的。
但是在數字傳輸方面,也常用帶寬來衡量傳輸數據的能力。
用它來表示單位時間內(一般以「秒」為單位)傳輸數據容量的大小,表示吞吐數據的能力。
這也意味著,寬的帶寬每秒鍾可以傳輸更多的數據。
所以我們一般也將「帶寬」稱為「數據傳輸率」(硬碟的數據傳輸率是衡量硬碟速度的一個重要參數)。
㈩ Tesorflow框架在創建神經網路時,通過()函數創建可變參數
摘要 在MNIST數據集上,搭建一個簡單神經網路結構,一個包含ReLU單元的非線性化處理的兩層神經網路。在訓練神經網路的時候,使用帶指數衰減的學習率設置、使用正則化來避免過擬合、使用滑動平均模型來使得最終的模型更加健壯。