Data la seguente classe:Utilità del @property in questo caso
class BasicRNNCell(RNNCell):
"""The most basic RNN cell."""
def __init__(self, num_units, input_size=None):
self._num_units = num_units
self._input_size = num_units if input_size is None else input_size
@property
def input_size(self):
return self._input_size
@property
def output_size(self):
return self._num_units
@property
def state_size(self):
return self._num_units
def __call__(self, inputs, state, scope=None):
"""Most basic RNN: output = new_state = tanh(W * input + U * state + B)."""
with vs.variable_scope(scope or type(self).__name__): # "BasicRNNCell"
output = tanh(linear([inputs, state], self._num_units, True))
return output, output
non capisco il motivo per cui utilizzare la funzione di proprietà in questo caso. L'uso del decoratore di proprietà per la funzione input_size consente di chiamare input_size su un oggetto, chiamiamolo cella, di quella classe, ma perché non chiamano semplicemente cell._input_size? Qualcuno può dirmi perché questo è utile per favore?
Chiedi all'autore del codice? Cercare di capire come qualcuno lo usa per renderlo utile è piuttosto ... un compito inutile. –
È nel codice Tensorflow, scritto da google. https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/ops/rnn_cell.py, abbastanza sicuro che siano impegnati a fare qualcosa di più utile di aiutarmi. – eager2learn