首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tensorflow.keras.utils.plot_model不能正常工作

tensorflow.keras.utils.plot_model不能正常工作
EN

Stack Overflow用户
提问于 2022-07-06 00:57:07
回答 2查看 354关注 0票数 0

我刚刚使用了tf.keras.utils.plot_model,并出现了以下图表:

图的右侧显示带有垂直分割的输入和输出形状,但它应该是一个水平拆分,以与左边的"intput:“和" output :”单元格相匹配。

代码行:

代码语言:javascript
复制
# Import the required libraries.
from tensorflow.keras.layers import Input, Conv2D, Dense, Flatten
from tensorflow.keras.utils import plot_model
from tensorflow.keras.models import Model

input_shape = Input(shape=(128,128,3), name='input')
conv1 = Conv2D(filters=256, kernel_size=6, strides=2, padding='valid', activation='relu', name='conv1')(input_shape)
flt = Flatten()(conv1)
shared = Dense(64)(flt)
sub1 = Dense(16)(shared)
out1 = Dense(3, activation='softmax', name='gait')(sub1)
model = Model(inputs=input_shape, outputs=out1)


plot_model(model=model, show_shapes=True)

你想要的结果是:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-07-21 18:26:42

您要寻找的东西(输入值和输出值的水平拆分)可以在早期版本的TensorFlow 2.7中实现。

请使用以下代码安装TensorFlow 2.7,重新启动内核,然后尝试运行上述代码:

代码语言:javascript
复制
!pip install tensorflow==2.7

票数 0
EN

Stack Overflow用户

发布于 2022-07-06 07:18:29

所以我已经看了几个小时了,我重新创造了这个问题。我可以重新创建两个绘图模型如何显示(垂直和水平),但我不能直接控制它。我能看到的唯一真正的区别是,您要寻找的plot_model()结果是使用Functional API构建模型的时候。使用Sequential API生成不需要的图形。

因此,可以尝试使用Functional API而不是Sequential API重新创建模型。你不应该看到任何表现上的差异。我会使用Functional API重做您的模型,但是没有代码可以重做。如果需要,可以使用keras.utils.vis_utils.py.model_to_dot()查看是否可以获得所有模型类型的Functional API输出。如果我找到了这些更改,我可能会在稍后更新这个答案。查看该文件,并与生成的绘图进行比较,我肯定是在函数检查模型是sequential.Sequential还是functional.Functional时。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72876924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档