在tensorboard中我找不到像tensorflow1.X一样用于更新参数的渐变操作。
并且在keras api中找不到参数“ trainable”。
如果tf2.0仍然可以在张量板上显示渐变操作,如何将其添加到我的张量板上。
ps.my张量流版本为2.0-rc0。
这是我的代码来向tensorboard文件添加一些东西。
subprocess.call("ls -l", shell=False)
# raises OSError
subprocess.call("ls -l", shell=True)
# returns the directories and files in long format
答案 0 :(得分:1)
tensorflow2.0仍然具有参数'trainable'吗?
在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
!