chainer.links.NStepRNNReLU¶
- 
class chainer.links.NStepRNNReLU(self, n_layers, in_size, out_size, dropout)[source]¶
- Stacked Uni-directional RNN for sequences. - This link is stacked version of Uni-directional RNN for sequences. Note that the activation function is - relu. It calculates hidden and cell states of all layer at end-of-string, and all hidden states of the last layer for each time.- Unlike - chainer.functions.n_step_rnn(), this function automatically sort inputs in descending order by length, and transpose the sequence. Users just need to call the link with a list of- chainer.Variableholding sequences.- Parameters
 - See also - Methods - 
add_link(link)[source]¶
- Registers a child link and adds it to the tail of the list. - Parameters
- link (Link) – The link object to be registered. 
 
 - 
add_param(name, shape=None, dtype=<class 'numpy.float32'>, initializer=None)[source]¶
- Registers a parameter to the link. - Parameters
- name (str) – Name of the parameter. This name is also used as the attribute name. 
- shape (int or tuple of ints) – Shape of the parameter array. If it is omitted, the parameter variable is left uninitialized. 
- dtype – Data type of the parameter array. 
- initializer – If it is not - None, the data is initialized with the given initializer. If it is an array, the data is directly initialized by it. If it is callable, it is used as a weight initializer. Note that in these cases,- dtypeargument is ignored.
 
 
 - 
add_persistent(name, value)[source]¶
- Registers a persistent value to the link. - The registered value is saved and loaded on serialization and deserialization. The value is set to an attribute of the link. - Parameters
- name (str) – Name of the persistent value. This name is also used for the attribute name. 
- value – Value to be registered. 
 
 
 - 
addgrads(link)[source]¶
- Accumulates gradient values from given link. - This method adds each gradient array of the given link to corresponding gradient array of this link. The accumulation is even done across host and different devices. - Parameters
- link (Link) – Source link object. 
 
 - 
append(value)¶
- S.append(value) – append value to the end of the sequence 
 - 
children()[source]¶
- Returns a generator of all child links. - Returns
- A generator object that generates all child links. 
 
 - 
clear() → None -- remove all items from S¶
 - 
cleargrads()[source]¶
- Clears all gradient arrays. - This method should be called before the backward computation at every iteration of the optimization. 
 - 
copyparams(link, copy_persistent=True)[source]¶
- Copies all parameters from given link. - This method copies data arrays of all parameters in the hierarchy. The copy is even done across the host and devices. Note that this method does not copy the gradient arrays. - From v5.0.0: this method also copies the persistent values (e.g. the moving statistics of - BatchNormalization). If the persistent value is an ndarray, the elements are copied. Otherwise, it is copied using- copy.deepcopy(). The old behavior (not copying persistent values) can be reproduced with- copy_persistent=False.
 - 
count(value) → integer -- return number of occurrences of value¶
 - 
count_params()[source]¶
- Counts the total number of parameters. - This method counts the total number of scalar values included in all the - Parameters held by this link and its descendants.- If the link containts uninitialized parameters, this method raises a warning. - Returns
- The total size of parameters (int) 
 
 - 
delete_hook(name)[source]¶
- Unregisters the link hook. - Parameters
- name (str) – The name of the link hook to be unregistered. 
 
 - 
disable_update()[source]¶
- Disables update rules of all parameters under the link hierarchy. - This method sets the - enabledflag of the update rule of each parameter variable to- False.
 - 
enable_update()[source]¶
- Enables update rules of all parameters under the link hierarchy. - This method sets the - enabledflag of the update rule of each parameter variable to- True.
 - 
extend(values)¶
- S.extend(iterable) – extend sequence by appending elements from the iterable 
 - 
forward(self, hx, xs)[source]¶
- Calculate all hidden states and cell states. - Parameters
- hx (Variable or None) – Initial hidden states. If - Noneis specified zero-vector is used. Its shape is- (S, B, N)for uni-directional RNN and- (2S, B, N)for bi-directional RNN where- Sis the number of layers and is equal to- n_layers,- Bis the mini-batch size, and- Nis the dimension of the hidden units.
- xs (list of ~chainer.Variable) – List of input sequences. Each element - xs[i]is a- chainer.Variableholding a sequence. Its shape is- (L_i, I), where- L_tis the length of a sequence for batch- i, and- Iis the size of the input and is equal to- in_size.
 
- Returns
- This function returns a tuple containing three elements, - hyand- ys.- hyis an updated hidden states whose shape is same as- hx.
- ysis a list of- Variable. Each element- ys[i]holds hidden states of the last layer corresponding to an input- xs[i]. Its shape is- (L_i, N)for uni-directional RNN and- (L_i, 2N)for bi-directional RNN where- L_tis the length of a sequence for batch- i, and- Nis size of hidden units.
 
- Return type
 
 - 
from_chainerx()[source]¶
- Converts parameter variables and persistent values from ChainerX to NumPy/CuPy devices without any copy. 
 - 
index(value[, start[, stop]]) → integer -- return first index of value.¶
- Raises ValueError if the value is not present. 
 - 
init_scope()[source]¶
- Creates an initialization scope. - This method returns a context manager object that enables registration of parameters (and links for - Chain) by an assignment. A- Parameterobject can be automatically registered by assigning it to an attribute under this context manager.- Example - In most cases, the parameter registration is done in the initializer method. Using the - init_scopemethod, we can simply assign a- Parameterobject to register it to the link.- class MyLink(chainer.Link): def __init__(self): super().__init__() with self.init_scope(): self.W = chainer.Parameter(0, (10, 5)) self.b = chainer.Parameter(0, (5,)) 
 - 
links(skipself=False)[source]¶
- Returns a generator of all links under the hierarchy. - Parameters
- skipself (bool) – If - True, then the generator skips this link and starts with the first child link.
- Returns
- A generator object that generates all links. 
 
 - 
namedlinks(skipself=False)[source]¶
- Returns a generator of all (path, link) pairs under the hierarchy. - Parameters
- skipself (bool) – If - True, then the generator skips this link and starts with the first child link.
- Returns
- A generator object that generates all (path, link) pairs. 
 
 - 
namedparams(include_uninit=True)[source]¶
- Returns a generator of all (path, param) pairs under the hierarchy. - Parameters
- include_uninit (bool) – If - True, it also generates uninitialized parameters.
- Returns
- A generator object that generates all (path, parameter) pairs. The paths are relative from this link. 
 
 - 
params(include_uninit=True)[source]¶
- Returns a generator of all parameters under the link hierarchy. - Parameters
- include_uninit (bool) – If - True, it also generates uninitialized parameters.
- Returns
- A generator object that generates all parameters. 
 
 - 
pop([index]) → item -- remove and return item at index (default last).¶
- Raise IndexError if list is empty or index is out of range. 
 - 
register_persistent(name)[source]¶
- Registers an attribute of a given name as a persistent value. - This is a convenient method to register an existing attribute as a persistent value. If - namehas been already registered as a parameter, this method removes it from the list of parameter names and re-registers it as a persistent value.- Parameters
- name (str) – Name of the attribute to be registered. 
 
 - 
remove(value)¶
- S.remove(value) – remove first occurrence of value. Raise ValueError if the value is not present. 
 - 
repeat(n_repeat, mode='init')[source]¶
- Repeats this link multiple times to make a - Sequential.- This method returns a - Sequentialobject which has the same- Linkmultiple times repeatedly. The- modeargument means how to copy this link to repeat.- Example - You can repeat the same link multiple times to create a longer - Sequentialblock like this:- class ConvBNReLU(chainer.Chain): def __init__(self): super(ConvBNReLU, self).__init__() with self.init_scope(): self.conv = L.Convolution2D( None, 64, 3, 1, 1, nobias=True) self.bn = L.BatchNormalization(64) def forward(self, x): return F.relu(self.bn(self.conv(x))) net = ConvBNReLU().repeat(16, mode='init') - The - netobject contains 16 blocks, each of which is- ConvBNReLU. And the- modewas- init, so each block is re-initialized with different parameters. If you give- copyto this argument, each block has same values for its parameters but its object ID is different from others. If it is- share, each block is same to others in terms of not only parameters but also the object IDs because they are shallow-copied, so that when the parameter of one block is changed, all the parameters in the others also change.- Parameters
- n_repeat (int) – Number of times to repeat. 
- mode (str) – It should be either - init,- copy, or- share.- initmeans parameters of each repeated element in the returned- Sequentialwill be re-initialized, so that all elements have different initial parameters.- copymeans that the parameters will not be re-initialized but object itself will be deep-copied, so that all elements have same initial parameters but can be changed independently.- sharemeans all the elements which consist the resulting- Sequentialobject are same object because they are shallow-copied, so that all parameters of elements are shared with each other.
 
 
 - 
reverse()¶
- S.reverse() – reverse IN PLACE 
 - 
serialize(serializer)[source]¶
- Serializes the link object. - Parameters
- serializer (AbstractSerializer) – Serializer object. 
 
 - 
to_chainerx()[source]¶
- Converts parameter variables and persistent values to ChainerX without any copy. - This method does not handle non-registered attributes. If some of such attributes must be copied to ChainerX, the link implementation must override this method to do so. - Returns: self 
 - 
to_cpu()[source]¶
- Copies parameter variables and persistent values to CPU. - This method does not handle non-registered attributes. If some of such attributes must be copied to CPU, the link implementation must override - Link.to_device()to do so.- Returns: self 
 - 
to_device(device)[source]¶
- Copies parameter variables and persistent values to the specified device. - This method does not handle non-registered attributes. If some of such attributes must be copied to the device, the link implementation must override this method to do so. - Parameters
- device – Target device specifier. See - get_device()for available values.
 - Returns: self 
 - 
to_gpu(device=None)[source]¶
- Copies parameter variables and persistent values to GPU. - This method does not handle non-registered attributes. If some of such attributes must be copied to GPU, the link implementation must override - Link.to_device()to do so.- Parameters
- device – Target device specifier. If omitted, the current device is used. 
 - Returns: self 
 - 
zerograds()[source]¶
- Initializes all gradient arrays by zero. - Deprecated since version v1.15: Use the more efficient - cleargrads()instead.
 - Attributes - 
device¶
 - 
local_link_hooks¶
- Ordered dictionary of registered link hooks. - Contrary to - chainer.thread_local.link_hooks, which registers its elements to all functions, link hooks in this property are specific to this link.
 - 
n_cells¶
- Returns the number of cells. - This function must be implemented in a child class. 
 - 
n_weights= 2¶
 - 
update_enabled¶
- Trueif at least one parameter has an update rule enabled.
 - 
use_bi_direction= False¶
 - 
within_init_scope¶
- True if the current code is inside of an initialization scope. - See - init_scope()for the details of the initialization scope.