首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Keras与多层感知器的TensorFlow2实现

Keras与多层感知器的TensorFlow2实现
EN

Stack Overflow用户
提问于 2019-12-06 02:55:28
回答 1查看 88关注 0票数 0

我实现了一个简单的多层感知器模型,如下所示:

代码语言:javascript
复制
from keras.models import Model 
from keras.layers import Input 
from keras.layers import Dense 
from keras.utils import plot_model

visible = Input(shape=(10,))
hidden1 = Dense(10, activation='relu')(visible)
hidden2 = Dense(20, activation='relu')(hidden1)
hidden3 = Dense(10, activation='relu')(hidden2)
output = Dense(1, activation='sigmoid')(hidden3)

my_model_keras = Model(inputs=visible, outputs=output)

plot_model()函数返回以下图形:

然后,我尝试用Tensorflow2实现相同的模型,如下所示:

代码语言:javascript
复制
import tensorflow as tf

class TensorflowModel(tf.keras.Model):
    def __init__(self):
        super(TensorflowModel, self).__init__()

        self.visible = tf.keras.layers.Input(shape=(10,))
        self.hidden1 = tf.keras.layers.Dense(10)
        self.hidden2 = tf.keras.layers.Dense(20)
        self.hidden3 = tf.keras.layers.Dense(10)
        self.final = tf.keras.layers.Dense(1)

    def call(self, x, training=False):
        x = self.visible(x)
        x = tf.nn.relu(x)
        x = self.hidden1(x)
        x = tf.nn.relu(x)
        x = self.hidden2(x)
        x = tf.nn.relu(x)
        x = self.hidden3(x)
        x = tf.nn.relu(x)
        x = self.final(x)

        return tf.nn.sigmoid(x)

my_model_tf = TensorflowModel()

但是,plot_model()函数返回此图(与上图不同):

我的Tensorflow2模型的实现有什么问题吗?

EN

回答 1

Stack Overflow用户

发布于 2019-12-06 03:10:05

模型应该是相同的。我怀疑绘图中的差异是因为您使用的是tf.nn操作,而不是第一个实现中的层激活。因此,plot_model实现可能不会将密集层节点解释为相邻节点。

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

https://stackoverflow.com/questions/59201620

复制
相关文章

相似问题

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