Python API¶
This section includes information for using the pure Python API of
bob.core
.
Logging¶
Sets-up logging, centrally for Bob.
-
bob.core.log.
setup
(logger_name, format='%(name)s@%(asctime)s -- %(levelname)s: %(message)s')[source]¶ This function returns a logger object that is set up to perform logging using Bob loggers.
Keyword parameters:
- logger_name : str
- The name of the module to generate logs for
- format : str
- The format of the logs, see
logging.LogRecord
for more details. By default, the log contains the logger name, the log time, the log level and the massage. - Returns :
logging.Logger
- The logger configured for logging.
The same logger can be retrieved using the
logging.getLogger()
function.
-
bob.core.log.
add_command_line_option
(parser, short_option='-v')[source]¶ Adds the verbosity command line option to the given parser. The verbosity can by set to 0 (error), 1 (warning), 2 (info) or 3 (debug) by including the according number of –verbose command line arguments (e.g.,
-vv
for info level).Keyword parameters:
- parser :
argparse.ArgumentParser
or one of its derivatives - A command line parser that you want to add a verbose option to.
- short_option : str
- The short command line option that should be used for increasing the verbosity.
- parser :
-
bob.core.log.
set_verbosity_level
(logger, level)[source]¶ Sets the log level.
Keyword parameters:
- logger :
logging.Logger
or str - The logger to generate logs for, or the name of the module to generate logs for.
- level : int
- Possible log levels are: 0: Error; 1: Warning; 2: Info; 3: Debug.
- logger :
-
bob.core.log.
reset
([debug[, info[, warn[, error]]]]) → None¶ Resets the standard C++ logging devices.
This function allows you to manipulate the sinks for messages emitted in C++, using Python callables.
Keyword Parameters:
- debug
- [optional] (callable) A callable that receives a string and dumps messages to the desired output channel.
- info
- [optional] (callable) A callable that receives a string and dumps messages to the desired output channel.
- warn
- [optional] (callable) A callable that receives a string and dumps messages to the desired output channel.
- error
- [optional] (callable) A callable that receives a string and dumps messages to the desired output channel.
Raises a
ValueError
in case of problems setting or resetting any of the streams.
Random Numbers¶
boost::random classes and methods
-
class
bob.core.random.
variate_generator
(engine, distribution)[source]¶ A pure-python version of the boost::variate_generator<> class
Keyword parameters:
- engine
- An instance of the RNG you would like to use. This has to be an
object of the class
bob.core.random.mt19937
, already initialized. - distribution
- The distribution to respect when generating scalars using the engine. The distribution object should be previously initialized.
-
class
bob.core.random.
binomial
(dtype, [t=1.0, p=0.5]]) → new binomial distribution¶ Bases:
object
Models a random binomial distribution
This distribution class models a binomial random distribution. Such a distribution produces random numbers x distributed with the probability density function {{t}\choose{k}}p^k(1-p)^{t-k}, where
t
andp
are parameters of the distribution.Warning
This distribution requires that t >=0 and that 0 <= p <= 1.
-
dtype
¶ x.dtype -> numpy dtype
The type of scalars produced by this binomial distribution.
-
p
¶ x.p -> scalar
This value corresponds to the parameter
p
of the distribution.
-
reset
() → None¶ After calling this method, subsequent uses of the distribution do not depend on values produced by any random number generator prior to invoking reset.
-
t
¶ x.t -> scalar
This value corresponds to the parameter
t
of the distribution.
-
-
class
bob.core.random.
discrete
(dtype, probabilities) → new discrete distribution¶ Bases:
object
Models a random discrete distribution
A discrete distribution can only assume certain values, which for this class is defined as a number
i
in the range[0, len(probabilities)]
. Notice that the condition \sum(P) = 1, withP = probabilities
, is enforced by normalizing the input values so that the sum over all probabilities always equals 1.-
dtype
¶ x.dtype -> numpy dtype
The type of scalars produced by this discrete distribution.
-
probabilities
¶ x.probabilities -> sequence
This property corresponds to the values you have set for the discrete probabilities of every entry in this distribution.
-
reset
() → None¶ After calling this method, subsequent uses of the distribution do not depend on values produced by any random number generator prior to invoking reset.
-
-
class
bob.core.random.
gamma
(dtype, [alpha=1.]]) → new gamma distribution¶ Bases:
object
Models a random gamma distribution
This distribution class models a gamma random distribution. Such a distribution produces random numbers x distributed with the probability density function p(x) = x^{\alpha-1}\frac{e^{-x}}{\Gamma(\alpha)}, where the
alpha
(\alpha) is a parameter of the distribution.-
alpha
¶ x.alpha -> scalar
This value corresponds to the alpha parameter the distribution current has.
-
dtype
¶ x.dtype -> numpy dtype
The type of scalars produced by this gamma distribution.
-
reset
() → None¶ After calling this method, subsequent uses of the distribution do not depend on values produced by any random number generator prior to invoking reset.
-
-
class
bob.core.random.
lognormal
(dtype, [mean=0., sigma=1.]]) → new log-normal distribution¶ Bases:
object
Models a random lognormal distribution
This distribution models a log-normal random distribution. Such a distribution produces random numbers
x
distributed with the probability density function p(x) = \frac{1}{x \sigma_N \sqrt{2\pi}} e^{\frac{-\left(\log(x)-\mu_N\right)^2}{2\sigma_N^2}}, for x > 0 and \sigma_N = \sqrt{\log\left(1 + \frac{\sigma^2}{\mu^2}\right)},where the
mean
(\mu) andsigma
(\sigma, the standard deviation) the parameters of the distribution.-
dtype
¶ x.dtype -> numpy dtype
The type of scalars produced by this lognormal distribution.
-
mean
¶ x.mean -> scalar
This value corresponds to the mean value the distribution will produce.
-
reset
() → None¶ After calling this method, subsequent uses of the distribution do not depend on values produced by any random number generator prior to invoking reset.
-
sigma
¶ x.sigma -> scalar
This value corresponds to the standard deviation value the distribution will have.
-
-
class
bob.core.random.
mt19937
([seed]) → new random number generator¶ Bases:
object
A Mersenne-Twister Random Number Generator (RNG)
Constructor parameters:
- seed
- [optional] A integral value determining the initial seed
A Random Number Generator (RNG) based on the work “Mersenne Twister: A 623-dimensionally equidistributed uniform pseudo-random number generator, Makoto Matsumoto and Takuji Nishimura, ACM Transactions on Modeling and Computer Simulation: Special Issue on Uniform Random Number Generation, Vol. 8, No. 1, January 1998, pp. 3-30“
Objects of this class support comparison operators such as
==
or!=
and setting the seed with the methodseed(int)
. Two random number generators are equal if they are at the same state - i.e. they have been initialized with the same seed and have been called the same number of times for number generation.-
seed
(x) → None¶ Sets the seed for this random number generator
This method sets the seed for this random number generator. The input value needs to be convertible to a long integer.
-
class
bob.core.random.
normal
(dtype, [mean=0., sigma=1.]]) → new normal distribution¶ Bases:
object
Models a random normal distribution
This distribution class models a normal random distribution. Such a distribution produces random numbers x distributed with the probability density function p(x) = \frac{1}{\sqrt{2\pi\sigma}} e^{-\frac{(x-\mu)^2}{2\sigma^2}}, where the
mean
(\mu) andsigma
(\sigma, the standard deviation) the parameters of the distribution.-
dtype
¶ x.dtype -> numpy dtype
The type of scalars produced by this normal distribution.
-
mean
¶ x.mean -> scalar
This value corresponds to the mean value the distribution will produce.
-
reset
() → None¶ After calling this method, subsequent uses of the distribution do not depend on values produced by any random number generator prior to invoking reset.
-
sigma
¶ x.sigma -> scalar
This value corresponds to the standard deviation value the distribution will have.
-
-
class
bob.core.random.
uniform
(dtype, [min=m, max=M]]) → new uniform distribution¶ Bases:
object
Models a random uniform distribution
On each invocation, it returns a random value uniformly distributed in the set of numbers [min, max] (integer) and [min, max[ (real-valued).
If the values
min
andmax
are not given they are assumed to bemin=0
andmax=9
, for integral distributions andmin=0.0
andmax=1.0
for real-valued distributions.-
dtype
¶ x.dtype -> numpy dtype
The type of scalars produced by this uniform distribution.
-
max
¶ x.max -> scalar
This value corresponds to the largest value that the distribution can produce. Integer uniform distributions are bound at [min, max], while real-valued distributions are bound at [min, max[.
-
min
¶ x.min -> scalar
This value corresponds to the smallest value that the distribution can produce.
-
reset
() → None¶ After calling this method, subsequent uses of the distribution do not depend on values produced by any random number generator prior to invoking reset.
-
Functions¶
-
bob.core.
convert
(array, dtype[, dst_range[, src_range]]) → array¶ Converts array data type, with optional range squash/expansion.
Function which allows to convert/rescale a array of a given type into another array of a possibly different type with re-scaling. Typically, this can be used to rescale a 16 bit precision grayscale image (2D array) into an 8 bit precision grayscale image.
Keyword Parameters:
- array
- (array) Input array
- dtype
- (object) Any object that can be convertible to a
numpy.dtype
. Controls the output element type for the returned array. - dest_range
- (tuple) Determines the range to be deployed at the returned array.
- source_range
- (tuple) Determines the input range that will be used for scaling.
Returns a new array with the same shape as this one, but re-scaled and with its element type as indicated by the user.