[英]Does tensorflow2.0 still have parameter 'trainable'?
在張量板中,我找不到可以像 tensorflow1.X 一樣更新我的參數的梯度操作。
並且不要在 keras api 中找到參數“可訓練”。
如果 tf2.0 仍然可以在張量板中顯示漸變操作,我該如何將其添加到我的張量板中。
ps.我的 tensorflow 版本是 2.0-rc0。
這是我向張量板文件添加內容的代碼。
logdir = "testlogs"
tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir=logdir)
.....
model.fit(x=train_x, y=train_y,
batch_size=256,
epochs=6,
shuffle=True,
callbacks=[tensorboard_callback])
tensorflow2.0 是否還有參數“可訓練”?。
在 keras 中,確定哪些變量是可訓練的是構成model
的層的責任。 開箱即用有無數層可用,但這里有一個簡單的密集層實現,以說明一些可訓練變量的使用
class MyLayer(tf.keras.layers.Layer):
def __init__(self, units=8, input_dim=8):
super(MyLayer,self).__init__()
self.w = tf.Variable(initial_value=tf.random_normal_initializer()(shape=(input_dim, units)),
trainable=True)
self.b = tf.Variable(initial_value=tf.zeros_initializer()(shape=(units,)),
trainable=True)
def call(self, inputs):
return tf.matmul(inputs, self.w) + self.b
例如,您可以在這樣的 keras 模型中使用它:
my_layer = MyLayer(units=8,input_dim=2)
my_model = tf.keras.models.Sequential([
my_layer
])
my_model.compile(optimizer=tf.keras.optimizers.Adam(), loss=tf.keras.losses.binary_crossentropy)
當然最好在實踐中使用開箱即用的tf.keras.layers.Dense
,這只是為了說明可訓練變量my_layer.w
和my_layer.b
!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.