程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> tiny_cnn 閱讀(1),tiny_cnn閱讀

tiny_cnn 閱讀(1),tiny_cnn閱讀

編輯:C++入門知識

tiny_cnn 閱讀(1),tiny_cnn閱讀


從今天起, 我會每天把閱讀tiny_cnn的閱讀心得提交到博客園中希望大家在這個平台上可以多多交流;

關於如果閱讀代碼? 抓住重點,忽略細節

首先打開從github上下載的文件:

image

通過csdn和網上搜索一番會知道這個文件的各個目錄存放的是什麼;

我用${root} 代表到tiny-cnn-master的路徑,這個變量會在注釋中用到;

首先打開vs/2014 ,用MS studio開開這個項目 , 找到main.cpp

發現會調用sample1_convnet()函數 ,如圖1 所示

image

 

圖1 main方法截圖

而我們運行的時候確實沒有輸入任何參數,可見是運行的第45行, 既然是這樣,需要找到無參數的時候調用那個函數?

image

第35行, 我們知道了 sample1_convnet()函數的參數值是data_dir_path = ./../data

這個變量至今還沒有使用到,因此我們不必往下深究 , 只要知道.data_dir_path 是數據所在的路徑即可;

 

》》》進入void sample1_convnet(const string& data_dir_path) 函數裡面:

第一句話:

image

 

使我們不得不了解一下這兩個泛型:

mse:

   

@see: ${root}/tiny_cnn/optimzers/optimizer.h

 

gradient_descent_levenberg_marquardt:

   

@see: ${root}/tiny_cnn/optimzers/optimizer.h

以上這兩個函數也是沒有用到,但是我們可以查看一下,因為代碼很簡潔

mse:

如圖2-1所示:

在tiny_cnn中支持兩種損失函數:

(1)mean squared error均方差函數

(2)cross entropy 交叉熵

 

通過閱讀代碼可知;

   

a )這是兩個數學公式轉化過來的:

   

  f(y,t) =  (y  - t )^2 / 2 

   

df( y , t ) = y – t   ,  其中 y 和t 理論上都是從負無窮到正無窮的實數

b)該程序使用的自會有mse這一種損失函數 , 如果我們想要修改的或者做改進的話, 也可以從這裡入手;

比如換一種損失函數. 改進一下這個函數等等..

image

圖2-1 :mse函數的實現

gradient_descent_levenberg_marquardt:

 

image

network

   

@see ${root}/tiny_cnn/network.h

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved