背景

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编程规范的更多相关文章

  1. 为什么有的编程规范要求用 void 0 代替 undefined

    Undefined Undefined 类型表示未定义,它的类型只有一个值,就是 undefined. 任何变量在被赋值前它的值都是 undefined,但是在 JavaScript 引擎中,unde ...

  2. 使Eclipse符合Java编程规范

    编程规范是很重要的东西,能让团队的代码易于阅读和维护,也便于日后的功能扩展. 工欲善其事必先利其器!作为一个Java程序员,与Eclipse打交道可能是一辈子的事情.将Eclipse设置为符合公司编程 ...

  3. flex+AS3编程规范

    flex+AS3编程规范 Flex+AS3编码规范 http://www.cnblogs.com/jiahuafu/   1.  缩写: 尽量避免使用缩写,使用缩写时尽量和Flex保持一致.但要记住一 ...

  4. Python编程规范(PEP8)

    Python编程规范(PEP8) 代码布局 缩进 对于每一次缩进使用4个空格.使用括号.中括号.大括号进行垂直对齐,或者缩进对齐. 制表符还是空格? 永远不要将制表符与空格混合使用.Python最常用 ...

  5. Python 编程规范-----转载

    Python编程规范及性能优化 Ptyhon编程规范 编码 所有的 Python 脚本文件都应在文件头标上 # -*- coding:utf-8 -*- .设置编辑器,默认保存为 utf-8 格式. ...

  6. 华为C语言编程规范

    DKBA华为技术有限公司内部技术规范DKBA 2826-2011.5C语言编程规范2011年5月9日发布 2011年5月9日实施华为技术有限公司Huawei Technologies Co., Ltd ...

  7. 中兴软件编程规范C/C++

    Q/ZX 深圳市中兴通讯股份有限公司企业标准 (设计技术标准) Q/ZX 04.302.1–2003      软件编程规范C/C++                               20 ...

  8. Java编程规范实践

    一个好的编程规范可以让代码易于理解,具体的操作却不必如此麻烦. 本文包含以下内容: Eclipse Java代码Formatter配置 Eclipse 代码模板配置 自动添加Javadoc注释 附录: ...

  9. 基于华为Java编程规范的Eclipse checkStyle.xml

    发现项目组成员代码规范存在较大的问题,于是就在华为编程规范的基础上制定了这份checkStyle.xml文档,至于Eclipse怎么安装checkStyle插件以及该插件怎么使用请自行Google之. ...

随机推荐

  1. 基于vue-cli项目打包慢的定位优化过程

    入职一周后,上一个前端就离职了(超级坑爹的),留下了一个比较棘手的问题,就是基于vue-cli的项目打包超级慢,我接手项目的时候,打包需要45min(上个离职者也不知道原因),经过3个月之后,随着项目 ...

  2. kubernetes的namespaces总是Terminating

    0.尝试强制删除不行 删除时带上–force --grace-period=0参数 ,无法删除:kubectl delete namespace rook-ceph --force --grace-p ...

  3. 零零散散的python笔记

    Python strip()方法 用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列. #!/usr/bin/python # -*- coding: UTF-8 -*- str = &qu ...

  4. Linux第三阶段题型测试

    1.如何取得/etiantian文件的权限对应的数字内容,如-rw-r--r--为644,要求使用命令取得644或0644这样的数字. 解答: 1)最土的方法:ls -l /etiantian |cu ...

  5. spy++工具

    vs工具的spy++和第三方spy4win工具下载地址: https://files.cnblogs.com/files/zhangmo/spytools.rar https://files.cnbl ...

  6. python列表的切片与复制

    切片,即处理一个完整列表中部分数据. 语法 变量[起始索引:终止索引:步长] 首先创建一个字符串列表 >>> cars = ['toyota', 'honda', 'mazda', ...

  7. 自然语言处理工具python调用hanlp的方法步骤

    Python调用hanlp的方法此前有分享过,本篇文章分享自“逍遥自在017”的博客,个别处有修改,阅读时请注意! 1.首先安装jpype 首先各种坑,jdk和python 版本位数必须一致,我用的是 ...

  8. css多种方式实现等宽布局

    本文讲的等宽布局是在不手动设置元素宽度的情况下,使用纯css实现各个元素宽度都相当的效果. 1.使用table-cell实现(兼容ie8) <style> body,div{ margin ...

  9. Web项目测试流程总结

    个人知识脑图总结 - 未完全(工作项目脑图总结存于网盘中)

  10. THUWC2020滚粗记

    \(Day-?\) 教练叫走了3个人,没叫我 感觉药丸,然后被告知pku没过,thu过了 神奇,然后就活了 后来在机房颓废,大声说笑被diss 当时感觉颓的有点过头,药丸 \(Day0\) 跟NC去T ...