Keras是一个由Python编写的开源人工神经网络库,可以作为Tensorflow、Microsoft-CNTK和Theano的高阶应用程序接口,进行深度学习模型的设计、调试、评估、应用和可视化 [1] 。

在 TensorFlow 中,推荐使用 Keras( tf.keras )构建模型。

  1. Kera有两个非常重要的概念,模型(Model)和层(Layer)。
  • 将各种计算流程和变量进行了封装
  • 模型将各种层进行组织和连接,并封装成一个整体

Keras 模型以类的形式呈现,我们可以通过继承 tf.keras.Model 这个python类来定义自己的模型。

在继承类中,我们需要重写__init__(构造函数,初始化)和 call(input)(模型调用)两个方法,同时也可以根据自己的需要增加自定义的方法。

>>> import tensorflow as tf
>>> class MyModel(tf.keras.Model): ... def __init__(self):
... super().init
//此处添加初始化代码(包含call方法中会用到的各种层),例如:
// Layer1 = tf.keras.Layers.BuiltInLayer(...)
// Layer1 = example(...) //初始化各种层,定义好都是干啥的 ... def call(self,input):
//此处添加模型调用的代码(处理输入并返回输出)
//描述各种数据是如何通过各种层最后得到输出
// x = Layer1(input)
//output = Layer2(x) //调用定义的层进行数据处理
... return output //返回结果
...
//还可添加自定义方法
  • 再次进行线性回归

>>> import tensorflow as tf
>>> x = tf.constant([[1.,2.,3.],[4.,5.,6.]])
>>> y = tf.constant([[10.],[20.]])
>
>>> class Linear(tf.keras.Model):
... def __init__(self):
... super().__init__()
... self.dense = tf.keras.layers.Dense(
... units = 1,
... activation = None,
... kernel_initializer=tf.zeros_initializer(),
... bias_initializer = tf.zeros_initializer())
... def call(self,input):
... output = self.dense(input)
... return output
... >>> model = Linear()
>>> optimizer = tf.keras.optimizers.SGD(learning_rate=0.01)
>>> model = Linear()
>>> optimizer = tf.keras.optimizers.SGD(learning_rate=0.01)
for i in range(100):
with tf.GradientTape() as tape:
y_pred = model(X)
loss = tf.reduce_mean(tf.square(y_pred - y))
grads = tape.gradient(loss, model.variables)
optimizer.apply_gradients(grads_and_vars=zip(grads, model.variables))
print(model.variables)

以后还是用pycharm吧,直接在cmd中用python看得我头晕眼花。。

–2019.8.25

TensorFlow2 Part3:动态模型建立与训练的更多相关文章

  1. 三分钟快速上手TensorFlow 2.0 (上)——前置基础、模型建立与可视化

    本文学习笔记参照来源:https://tf.wiki/zh/basic/basic.html 学习笔记类似提纲,具体细节参照上文链接 一些前置的基础 随机数 tf.random uniform(sha ...

  2. OSGI(面向Java的动态模型系统)

    基本简介编辑 OSGI服务平台提供在多种网络设备上无需重启的动态改变构造的功能.为了最小化耦合度和促使这些耦合度可管理,OSGi技术提供一种面向服务的架构,它能使这些组件动态地发现对方.OSGi联 O ...

  3. OSGI 面向Java的动态模型系统

    OSGI (面向Java的动态模型系统) OSGi(Open Service Gateway Initiative)技术是Java动态化模块化系统的一系列规范.OSGi一方面指维护OSGi规范的OSG ...

  4. [源码解析] 模型并行分布式训练Megatron (2) --- 整体架构

    [源码解析] 模型并行分布式训练Megatron (2) --- 整体架构 目录 [源码解析] 模型并行分布式训练Megatron (2) --- 整体架构 0x00 摘要 0x01 启动 1.1 分 ...

  5. [源码解析] 模型并行分布式训练 Megatron (3) ---模型并行实现

    [源码解析] 模型并行分布式训练 Megatron (3) ---模型并行实现 目录 [源码解析] 模型并行分布式训练 Megatron (3) ---模型并行实现 0x00 摘要 0x01 并行Tr ...

  6. [源码解析] 模型并行分布式训练Megatron (5) --Pipedream Flush

    [源码解析] 模型并行分布式训练Megatron (5) --Pipedream Flush 目录 [源码解析] 模型并行分布式训练Megatron (5) --Pipedream Flush 0x0 ...

  7. UML动态模型图简单介绍

    UML动态模型图描述了系统动态行为的各个方面,包括用例图.序列图.协作图.活动图和状态图.下面就每种图做一个简单介绍: 用例图 用例图描述系统外部的执行者与系统提供的用例之间的某种联系.所谓用例是指对 ...

  8. ArcGIS API for Silverlight 调用GP服务准备---GP模型建立、发布、测试

    原文:ArcGIS API for Silverlight 调用GP服务准备---GP模型建立.发布.测试 第一篇.GP降雨量等值线建模.发布及测试 在水利.气象等行业中,要在WebGIS中实现空间分 ...

  9. [Unity3D][Vuforia][IOS]vuforia在unity3d中添加自己的动态模型,识别自己的图片,添加GUI,播放视频

    使用环境 unity3D 5 pro vuforia 4 ios 8.1(6.1) xcode 6.1(6.2) 1.新建unity3d工程,添加vuforia 4.0的工程包 Hierarchy中 ...

随机推荐

  1. 使MVC路由表无效

    protected void Application_Start() { AreaRegistration.RegisterAllAreas(); WebApiConfig.Register(Glob ...

  2. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 表格:基本的表格

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  3. css 图形样式

    参考:https://css-tricks.com/examples/ShapesOfCSS/

  4. js实现深度拷贝

    js实现拷贝,使用普通赋值对象,在操作其中一个对象值的时候,另一个也会更改,不符合需求 因此引入深度拷贝,以下为实现深度拷贝的几种法: Object.assign // 合并多个对象 var targ ...

  5. java SHA1加密算法

    package com.cn.test.rsa; import java.security.MessageDigest; import java.security.NoSuchAlgorithmExc ...

  6. RTL级低功耗设计

    重点:门控时钟和操作数隔离 1.并行与流水的选择 并行与流水都是用面积换速度,但是有时可以降低功耗 并行处理常用于数字信号处理部分,采用并行处理,也已降低系统工作频率从而降低功耗 用两个乘法器取代原设 ...

  7. Windows Server 2008 R2 SP1 中IIS7.5 和 TOMCAT7 整合笔记

    Windows Server 2008 R2 SP1 中IIS7.5 和 TOMCAT7 整合笔记 来源:www.roak.com 整合文件在百度网盘或博客盘 配置了N次,64位操作系统真坑爹~~~下 ...

  8. jenkins构建python项目时,提示python不是内部或外部命令的解决办法

    1.回到 Jenkins 首页,点击 “构建执行状态”或“Build Executor Status” ,右则会列出本机信息. 完美解决!!!

  9. 玩玩负载均衡---在window与linux下配置nginx

      最近有些时间,开始接触负载均衡方面的东西,从硬件F5再到Citrix Netscalar.不过因为硬件的配置虽然不复杂,但昂贵的价格也让一般用户望而却步(十几万到几十万),所以只能转向nginx, ...

  10. Hive的原生部署方式

    一.Hive的部署 1.官方文档 https://cwiki.apache.org/confluence/display/Hive/GettingStarted 2.前提条件 需要安装JDK1.7之上 ...