die folgende Klasse Gegeben:Usefulness von @property in diesem Fall
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
Ich verstehe nicht, warum sie die Eigenschaft Funktion in diesem Fall verwendet werden. Mit dem Property Decorator für die Funktion input_size kann man input_size für ein Objekt aufrufen, nennen wir es Zelle dieser Klasse, aber warum rufen sie nicht einfach cell._input_size auf? Kann mir jemand sagen, warum das nützlich ist?
Stellen Sie die Urheber des Codes? Zu versuchen, herauszufinden, wie jemand es benutzt, um es nützlich zu machen, ist eher ... vergebliche Aufgabe. –
Es ist in der Tensorflow-Code, von Google geschrieben. https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/ops/rnn_cell.py, ziemlich sicher, dass sie damit beschäftigt sind, etwas Nützlicheres zu tun, als mir zu helfen. – eager2learn