[英]How to write your own “functional API” like in keras?
Keras 有一個函數式 API,您可以在其中放入函數調用后面的信號,例如:
x = Input(shape=(782))
x = Dense(1024)(x)
x = Dense(1024)(x)
我想用相同的語法創建自己的信號處理庫,但找不到任何東西(可能是因為我找不到此方法的特殊詞)。
所以假設一個簡單的例子,如:
def add(w)(x):
"""
w is the constant, x is the input signal
"""
return w+x
x = np.random.randint(0,255,shape=(100,100,3))
x = add(5)(x)
x = add(5)(x)
我需要如何編寫 add 函數才能擁有這種行為?
您必須創建類並在其中定義內置的__call__
方法。 所以例如。 您將創建一個“添加”類,其中構造函數采用w
參數,以及此類中的__call__(x)
方法。 檢查密集層實現的更多信息: https : //github.com/tensorflow/tensorflow/blob/v2.3.0/tensorflow/python/keras/layers/core.py#L1192
例子:
class Add:
def __init__(self, w):
self.w = w
def __call__(self, x):
return self.w + x
x = np.random.randint(0,255,size=(100,100,3))
x = Add(5)(x)
x = Add(5)(x)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.