Vedo molto questo tipo di sintassi in alcuni file sorgente Lua che stavo leggendo ultimamente, cosa significa, in particolare la seconda coppia di parentesi Un esempio, riga 8 in https://github.com/karpathy/char-rnn/blob/master/model/LSTM.luaC'è un significato speciale per la sintassi()() in Lua
local LSTM = {}
function LSTM.lstm(input_size, rnn_size, n, dropout)
dropout = dropout or 0
-- there will be 2*n+1 inputs
local inputs = {}
table.insert(inputs, nn.Identity()()) -- line 8
-- ...
Il codice sorgente di nn.Identity
https://github.com/torch/nn/blob/master/Identity.lua
********** UPDATE **************
Il modello()() è usato in biblioteca torcia 'nn' molto. La prima coppia di parentesi crea un oggetto del contenitore/nodo e la seconda coppia di parentesi fa riferimento al nodo dipendente.
Ad esempio, y = nn.Lineare (2,4) (x) significa che x si connette a ye la trasformazione è lineare da 1 * 2 a 1 * 4. Capisco appena l'utilizzo, come viene cablato sembra essere risposta da una delle risposte qui sotto.
In ogni caso, l'utilizzo dell'interfaccia è ben documentato di seguito. https://github.com/torch/nngraph/blob/master/README.md
Se c'è una domanda, allora un buon modo per risolvere questo problema è quello di tirare fuori l'espressione 'nn.Identity()' e dargli un nome significativo. Ad esempio (ma con un nome quasi privo di significato poiché non so come chiamarlo): 'identityProvider locale = nn.Identity()' –