tensorflow2.0編程規范


背景

tensorflow2.0 相比於1.0 有很大變化,1.0版本的placeholder,Session都沒有了,2.0版本強推使用keras。keras是一個比較高層的api,確實挺好用的,一些基本模型使用起來很方便,本文主要寫了幾種常用場景下的編程規范指南,都是自己總結出來的如果大家有更好的想法可以在評論中留言。

目的

編程規范的目的是,從構架速度、清晰、可擴展幾個方面考慮。

編程規范

  • 比較簡單的順序模型
    比較簡單的模型直接使用Sequential比較好,也可以使用Model構建
  • 較復雜的模型
    一般指有多輸入都輸出,共享某些層等的情況。
    使用keras.Model
    keras.Model必須有輸入層,輸出層,當構建一個Model的對象時,這個對象可以看成一個層,如果想將這個層用於另一個Model,必須重新定義輸入層。舉個例子:
     1 import tensorflow as tf
     2 
     3 try:
     4     import tensorflow.python.keras as keras
     5 except:
     6     import tensorflow.keras as keras
     7 import numpy as np
     8 
     9 X = np.linspace(0, 1.0, 100)
    10 y = X ** 2 + 1.0
    11 X = np.reshape(X, (-1, 1))
    12 
    13 m_in = keras.layers.Input(shape=(1,))
    14 h1 = keras.layers.Dense(units=10, activation="relu")
    15 out = keras.layers.Dense(units=1, activation="relu")
    16 
    17 h = h1(m_in)
    18 h = out(h)
    19 model1 = keras.Model(inputs=m_in, outputs=h)
    20 
    21 m2_in = keras.layers.Input(shape=(h.shape[1],))
    22 h2 = keras.layers.Dense(units=12)
    23 h3 = keras.layers.Dense(units=1)
    24 h = h2(m2_in)
    25 h = h3(h)
    26 
    27 model2 = keras.Model(inputs=m2_in, outputs=h)
    28 # model2.summary()
    29 
    30 
    31 
    32 m_in = keras.layers.Input(shape=(1,))
    33 h = model1(m_in)
    34 out = model2(h)
    35 
    36 model3 = keras.Model(inputs=m_in, outputs=out)
    37 model3.summary()

  關於Tensorflow2.0中Tensor類的問題,使用tf.shape獲得的Tensor對象是沒有numpy屬性的。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM