Cost¶
Description¶
Info
This module is intended primarily for developers who want to better understand the structure of the library, as well as those who are going to implement their own modules.
Costs (learning criteria, errors, loss functions) are functions that calculate the network error.
Cost is the parent class from which all loss functions are inherited.
Initializing¶
def __init__(self):
Parameters
-
Explanations
-
Methods¶
resetAccumulator
¶
def resetAccumulator(self):
Resets the global parameters of the class, that is, those that take part in the calculation at a particular epoch.
Resets the accumulated error, resets the number of batches and samples. It is a wrapper around the resetDeviceAccumulator function.
It is used at the beginning of calculations at a new epoch.
Parameters
-
Explanations
-
updateState
¶
def updateState(self, samples):
Updates the size of the batch and the number of samples.
Parameters
Parameter | Allowed types | Description | Default |
---|---|---|---|
samples | int | Batch size | - |
Explanations
-
resetDeviceAccumulator
¶
def resetDeviceAccumulator(self):
Resets the accumulated error.
Parameters
-
Explanations
-
getError
¶
def getError(self):
Gets from the GPU memory and returns the batch error.
Parameters
-
Explanations
-
getMeanError
¶
def getMeanError(self):
Gets from the GPU memory and returns the average sample error.
Parameters
-
Explanations
-
getValError
¶
def getValError(self):
ВReturns a validation error. The method must be called after the validate method is called.
Parameters
-
Explanations
-
__call__
¶
def __call__(self, pred, target, queryError=True):
Counts the gradient and/or the error for two vectors.
Parameters
Parameter | Allowed types | Description | Default |
---|---|---|---|
pred | tensor | Predicted labels | - |
target | tensor | Target labels | - |
queryError | bool | Whether to load the error value from the GPU | True |
Explanations
queryError
- If False
, then the method will run a little faster, since the error value will not be loaded from the GPU. Also, if set to False, the method will return self.grad
only, in the opposite case self.error
and self.grad
are returned
calcError
¶
def calcError(self, pred, target):
An abstract method that has to be implemented in derived classes. After implementation, it should update the error value accumulated during this epoch.
Optional calculation - calculation of the error per batch (it can also be performed in calcGrad, it depends on the error function).
Parameters
Parameter | Allowed types | Description | Default |
---|---|---|---|
pred | tensor | Predicted labels | - |
target | tensor | Target lables | - |
Explanations
-
calcGrad
¶
def calcGrad(self, pred, target):
An abstract method that has to be implemented in derived classes. After implementation, it should calculate the gradient of the network error.
Optional calculation - calculation of the error per batch (it can also be performed in calcError, it depends on the error function).
Parameters
Параметр | Возможные типы | Описание | По умолчанию |
---|---|---|---|
pred | tensor | Predicted labels | - |
target | tensor | Target labels | - |
Explanations¶
calcVal
¶
def calcVal(self, pred, target):
An abstract method that has to be implemented in derived classes. After implementation, it should calculate and return the error for the given vectors without affecting the internal state of the class
Parameters
Parameter | Allowed types | Description | Default |
---|---|---|---|
pred | tensor | Predicted labels | - |
target | tensor | Target labels | - |
Explanations
-
validate
¶
def validate(self, pred, target):
A wrapper around the calcVal function with validation test.
Parameters
Parameter | Allowed types | Description | Default |
---|---|---|---|
pred | tensor | Predicted labels | - |
target | tensor | Target labels | - |
Explanations
-
reset
¶
def reset(self):
Resets the batch parameters of the class, that is, those that take part in the calculation of a specific batch.
It is used when starting calculations on a new batch.
Parameters
-
Explanations
-
checkDataShape
¶
def checkDataShape(self, pred, target):
Checks the shape of input tensors. By default it does nothing.
The method can be meaningfully redefined in the derived classes: for this, it must raise an exception when the shape is incorrect.
Parameters
Parameter | Allowed types | Description | Default |
---|---|---|---|
pred | tensor | Predicted labels | - |
target | tensor | Target labels | - |
Explanations
-
checkValDataShape
¶
def checkValDataShape(self, pred, target):
Checks the shape of input tensors for the validate. By default it does nothing.
The method can be meaningfully redefined in the derived classes: for this, it must raise an exception when the shape is incorrect.
Parameters
Parameter | Allowed types | Description | Default |
---|---|---|---|
pred | tensor | Predicted labels | - |
target | tensor | Target labels | - |
Explanations
-
getBatchsize
¶
def getBatchsize(self, pred):
Counts the batch size for a given tensor.
Parameters
Parameter | Allowed types | Description | Default |
---|---|---|---|
pred | tensor | Label tensors | - |
Explanations
-