Python 在tensorflow-2.0 beta中绘制子类模型
我有一个子类模型,它通过子类化实例化了一些自定义层。我尝试使用Python 在tensorflow-2.0 beta中绘制子类模型,python,tensorboard,tensorflow2.0,Python,Tensorboard,Tensorflow2.0,我有一个子类模型,它通过子类化实例化了一些自定义层。我尝试使用keras.utils.plot\u model(),但它所做的只是打印模型块,没有一个图层出现 Tensorflow专家对此有何评论?将来是否会实现此功能?如果不是,检查计算图的下一个最佳选择是什么?请注意,model.summary()仅提供自定义层参数的摘要,其中包含两个密集层。理想情况下,我喜欢看到所有的计算,如果这不是要求太多 更新:我深入研究了源代码,看起来像plot\u model(),首先检查\u is\u graph
keras.utils.plot\u model()
,但它所做的只是打印模型块,没有一个图层出现
Tensorflow专家对此有何评论?将来是否会实现此功能?如果不是,检查计算图的下一个最佳选择是什么?请注意,model.summary()
仅提供自定义层参数的摘要,其中包含两个密集层。理想情况下,我喜欢看到所有的计算,如果这不是要求太多
更新:我深入研究了源代码,看起来像plot\u model(),首先检查\u is\u graph\u network
属性。图形网络用于函数式和顺序式API。来源:
存在两种类型的网络
:图形网络和子类网络。图表
Keras功能性和顺序API中使用了网络。子类
当用户对模型
类进行子类化时,将使用网络。一般来说
图形网络比子类网络支持更多的Keras功能
网络,特别是:
- 模型克隆(
)keras.models.clone()
- 序列化(
,model.get_-config()/from_-config()
)model.to_-json()/to_-yaml()
- 整个模型保存(
)model.save()
有人能告诉我通过Tensorboard进行的图形可视化是否适用于Tensorflow2 tf.函数吗?在Tensorflow 1.x中,定义了一个ops逻辑组的名称范围(例如,GAN中的生成器/鉴别器、VAE中的编码器/解码器和损耗/度量),然后它们在图形可视化中显示为高级块。我可以为tf.函数定义类似的内容吗?根据官方文档, 你可以 使用TensorFlow摘要跟踪API记录 张力板的可视化 下面是一个可视化子类模型的简单示例:
import tensorflow as tf
from tensorflow.keras import layers
class MyModel(tf.keras.Model):
def __init__(self, num_classes=10):
super(MyModel, self).__init__(name='my_model')
self.num_classes = num_classes
self.dense_1 = layers.Dense(32, activation='relu')
self.dense_2 = layers.Dense(num_classes, activation='sigmoid')
def call(self, inputs):
x = self.dense_1(inputs)
return self.dense_2(x)
model = MyModel(num_classes=10)
model.compile(optimizer=tf.keras.optimizers.RMSprop(0.001),
loss='categorical_crossentropy',
metrics=['accuracy'])
data = np.random.random((1000, 32))
labels = np.random.random((1000, 10))
@tf.function
def trace():
data = np.random.random((1, 32))
model(data)
logdir = "trace_log"
writer = tf.summary.create_file_writer(logdir)
tf.summary.trace_on(graph=True, profiler=True)
# Forward pass
trace()
with writer.as_default():
tf.summary.trace_export(name="model_trace", step=0, profiler_outdir=logdir)
然后可以使用Tensorboard检查计算图:
tensorboard --logdir trace_log
如果有人看到这一点,并知道谁可以帮助,请让我知道。我真的希望了解更多关于tensorflow2的内部工作原理。谢谢。你知道如何绘制使用子类技术创建的模型了吗?@DavidKWH如果你还在寻找答案,我已经发布了一个简单的解决方法。