Biorąc pod uwagę następujące klasy:Przydatność @property w tym przypadku
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
Nie rozumiem, dlaczego oni korzystać z funkcji właściwość w tej sprawie. Używanie dekoratora właściwości dla funkcji input_size pozwala wywołać input_size na obiekcie, nazwijmy to komórką, tej klasy, ale dlaczego po prostu nie nazywają one cell._input_size? Czy ktoś może mi powiedzieć, dlaczego jest to przydatne?
Zapytaj autora kodu? Próba wyobrażenia sobie, jak ktoś go używa, aby było użyteczne, jest raczej ... daremnym zadaniem. –
Jest w kodzie Tensorflow napisanym przez google. https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/ops/rnn_cell.py, jestem pewien, że są zajęci robieniem czegoś bardziej przydatnego niż pomoc. – eager2learn