Что такое обозначение означает Dense () () скобки и скобки в Python? - PullRequest
0 голосов
/ 09 июня 2019

Я нашел такую ​​запись в документации keras для плотного класса: прогнозы = плотные (10, активация = 'softmax') (x) Что означает такая запись () ()?

from keras.layers import Input, Dense
from keras.models import Model

# This returns a tensor
inputs = Input(shape=(784,))

# a layer instance is callable on a tensor, and returns a tensor
x = Dense(64, activation='relu')(inputs)
x = Dense(64, activation='relu')(x)
predictions = Dense(10, activation='softmax')(x)

# This creates a model that includes
# the Input layer and three Dense layers
model = Model(inputs=inputs, outputs=predictions)
model.compile(optimizer='rmsprop',
              loss='categorical_crossentropy',
              metrics=['accuracy'])
model.fit(data, labels)  # starts training

Ответы [ 2 ]

1 голос
/ 09 июня 2019

Dense(...) создает экземпляр класса Dense. Этот экземпляр имеет оператор __call__, который пишется в круглых скобках.

1 голос
/ 09 июня 2019

x()() означает, что вызов x() возвращает вызываемый объект (например, функцию или конструктор класса), который немедленно вызывается снова. Думайте об этом как:

fnc = x()
result = fnc()

Простой пример:

def foo():
    def bar():
        return 'baz'
    return bar

>>> foo()()
'baz'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...