簡體   English   中英

如何像 keras 一樣編寫自己的“函數式 API”?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM