72   Deep Learning Default

一,全连接,部分连接,卷积网络

 

1,深度学习中对于图片处理,全连接网络由于参数过多,会导致计算量巨大,不方便训练;

于是就有了局部连接的网络,如下图

 

511-600x224

 

 

2,但是局部连接无法有效地读取图片的特征
于是又有了卷积网络,利用卷积核对图片进行全局取样,如下图所示

 

710-600x247

 

 

这里的卷积跟之前介绍的卷积还是有一定差别的,这不在本文讨论范围

 

二,深度学习中的卷积神经网络主要分量两部分

 

1,利用卷积核对图片进行全局扫描,提取特征,并共享权值

2256672-19110dee0c54c0b2

 

 

2,利用池化操作降低图片的维度,同时保留主要特征

 

20130918153655515

 

 

 

关于卷积神经网络更详细的介绍:
http://www.hackcv.com/index.php/archives/104/?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io
Tensorflow 有卷积神经网络CNN识别手写数字图片的例子,已有人翻译得很好了

http://blog.csdn.net/sinat_33761963/article/details/57416517

 

我在跑测试例子的时候报错:

 

 Resource exhausted: OOM when allocating tensor with shape[10000,28,28,32]

这是因为在跑测试数据时,一次性计算量太大导致内存溢出了,解决方法:

    # 一次性计算的张量太大,导致内存溢出,换种方式计算
    #print('test accuracy %g' % accuracy.eval(feed_dict={
    #    x: mnist.test.images, y_: mnist.test.labels, keep_prob: 1.0}))

    # 共有 10000 个测试数据,每次执行 1000 个,分开 10 次执行
    # 将多次结果保存到 list 中,再求平均值
    accuracyResult=list(range(10))
    for i in range(10):
      batch = mnist.test.next_batch(1000)
      accuracyResult[i]=accuracy.eval(feed_dict={
        x: batch[0], y_: batch[1], keep_prob: 1.0})
      print('test accuracyResult i : %s , v : %s' % (i,accuracyResult[i]))

    print('test accuracyResult average : %g' % np.mean(accuracyResult))



Leave a Reply

Your email address will not be published. Required fields are marked *