Keras函式式API與自定義層

2021-09-25 20:23:18 字數 946 閱讀 6138

函式式api從乙個例子開始

from keras.layers import *

x = input(shape=(10, ))

y = dense(10)(x)

正常情況下怎麼使用類例項

可能你對上面的例子感到習以為常,但是看看正常情況下是怎樣使用類的

class a(object):

def __init__(self, var):

self.var = var

def printf(self):

print(self.var)

a = a(0)

a.printf()

>> 0

什麼不一樣

函式式api的呼叫中dense(10)(x)是不是沒有指定方法就呼叫方法了

發生了什麼

是不是相到了python裡面乙個叫做魔法方法的東西

怎麼做到的

通過__call__

class a(object):

def __init__(self, var):

self.var = var

def __call__(self, x):

print(x)

a = a(1)

a(3)

>>> 3

keras的__call__

keras的__call__實現

自定義keras層

官方文件對於自定義層的描述

有3個需要重寫的方法

為什麼需要重寫這三個方法?因為計算邏輯都寫在了layer這個基類的__call__中了

可以不重寫這三個方法嗎

請繼承layer,並重寫__call__,就像keras的bidirectional做的那樣

Keras 自定義層

keras自定義或者重寫層,需要實現三個方法 問題 參考 keras 自定義層 最後舉乙個conditional layer normalization的例子 基於conditional layer normalization的條件文字生成 自定義層需要實現三個方法 class layernorma...

keras自定義層

keras學習筆記 二 keras實現自定義層 例1,參考博文1中的自定義層attentiondecoder。def build self,input shape for model details that correspond to the matrices here.self.batch si...

Keras函式式API介紹

參考文獻 g ron,aur lien.hands on machine learning with scikit learn,keras,and tensorflow concepts,tools,and techniques to build intelligent systems.o reil...