11.用深度学习方法为图像中的物体进行分类

这几个库现在更新了,用书上的会出错,未解决,建议直接学新的

# -*- coding: utf-8 -*-
"""
Created on Sun Oct 14 09:09:58 2018

@author: asus
"""
#11 用深度学习方法为图像中的物体进行分类
import os
batch1_filename = os.path.join(
        "E:\\books\Python数据挖掘入门与实践\用深度学习方法为图像中的物体进行分类",
        "cifar-10-batches-py", "data_batch_1")

def unpickle(file):
    import pickle
    with open(file, 'rb') as fo:
        dict = pickle.load(fo, encoding='bytes')
    return dict

batch1 = unpickle(batch1_filename)
#这一批图像文件读进来后为一个字典结构,包含numpy数组形式的图像数据、图像类别、文件名
#以及该批文件的简短说明(training batch 1 of 5 表示训练集共五批,这是第一批)。
#提取一张图像
image_index = 100
image = batch1[b'data'][image_index]
#图像数据格式与matplotlib(绘制图像)所使用的有所不同,因此,要改变数组形状,对矩阵进行
#转换。
image = image.reshape((32, 32, 3), order='F')
import numpy as np
image = np.rot90(image, -1)
#之后,就可以用matplotlib绘制图像
%matplotlib inline
from matplotlib import pyplot as plt
plt.imshow(image)

#11.3 深度神经网络
#深度神经网络和基本神经网络的差别在于规模大小。至少包含两层隐含层的神经网络被称为深度
#神经网络。实际工作者遇到的深度神经网络通常规模很大,每层神经元数量和层次都非常多。

#神经网络接收很基础的特征作为输出——就计算机视觉而言,输入为简单的像素值。神经网络算法
#把这些数据整合起来向网络中传输,在这个过程中,基本的特征组合为复杂的特征。计算机依靠
#它们进行分类。

#11.3.3 Theano简介
#Theano使用来创建和运行数学表达式的工具。在Theano中,我们定义函数要做什么而不是怎么做
#这样才能以最佳的方式对表达式进行求值。
#我们可以用Theano来定义函数,处理标量、数组和矩阵以及其他数学表达式。如我们可以创建计
#算直角三角形斜边长度的函数。
import theano
from theano import tensor as T
a = T.dscalar() #标量
b = T.dscalar()
c = T.sqrt(a ** 2 + b ** 2) #c是一个表达式,即不是函数,也不是数值

f = theano.function([a,b], c) #函数 f(3,4)
#这个函数接收a、b,返回经过计算得到的结果,也就是输出值c

#11.3.4 Lasagne简介
#该库是专门用来构建神经网络的,实践了几种比较新的神经网络层和组成这些层的模块
#内置网络层(Network-in-network layers):这些小神经网络比传统的神经网络层更容易解释。
#删除层(Dropout layers):训练过程随机删除神经元,放置产生神经网络常见的过拟合问题。
#噪音层(Noise layers):为神经元引入噪音,也是为了解决过拟合问题。

#本章使用卷积层(convolution layers, 层级结构模拟人类视觉工作原理)。卷积层使用少量的
#相互连接的神经元,分析一部分输入值,便于神经网络实现对数据的标准转换,比如对图像数据
#的转换。视觉分析实验,就是用卷积层对图像进行转换。

#用第一章的Iris数据集测试卷积神经网络
from sklearn.datasets import load_iris
iris =
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值