無引數的自定義層可以使用:keras.layers.lambda函式
customized_spftplus = keras.layers.lambda(
lambda x : tf.nn.softplus(x)
)print
(customized_spftplus(
[1.0
,1.0
,1.0
,0.0
,0.1
,0.2])
)# tf.tensor([1.3132616 1.3132616 1.3132616 0.6931472 0.7443967 0.7981388], shape=(6,), dtype=float32)
有引數自定義層需要繼承keras.layers.layer類
class
customizeddenselayer
(keras.layers.layer)
:'''
繼承的時候必須有三個方法,__init__,build,call
'''# 建構函式需要,繼承父類的初始屬性,這時候需要用到
# super(customizeddenselayer, self).__init__(**kwargs)
def__init__
(self, units, activation=
none
,**kwargs)
: self.units = units
self.activation = keras.layers.activation(activation)
# super
(customizeddenselayer, self)
.__init__(
**kwargs)
defbuild
(self, input_shape)
:# 呼叫父類的方法,add_weight,新增weight
self.kernel = self.add_weight(name=
'kernel'
, shape=
(input_shape[1]
, self.units)
, initializer =
'uniform'
, trainable =
true
) self.bias = self.add_weight(name=
'bias'
,shape=
(self.units,),
initializer =
'zeros'
, trainable =
true
)super
(customizeddenselayer,self)
.build(input_shape)
defcall
(self, x)
:return self.activation(x @ self.kernel + self.bias)
TensorFlow2 0 自定義層與自定義網路
自定義層函式需要繼承layers.layer,自定義網路需要繼承keras.model。其內部需要定義兩個函式 1 init 初始化函式,內部需要定義構造形式 2 call函式,內部需要定義計算形式及返回值。self def layer class mydense layers.layer inhe...
tensorflow2 0學習筆記 自定義求導
tensorflow2.0建立神經網路模型,tensorflow近似求導與keras.optimizers結合使用,實現自定義求導,使得模型訓練更加靈活。tensorflow2.0學習筆記 應用tensorflow近似求導介紹tensorflow求導的基本用法。import matplotlib a...
tensorflow2 0視訊記憶體設定
遇到乙個問題 新買顯示卡視訊記憶體8g但是tensorflow執行的時候介面顯示只有約6.3g的視訊記憶體可用,如下圖 即限制了我的視訊記憶體,具體原因為什麼我也不知道,但原來的視訊記憶體小一些的顯示卡就沒有這個問題。目前的解決辦法是 官方文件解決 然後對應的中文部落格 總結一下,就是下面的兩個辦法...