【问题标题】:keras, what is the meaning of model(data)keras,模型(数据)是什么意思
【发布时间】:2018-08-29 20:48:14
【问题描述】:
class MNISTModel:
    def __init__(self, restore, session=None):
        self.num_channels = 1
        self.image_size = 28
        self.num_labels = 10

        model = Sequential()

        model.add(Conv2D(32, (3, 3),
                         input_shape=(28, 28, 1)))
        model.add(Activation('relu'))
        model.add(Conv2D(32, (3, 3)))
        model.add(Activation('relu'))
        model.add(MaxPooling2D(pool_size=(2, 2)))

        model.add(Conv2D(64, (3, 3)))
        model.add(Activation('relu'))
        model.add(Conv2D(64, (3, 3)))
        model.add(Activation('relu'))
        model.add(MaxPooling2D(pool_size=(2, 2)))

        model.add(Flatten())
        model.add(Dense(200))
        model.add(Activation('relu'))
        model.add(Dense(200))
        model.add(Activation('relu'))
        model.add(Dense(10))
        model.load_weights(restore)

        self.model = model
        print('selfMNIST')

    def predict(self, data):
        tmp=self.model(data)  #Question is here
        return tmp

这句话“tmp=self.model(data)”是干什么用的? 这里的“模型”是类顺序的变量,我从来没有见过这样的用法。 此代码取自 ## 版权所有 (C) 2016, Nicholas Carlini

【问题讨论】:

    标签: python model keras sequential


    【解决方案1】:

    好问题,这取决于data 是什么,但代码 sn-p 肯定是误导。澄清一下:

    • 如果你直接调用模型你需要传递张量,它就像另一个层。 model(anotherlayer) 例如工作。但是,如果您传递实际数据,例如 NumPy 错误,则会出现以下错误:

      ValueError: Layersequential_1 被调用的输入不是符号张量。接收类型:.完整输入:[array(...)]。该层的所有输入都应该是张量。

    • 如果您想进行预测,例如传递一些数字数据并运行网络/传播值/计算输出,那么您需要 model.predict(data) 这就是它具有误导性的原因,因为它是一个预测函数。

    我的猜测是作者需要将模型链接在一起并编辑类的predict 函数,而不是创建不同的类函数。

    【讨论】:

    • 谢谢!它应该充当另一层,因为它通过张量。我不明白“另一层”。作者调用定义函数“predict”时的注释是“#prediction BEFORE-SOFTMAX of the model”(在l2_attack.py中)。顺便说一句,MNISTModel 类在“setup_mnist.py”中定义。完整代码在 github "github.com/carlini/nn_robust_attacks"。
    • 你能给我一些关于模型(数据)使用的文件吗?
    • anotherlayer 就像Dense,一个实际的层,看看functional API 文档会有帮助。
    • 谢谢,真的很有帮助!
    猜你喜欢
    • 2020-01-05
    • 2019-11-05
    • 2019-12-10
    • 2016-04-12
    • 1970-01-01
    • 2020-03-04
    • 2019-02-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多