zoukankan      html  css  js  c++  java
  • tiny_cnn 阅读(1)

    从今天起, 我会每天把阅读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

  • 相关阅读:
    kafka那些事儿
    netty
    kafka为什么吞吐量高,怎样保证高可用
    通用mybatis单表操作接口
    P1058立体图
    P2258 子矩阵
    P1439 【模板】最长公共子序列(LCS)
    洛谷P2672 推销员
    P3373线段树2
    P5018 对称二叉树
  • 原文地址:https://www.cnblogs.com/greentomlee/p/5321337.html
Copyright © 2011-2022 走看看