摘要:
本篇文章介绍在spark中调用训练好的tensorflow模型进行预测的方法。 本文内容的学习需要一定的spark和scala基础。 如果使用pyspark的话会比较简单,只需要在每个excutor上用Python加载模型分别预测就可以了。 但工程上为了性能考虑,通常使用的是scala版本的spar 阅读全文
posted @ 2020-04-13 13:18
西西嘛呦
阅读(3179)
评论(0)
推荐(1)
摘要:
TensorFlow训练好的模型以tensorflow原生方式保存成protobuf文件后可以用许多方式部署运行。 例如:通过 tensorflow-js 可以用javascrip脚本加载模型并在浏览器中运行模型。 通过 tensorflow-lite 可以在移动和嵌入式设备上加载并运行Tensor 阅读全文
posted @ 2020-04-13 13:13
西西嘛呦
阅读(2786)
评论(0)
推荐(0)
摘要:
如果想尝试使用Google Colab上的TPU来训练模型,也是非常方便,仅需添加6行代码。 在Colab笔记本中:修改->笔记本设置->硬件加速器 中选择 TPU 注:以下代码只能在Colab 上才能正确执行。 可通过以下colab链接测试效果《tf_TPU》: https://colab.res 阅读全文
posted @ 2020-04-13 13:06
西西嘛呦
阅读(2165)
评论(1)
推荐(0)
摘要:
如果使用多GPU训练模型,推荐使用内置fit方法,较为方便,仅需添加2行代码。 在Colab笔记本中:修改->笔记本设置->硬件加速器 中选择 GPU 注:以下代码只能在Colab 上才能正确执行。 可通过以下colab链接测试效果《tf_多GPU》: https://colab.research. 阅读全文
posted @ 2020-04-13 12:57
西西嘛呦
阅读(4823)
评论(0)
推荐(0)
摘要:
深度学习的训练过程常常非常耗时,一个模型训练几个小时是家常便饭,训练几天也是常有的事情,有时候甚至要训练几十天。 训练过程的耗时主要来自于两个部分,一部分来自数据准备,另一部分来自参数迭代。 当数据准备过程还是模型训练时间的主要瓶颈时,我们可以使用更多进程来准备数据。 当参数迭代过程成为训练时间的主 阅读全文
posted @ 2020-04-13 12:31
西西嘛呦
阅读(7494)
评论(0)
推荐(0)
摘要:
模型的训练主要有内置fit方法、内置tran_on_batch方法、自定义训练循环。 注:fit_generator方法在tf.keras中不推荐使用,其功能已经被fit包含。 import numpy as np import pandas as pd import tensorflow as t 阅读全文
posted @ 2020-04-13 11:54
西西嘛呦
阅读(6048)
评论(0)
推荐(0)
摘要:
可以使用以下3种方式构建模型:使用Sequential按层顺序构建模型,使用函数式API构建任意结构模型,继承Model基类构建自定义模型。 对于顺序结构的模型,优先使用Sequential方法构建。 如果模型有多输入或者多输出,或者模型需要共享权重,或者模型具有残差连接等非顺序结构,推荐使用函数式 阅读全文
posted @ 2020-04-13 11:43
西西嘛呦
阅读(5339)
评论(7)
推荐(0)
摘要:
tf.keras的回调函数实际上是一个类,一般是在model.fit时作为参数指定,用于控制在训练过程开始或者在训练过程结束,在每个epoch训练开始或者训练结束,在每个batch训练开始或者训练结束时执行一些操作,例如收集一些日志信息,改变学习率等超参数,提前终止训练过程等等。 同样地,针对mod 阅读全文
posted @ 2020-04-13 10:54
西西嘛呦
阅读(2750)
评论(0)
推荐(0)
摘要:
机器学习界有一群炼丹师,他们每天的日常是: 拿来药材(数据),架起八卦炉(模型),点着六味真火(优化算法),就摇着蒲扇等着丹药出炉了。 不过,当过厨子的都知道,同样的食材,同样的菜谱,但火候不一样了,这出来的口味可是千差万别。火小了夹生,火大了易糊,火不匀则半生半糊。 机器学习也是一样,模型优化算法 阅读全文
posted @ 2020-04-13 10:52
西西嘛呦
阅读(4511)
评论(0)
推荐(0)
摘要:
损失函数除了作为模型训练时候的优化目标,也能够作为模型好坏的一种评价指标。但通常人们还会从其它角度评估模型的好坏。 这就是评估指标。通常损失函数都可以作为评估指标,如MAE,MSE,CategoricalCrossentropy等也是常用的评估指标。 但评估指标不一定可以作为损失函数,例如AUC,A 阅读全文
posted @ 2020-04-13 10:48
西西嘛呦
阅读(9966)
评论(0)
推荐(2)
摘要:
一般来说,监督学习的目标函数由损失函数和正则化项组成。(Objective = Loss + Regularization) 对于keras模型,目标函数中的正则化项一般在各层中指定,例如使用Dense的 kernel_regularizer 和 bias_regularizer等参数指定权重使用l 阅读全文
posted @ 2020-04-13 10:44
西西嘛呦
阅读(5229)
评论(16)
推荐(1)
摘要:
深度学习模型一般由各种模型层组合而成。 tf.keras.layers内置了非常丰富的各种功能的模型层。例如, layers.Dense,layers.Flatten,layers.Input,layers.DenseFeature,layers.Dropout layers.Conv2D,laye 阅读全文
posted @ 2020-04-13 10:40
西西嘛呦
阅读(4250)
评论(0)
推荐(2)
摘要:
激活函数在深度学习中扮演着非常重要的角色,它给网络赋予了非线性,从而使得神经网络能够拟合任意复杂的函数。 如果没有激活函数,无论多复杂的网络,都等价于单一的线性变换,无法对非线性函数进行拟合。 目前,深度学习中最流行的激活函数为 relu, 但也有些新推出的激活函数,例如 swish、GELU 据称 阅读全文
posted @ 2020-04-13 10:34
西西嘛呦
阅读(2773)
评论(0)
推荐(0)
摘要:
特征列 通常用于对结构化数据实施特征工程时候使用,图像或者文本数据一般不会用到特征列。 一,特征列用法概述 使用特征列可以将类别特征转换为one-hot编码特征,将连续特征构建分桶特征,以及对多个特征生成交叉特征等等。 要创建特征列,请调用 tf.feature_column 模块的函数。该模块中常 阅读全文
posted @ 2020-04-13 10:31
西西嘛呦
阅读(3069)
评论(0)
推荐(0)