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

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

代码行:
# 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)你想要的结果是:

发布于 2022-07-21 18:26:42
您要寻找的东西(输入值和输出值的水平拆分)可以在早期版本的TensorFlow 2.7中实现。
请使用以下代码安装TensorFlow 2.7,重新启动内核,然后尝试运行上述代码:
!pip install tensorflow==2.7

发布于 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时。
https://stackoverflow.com/questions/72876924
复制相似问题