Tôi thấy loại cú pháp này rất nhiều trong một số tệp nguồn Lua tôi đã đọc gần đây, có nghĩa là gì, đặc biệt là cặp ngoặc đơn thứ nhất Ví dụ, dòng 8 trong https://github.com/karpathy/char-rnn/blob/master/model/LSTM.luaCó ý nghĩa đặc biệt cho cú pháp()() trong 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
-- ...
mã nguồn của nn.Identity
https://github.com/torch/nn/blob/master/Identity.lua
********** CẬP NHẬT **************
Mẫu()() được sử dụng trong ngọn đuốc thư viện 'nn' rất nhiều. Cặp khung đầu tiên tạo đối tượng của vùng chứa/nút và cặp khung thứ hai tham chiếu đến nút phụ thuộc.
Ví dụ: y = nn.Linear (2,4) (x) có nghĩa là x kết nối với y và phép chuyển đổi tuyến tính từ 1 * 2 đến 1 * 4. Tôi chỉ hiểu cách sử dụng, cách nó được kết nối có vẻ như được trả lời bằng một trong những câu trả lời dưới đây.
Dù sao, việc sử dụng giao diện cũng được ghi lại dưới đây. https://github.com/torch/nngraph/blob/master/README.md
Nếu có một câu hỏi đó một cách tốt để giải quyết vấn đề đó là phải rút ra khỏi khái niệm 'nn.Identity() 'và cung cấp cho nó một cái tên có ý nghĩa. Ví dụ (nhưng với một tên gần như vô nghĩa vì tôi không biết phải gọi nó là gì): 'local identityProvider = nn.Identity()' –