tensorflow2.0编程规范
背景
tensorflow2.0 相比于1.0 有很大变化,1.0版本的placeholder,Session都没有了,2.0版本强推使用keras。keras是一个比较高层的api,确实挺好用的,一些基本模型使用起来很方便,本文主要写了几种常用场景下的编程规范指南,都是自己总结出来的如果大家有更好的想法可以在评论中留言。
目的
编程规范的目的是,从构架速度、清晰、可扩展几个方面考虑。
编程规范
- 比较简单的顺序模型
比较简单的模型直接使用Sequential比较好,也可以使用Model构建 - 较复杂的模型
一般指有多输入都输出,共享某些层等的情况。
使用keras.Model
keras.Model必须有输入层,输出层,当构建一个Model的对象时,这个对象可以看成一个层,如果想将这个层用于另一个Model,必须重新定义输入层。举个例子:import tensorflow as tf try:
import tensorflow.python.keras as keras
except:
import tensorflow.keras as keras
import numpy as np X = np.linspace(0, 1.0, 100)
y = X ** 2 + 1.0
X = np.reshape(X, (-1, 1)) m_in = keras.layers.Input(shape=(1,))
h1 = keras.layers.Dense(units=10, activation="relu")
out = keras.layers.Dense(units=1, activation="relu") h = h1(m_in)
h = out(h)
model1 = keras.Model(inputs=m_in, outputs=h) m2_in = keras.layers.Input(shape=(h.shape[1],))
h2 = keras.layers.Dense(units=12)
h3 = keras.layers.Dense(units=1)
h = h2(m2_in)
h = h3(h) model2 = keras.Model(inputs=m2_in, outputs=h)
# model2.summary() m_in = keras.layers.Input(shape=(1,))
h = model1(m_in)
out = model2(h) model3 = keras.Model(inputs=m_in, outputs=out)
model3.summary()
关于Tensorflow2.0中Tensor类的问题,使用tf.shape获得的Tensor对象是没有numpy属性的。
tensorflow2.0编程规范的更多相关文章
- 为什么有的编程规范要求用 void 0 代替 undefined
Undefined Undefined 类型表示未定义,它的类型只有一个值,就是 undefined. 任何变量在被赋值前它的值都是 undefined,但是在 JavaScript 引擎中,unde ...
- 使Eclipse符合Java编程规范
编程规范是很重要的东西,能让团队的代码易于阅读和维护,也便于日后的功能扩展. 工欲善其事必先利其器!作为一个Java程序员,与Eclipse打交道可能是一辈子的事情.将Eclipse设置为符合公司编程 ...
- flex+AS3编程规范
flex+AS3编程规范 Flex+AS3编码规范 http://www.cnblogs.com/jiahuafu/ 1. 缩写: 尽量避免使用缩写,使用缩写时尽量和Flex保持一致.但要记住一 ...
- Python编程规范(PEP8)
Python编程规范(PEP8) 代码布局 缩进 对于每一次缩进使用4个空格.使用括号.中括号.大括号进行垂直对齐,或者缩进对齐. 制表符还是空格? 永远不要将制表符与空格混合使用.Python最常用 ...
- Python 编程规范-----转载
Python编程规范及性能优化 Ptyhon编程规范 编码 所有的 Python 脚本文件都应在文件头标上 # -*- coding:utf-8 -*- .设置编辑器,默认保存为 utf-8 格式. ...
- 华为C语言编程规范
DKBA华为技术有限公司内部技术规范DKBA 2826-2011.5C语言编程规范2011年5月9日发布 2011年5月9日实施华为技术有限公司Huawei Technologies Co., Ltd ...
- 中兴软件编程规范C/C++
Q/ZX 深圳市中兴通讯股份有限公司企业标准 (设计技术标准) Q/ZX 04.302.1–2003 软件编程规范C/C++ 20 ...
- Java编程规范实践
一个好的编程规范可以让代码易于理解,具体的操作却不必如此麻烦. 本文包含以下内容: Eclipse Java代码Formatter配置 Eclipse 代码模板配置 自动添加Javadoc注释 附录: ...
- 基于华为Java编程规范的Eclipse checkStyle.xml
发现项目组成员代码规范存在较大的问题,于是就在华为编程规范的基础上制定了这份checkStyle.xml文档,至于Eclipse怎么安装checkStyle插件以及该插件怎么使用请自行Google之. ...
随机推荐
- Spring源码分析(1)容器的基本实现——核心类介绍
bean是Spring中最核心的东西,因为Spring就像是个大水桶,而bean就像是容器中的水,水桶脱离了水便也没什么用处了,那么我们先看看bean的定义. public class MyTestB ...
- python 输出对齐
几种不同类型的输出对齐总结: 先看效果: 采用.format打印输出时,可以定义输出字符串的输出宽度,在 ':' 后传入一个整数, 可以保证该域至少有这么多的宽度. 用于美化表格时很有用. >& ...
- JS、JQUERY 获取浏览器和屏幕各种高度宽度
好长时间没有更新博客了... 把我最近积累的一点知识点放上博客,以后以备不需之要,也给大家整理一下.. Javascript: IE中:document.body.clientWidth ==> ...
- 消息中间件RabbitMq的代码使用案例
消费者: ---------------------- 构造初始化: public RabbitMqReceiver(String host, int port, String username, S ...
- 为什么还需要应用层的Keepalive?
既然TCP有了keepalive,应用层还需要Keepalive多此一举吗? 显然是不是的,首先协议分层思想,每层的关注点不同,TCP属于传输层,关注“通”,应用层关注是否能“用”,能“通”不一定能“ ...
- P1541 乌龟棋(动态规划)
(点击此处查看原题) 题意 此处有n个位置,记为1~n,每个位置上都对应一个权值,乌龟从编号为1的位置出发,利用m张爬行卡片到达位置n,爬行卡牌有四种,分别可以让乌龟移动1,2,3,4步,并保证将m张 ...
- RMQ+差分处理(Let Them Slide)Manthan, Codefest 19 (open for everyone, rated, Div. 1 + Div. 2)
题意:https://codeforc.es/contest/1208/problem/E 现有n行w列的墙,每行有一排连续方块,一排方块可以左右连续滑动,且每个方块都有一个价值,第i 列的价值定义为 ...
- 【操作记录】搭建虚拟机下 java 开发环境
第一步,配置虚拟机 virtualBox 官网下载最新版,安装,选择简体中文. CentOS 官网下载 最小版iso. 新建虚拟机并配置,挂载iso光盘,然后启动. 因为是最小版,安装时可能不支持使用 ...
- python基础知识0-5(单双向队列)
#多项队列import collections #导入模块d = collections.deque() #deque方法d.append('1') #添加元素d.appendleft('2')d.a ...
- maven工程下整合spring+mybatis报Mapped Statements collection does not contain value for spring-mybatis-user-get错误
在整合spring+mybatis报了下面的错误: Mapped Statements collection does not contain value for spring-mybatis-use ...