当前位置:首页 > 人工智能 >
《TensorFlow+Keras深度学习人工智能实践应用》电子书封面

TensorFlow+Keras深度学习人工智能实践应用

  • 发布时间:2019年12月12日 08:32:40
  • 作者:林大贵
  • 大小:40.5 MB
  • 类别:人工智能电子书
  • 格式:PDF
  • 版本:超清影印版
  • 评分:9.4

    TensorFlow+Keras深度学习人工智能实践应用 PDF 超清影印版

      给大家带来的一篇关于人工智能相关的电子书资源,介绍了关于TensorFlow、Keras、人工智能、深度学习方面的内容,本书是由清华大学出版社出版,格式为PDF,资源大小40.5 MB,林大贵编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:9.4分

      Tags:人工智能 深度学习 TensorFlow Keras 

      内容介绍

      TensorFlow+Keras深度学习人工智能实践应用

      TensorFlow+Keras深度学习人工智能实践应用电子书封面

      读者评价

      看了一半了,确实对我的学习有帮助,因为我现在就是卡在入门很难的阶段,不过里面的错字和错误的地方太多了吧,而且重复的东西很多 精简一下大概只有250字左右,不过确实还行
      还可以,没有仔细阅读,涉及内容比较多,深入的不是太多。入门应用足够用了吧

      挺不错的入门书,满足快速入门概览实现流程的需求,不用纠结太多原理性的东西,在应用中慢慢加深认识。内容不深,入门够用

      书籍还可以吧,因为我是拿来入门的,但是看完之后才发现真的很简单,有关理论的方面基本上没有涉及,但是关于书中的代码都有讲解,只要是掌握了些简单的概念就可以上手,但是真的太简单了。还有书籍有几个印刷错误,看的时候有强迫症…整体来说还是不错的书,看完之后建议大家再看一本理论的书籍,如果用Keras的话就看下Keras中文文档就好了

      快餐时代,企图分一碗羹的一本书,基本和网上博客的质量差不多,说是实践就玩了玩mnist,imdb数据集,而且书中有很多错误。

      内容介绍

      本书提供安装、上机操作指南,同时辅以大量范例程序介绍TensorFlow Keras深度学习方面的知识。本书分9部分,共21章,内容主要包括基本概念介绍、TensorFlow 与 Keras 的安装、Keras MNIST手写数字识别、Keras CIFAR-10照片图像物体识别、Keras多层感知器预测泰坦尼克号上旅客的生存概率、使用Keras MLP、RNN、LSTM进行IMDb自然语言处理与情感分析、以TensorFlow张量运算仿真神经网络的运行、TensorFlow MNIST手写数字识别、使用GPU大幅加快深度学习训练。 TensorFlow Keras深度学习方面的知识不需要具备高等数学模型、算法等专业知识,读者只需要具备基本的Python程序设计能力,按照本书的步骤循序渐进地学习,就可以了解深度学习的基本概念,进而实际运用深度学习的技术。

      内容节选

      TensorFlow 模型载入方法汇总

       

      一、TensorFlow常规模型加载方法

      保存模型

      tf.train.Saver()类,.save(sess, ckpt文件目录)方法

       

      参数名称 功能说明 默认值
      var_list Saver中存储变量集合 全局变量集合
      reshape 加载时是否恢复变量形状 True
      sharded 是否将变量轮循放在所有设备上 True
      max_to_keep 保留最近检查点个数 5
      restore_sequentially 是否按顺序恢复变量,模型较大时顺序恢复内存消耗小 True

       

      var_list是字典形式{变量名字符串: 变量符号},相对应的restore也根据同样形式的字典将ckpt中的字符串对应的变量加载给程序中的符号。

      如果Saver给定了字典作为加载方式,则按照字典来,如:saver = tf.train.Saver({"v/ExponentialMovingAverage":v}),否则每个变量寻找自己的name属性在ckpt中的对应值进行加载。

      加载模型

      当我们基于checkpoint文件(ckpt)加载参数时,实际上我们使用Saver.restore取代了initializer的初始化

      checkpoint文件会记录保存信息,通过它可以定位最新保存的模型:

      ckpt = tf.train.get_checkpoint_state('./model/')
      print(ckpt.model_checkpoint_path)

      .meta文件保存了当前图结构

      .index文件保存了当前参数名

      .data文件保存了当前参数值

      tf.train.import_meta_graph函数给出model.ckpt-n.meta的路径后会加载图结构,并返回saver对象

      ckpt = tf.train.get_checkpoint_state('./model/')

      tf.train.Saver函数会返回加载默认图的saver对象,saver对象初始化时可以指定变量映射方式,根据名字映射变量(『TensorFlow』滑动平均)

      saver = tf.train.Saver({"v/ExponentialMovingAverage":v}) 

      saver.restore函数给出model.ckpt-n的路径后会自动寻找参数名-值文件进行加载

      saver.restore(sess,'./model/model.ckpt-0')
      saver.restore(sess,ckpt.model_checkpoint_path)

      1.不加载图结构,只加载参数

      由于实际上我们参数保存的都是Variable变量的值,所以其他的参数值(例如batch_size)等,我们在restore时可能希望修改,但是图结构在train时一般就已经确定了,所以我们可以使用tf.Graph().as_default()新建一个默认图(建议使用上下文环境),利用这个新图修改和变量无关的参值大小,从而达到目的。

      '''
      使用原网络保存的模型加载到自己重新定义的图上
      可以使用python变量名加载模型,也可以使用节点名
      '''
      import AlexNet as Net
      import AlexNet_train as train
      import random
      import tensorflow as tf
       
      IMAGE_PATH = './flower_photos/daisy/5673728_71b8cb57eb.jpg'
       
      with tf.Graph().as_default() as g:
       
       x = tf.placeholder(tf.float32, [1, train.INPUT_SIZE[0], train.INPUT_SIZE[1], 3])
       y = Net.inference_1(x, N_CLASS=5, train=False)
       
       with tf.Session() as sess:
        # 程序前面得有 Variable 供 save or restore 才不报错
        # 否则会提示没有可保存的变量
        saver = tf.train.Saver()
       
        ckpt = tf.train.get_checkpoint_state('./model/')
        img_raw = tf.gfile.FastGFile(IMAGE_PATH, 'rb').read()
        img = sess.run(tf.expand_dims(tf.image.resize_images(
         tf.image.decode_jpeg(img_raw),[224,224],method=random.randint(0,3)),0))
       
        if ckpt and ckpt.model_checkpoint_path:
         print(ckpt.model_checkpoint_path)
         saver.restore(sess,'./model/model.ckpt-0')
         global_step = ckpt.model_checkpoint_path.split('/')[-1].split('-')[-1]
         res = sess.run(y, feed_dict={x: img})
         print(global_step,sess.run(tf.argmax(res,1)))
      

      2.加载图结构和参数

      '''
      直接使用使用保存好的图
      无需加载python定义的结构,直接使用节点名称加载模型
      由于节点形状已经定下来了,所以有不便之处,placeholder定义batch后单张传会报错
      现阶段不推荐使用,以后如果理解深入了可能会找到使用方法
      '''
      import AlexNet_train as train
      import random
      import tensorflow as tf
       
      IMAGE_PATH = './flower_photos/daisy/5673728_71b8cb57eb.jpg'
       
       
      ckpt = tf.train.get_checkpoint_state('./model/')       # 通过检查点文件锁定最新的模型
      saver = tf.train.import_meta_graph(ckpt.model_checkpoint_path +'.meta') # 载入图结构,保存在.meta文件中
       
      with tf.Session() as sess:
       saver.restore(sess,ckpt.model_checkpoint_path)      # 载入参数,参数保存在两个文件中,不过restore会自己寻找
       
       img_raw = tf.gfile.FastGFile(IMAGE_PATH, 'rb').read()
       img = sess.run(tf.image.resize_images(
        tf.image.decode_jpeg(img_raw), train.INPUT_SIZE, method=random.randint(0, 3)))
       imgs = []
       for i in range(128):
        imgs.append(img)
       print(sess.run(tf.get_default_graph().get_tensor_by_name('fc3:0'),feed_dict={'Placeholder:0': imgs}))
       
       '''
       img = sess.run(tf.expand_dims(tf.image.resize_images(
        tf.image.decode_jpeg(img_raw), train.INPUT_SIZE, method=random.randint(0, 3)), 0))
       print(img)
       imgs = []
       for i in range(128):
        imgs.append(img)
       print(sess.run(tf.get_default_graph().get_tensor_by_name('conv1:0'),
           feed_dict={'Placeholder:0':img}))
      

      注意,在所有两种方式中都可以通过调用节点名称使用节点输出张量,节点.name属性返回节点名称。

      3.简化版本

      # 连同图结构一同加载
      ckpt = tf.train.get_checkpoint_state('./model/')
      saver = tf.train.import_meta_graph(ckpt.model_checkpoint_path +'.meta')
      with tf.Session() as sess:
       saver.restore(sess,ckpt.model_checkpoint_path)
          
      # 只加载数据,不加载图结构,可以在新图中改变batch_size等的值
      # 不过需要注意,Saver对象实例化之前需要定义好新的图结构,否则会报错
      saver = tf.train.Saver()
      with tf.Session() as sess:
       ckpt = tf.train.get_checkpoint_state('./model/')
       saver.restore(sess,ckpt.model_checkpoint_path)
      
      

      二、TensorFlow二进制模型加载方法

      这种加载方法一般是对应网上各大公司已经训练好的网络模型进行修改的工作

      # 新建空白图
      self.graph = tf.Graph()
      # 空白图列为默认图
      with self.graph.as_default():
       # 二进制读取模型文件
       with tf.gfile.FastGFile(os.path.join(model_dir,model_name),'rb') as f:
        # 新建GraphDef文件,用于临时载入模型中的图
        graph_def = tf.GraphDef()
        # GraphDef加载模型中的图
        graph_def.ParseFromString(f.read())
        # 在空白图中加载GraphDef中的图
        tf.import_graph_def(graph_def,name='')
        # 在图中获取张量需要使用graph.get_tensor_by_name加张量名
        # 这里的张量可以直接用于session的run方法求值了
        # 补充一个基础知识,形如'conv1'是节点名称,而'conv1:0'是张量名称,表示节点的第一个输出张量
        self.input_tensor = self.graph.get_tensor_by_name(self.input_tensor_name)
        self.layer_tensors = [self.graph.get_tensor_by_name(name + ':0') for name in self.layer_operation_names]
      

      目录

      • 第1章 人工智能、机器学习与深度学习简介 1
      • 第2章 深度学习的原理 9
      • 第3章 TensorFlow与Keras介绍 22
      • 第4章 在Windows中安装TensorFlow与Keras 31
      • 第5章 在Linux Ubuntu中安装TensorFlow与Keras 49
      • 第6章 Keras MNIST手写数字识别数据集 55
      • 第7章 Keras多层感知器识别手写数字 66
      • 第8章 Keras卷积神经网络识别手写数字 90
      • 第9章 Keras CIFAR-10图像识别数据集 108
      • 第10章 Keras卷积神经网络识别CIFAR-10图像 116
      • 第11章 Keras泰坦尼克号上的旅客数据集 137
      • 第12章 Keras多层感知器预测泰坦尼克号上旅客的生存概率 148
      • 第13章 IMDb网络电影数据集与自然语言处理 161
      • 第14章 Keras建立MLP、RNN、LSTM模型进行IMDb情感分析 177
      • 第15章 TensorFlow程序设计模式 201
      • 第16章 以TensorFlow张量运算仿真神经网络的运行 215
      • 第17章 TensorFlow MNIST手写数字识别数据集 227
      • 第18章 TensorFlow多层感知器识别手写数字 236
      • 第19章 TensorFlow卷积神经网络识别手写数字 253
      • 第20章 TensorFlow GPU版本的安装 271
      • 第21章 使用GPU加快TensorFlow与Keras训练 287

      读书笔记

      TensorFlow 合并/连接数组的方法

      如下所示:

      import tensorflow as tf
      
      a = tf.Variable([4,5,6])
      b = tf.Variable([1,2,3])
      
      c = tf.concat(0,[a,b])
      
      init_op = tf.initialize_all_variables()
      
      with tf.Session() as sess:
       sess.run(init_op)
       print(sess.run(c))

      结果打印:

      [4 5 6 1 2 3]

      以上这篇TensorFlow 合并/连接数组的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。

      以上就是本次介绍的人工智能电子书的全部相关内容,希望我们整理的资源能够帮助到大家,感谢大家对码农之家的支持。

      上一篇:OpenStack系统架构设计实战

      下一篇:机器学习实践:测试驱动的开发方法

      展开 +

      收起 -

      下载地址:百度网盘下载
      人工智能 相关电子书
      终极算法:机器学习和人工智能如何重塑世界
      终极算法:机器学习和人工智能如何重塑世界 PDF 高清版

      购物网站用算法来为你推荐商品,点评网站用算法来帮你选择餐馆,GPS系统用算法来帮你选择zui佳路线,公司用算法来选择求职者 当机器最终学会如何学习时,将会发生什么? 不同于传统算法

      立即下载
      人工智能简史
      人工智能简史 PDF 超清版

      本书全面讲述人工智能的发展史,几乎覆盖人工智能学科的所有领域,包括人工智能的起源。本书作者和书中诸多人物或为师友或相熟相知,除了详实的考证还有有趣的轶事。感兴趣的可以下载

      立即下载
      人工智能:计算Agent基础
      人工智能:计算Agent基础 PDF 高清版

      《人工智能:计算agent基础》 讨论AI科学,它将AI作为智能计算Agent设计的研究课题。《人工智能:计算agent基础》虽然设计为教科书,但它也适合广大专业人员和研究人员阅读。《人工智能:计算

      立即下载
      无界:人工智能时代的认知升级
      无界:人工智能时代的认知升级 PDF 原版完整版

      在AI崩裂时期,限定人们的是认知能力,应对指数值式提高的专业知识和信息内容,抑郁变成了这一时期的背景色。人们应当如何调整心态,迎来和相拥智能化文明行为?应对人工智能技术产生

      立即下载
      人工智能:改变世界,重建未来
      人工智能:改变世界,重建未来 PDF 原版超清版

      为什么只有在有限公司范畴应用的弱人工智能忽然越来越聪明起来?有着人们的想像力、拷贝人们的逻辑思维、与人们恩爱人工智能到底能走多远?大数据时代,人们的工作中、使用价值、逻

      立即下载
      人工智能的未来:揭示人类思维的奥秘
      人工智能的未来:揭示人类思维的奥秘 PDF 原书完整版 立即下载
      人工智能产品经理:AI时代PM修炼手册
      人工智能产品经理:AI时代PM修炼手册 PDF 超清版

      本书从知识体系、能力模型、沟通技巧等方面帮助大家系统地梳理了人工智能产品经理所必备的基本素质和技能,旨在帮助产品经理找到转型升级的最佳学习路线,以成为合格的人工智能产品经

      立即下载
      读者心得
      131小时37分钟前回答

      对TensorFlow中的variables_to_restore函数详解

      variables_to_restore函数,是TensorFlow为滑动平均值提供。之前,也介绍过通过使用滑动平均值可以让神经网络模型更加的健壮。我们也知道,其实在TensorFlow中,变量的滑动平均值都是由影子变量所维护的,如果你想要获取变量的滑动平均值需要获取的是影子变量而不是变量本身。 1、滑动平均值模型文件的保存 import tensorflow as tf if __name__ == "__main__": v = tf.Variable(0.,name="v") #设置滑动平均模型的系数 ema = tf.train.ExponentialMovingAverage(0.99) #设置变量v使用滑动平均模型,tf.all_variables()设置所有变量 op = ema.apply([v]) #获取变量v的名字 print(v.name) #v:0 #创建一个保存模型的对象 save = tf.train.Saver() sess = tf.Session() #初始化所有……

      网友NO.45583
      网友NO.45583

      Keras 的模型 Keras 的核心数据结构是模型。模型是用来组织网络层的方式。模型有两种,一种叫 Sequential 模型,另一种叫Model 模型。Sequential 模型是一系列网络层按顺序构成的栈,是单 输入和单输出的,层与层之间只有相邻关系,是最简单的一种模型。Model 模型是用来建立更 复杂的模型的。 这里先介绍简单的Sequential 模型的使用(后面将会以一个示例来介绍Model 模型)。首先 是加载数据,这里我们假设数据已经加载完毕,是X_train, Y_train 和X_test, Y_test。然后构建模型: from keras.models import Sequential from keras.layers import Dense, Activation model = Sequential() model.add(Dense(output_dim=64, input_dim=100)) model.add(Activation(“relu”)) model.add(Dense(output_dim=10)) model.add(Activation(“softmax”)) 然后,编译模型,同时指明损失函数和优化器: model.compile(loss=’categorical_crossentropy’, optimizer=’sgd’, metrics=[‘accuracy’]) 最后,训练模型和评估模型: model.fit(X_train, Y_train, nb_epoch=5, batch_size=32) loss_and_metrics = model.evaluate(X_test, Y_test, batch_size=32) 这就是一个最简单的模型的使用。如果要搭建复杂的网络,可以使用Keras 的Model 模型, 它能定义多输出模型、含有共享层的模型、共享视觉模型、图片问答模型、视觉问答模型等。 在Keras 的源代码的examples 文件夹里还有更多的例子,有兴趣的读者可以参参。

      网友NO.35016
      网友NO.35016

      1、 Keras 的优点 Keras 是高度封装的,非常适合新手使用,代码更新速度比较很,示例代码也比较多,文 档和我论区也比较完善。最重要的是,Keras 是TensorFlow 官方支持的。当机器上有可用的GPU 时,代码会自动调用GPU 进行并行计算。 Keras 官方网站上描述了它的几个优点,具体如下。 ● 模块化:模型的各个部分,如神经层、成本函数、优化器、初始化、激活函数、规范 化都是独立的模块,可以组合在一起来创建模型。 ● 极简主义:每个模块都保持简短和简单。 ● 易扩展性:很容易添加新模块,因此Keras 适于做进一步的高级研究。 ● 使用Python 语言:模型用Python 实现,非常易于调试和扩展。

      网友NO.48057
      网友NO.48057

      eras 是一个高级的Python 神经网络框架,其文档详。Keras 已经被添加到 TensorFlow 中,成为其默认的框架,为TensorFlow 提供更高级的API。 如果读者不想了解TensorFlow 的细节,只需要模块化,那么Keras 是一个不错的选择。如 果将TensorFlow 比喻为编程界的Java 或C++,那么Keras 就是编程界的Python。它作为 TensorFlow 的高层封装,可以与TensorFlow 联合使用,用它很速搭建原型。 另外,Keras 兼容两种后端,即Theano 和TensorFlow,并且其接口形式和Torch 有几分相 像。掌握Keras 可以大幅提升对开发效率和网络结构的理解。

      码农之家

      逯乐心 提供上传

      资源
      34
      粉丝
      33
      喜欢
      363
      评论
      9

      Copyright 2018-2021 www.xz577.com 码农之家

      版权投诉 / 书籍推广:520161757@qq.com