Source code for chainer

import collections
import os
import pkg_resources
import sys
import threading

from chainer import cuda  # NOQA
from chainer import dataset  # NOQA
from chainer import datasets  # NOQA
from chainer import flag  # NOQA
from chainer import function  # NOQA
from chainer import function_set  # NOQA
from chainer import functions  # NOQA
from chainer import initializer  # NOQA
from chainer import initializers  # NOQA
from chainer import iterators  # NOQA
from chainer import link  # NOQA
from chainer import links  # NOQA
from chainer import optimizer  # NOQA
from chainer import optimizers  # NOQA
from chainer import reporter  # NOQA
from chainer import serializer  # NOQA
from chainer import serializers  # NOQA
from chainer import training  # NOQA
from chainer import variable  # NOQA


# import class and function
from chainer.flag import AUTO  # NOQA
from chainer.flag import Flag  # NOQA
from chainer.flag import OFF  # NOQA
from chainer.flag import ON  # NOQA
from chainer.function import force_backprop_mode  # NOQA
from chainer.function import Function  # NOQA
from chainer.function import no_backprop_mode  # NOQA
from chainer.function_set import FunctionSet  # NOQA
from chainer.functions import array  # NOQA
from chainer.functions import basic_math  # NOQA
from chainer.initializer import Initializer  # NOQA
from chainer.initializers import init_weight  # NOQA
from chainer.link import Chain  # NOQA
from chainer.link import ChainList  # NOQA
from chainer.link import Link  # NOQA
from chainer.optimizer import GradientMethod  # NOQA
from chainer.optimizer import Optimizer  # NOQA
from chainer.reporter import DictSummary  # NOQA
from chainer.reporter import get_current_reporter  # NOQA
from chainer.reporter import report  # NOQA
from chainer.reporter import report_scope  # NOQA
from chainer.reporter import Reporter  # NOQA
from chainer.reporter import Summary  # NOQA
from chainer.serializer import AbstractSerializer  # NOQA
from chainer.serializer import Deserializer  # NOQA
from chainer.serializer import Serializer  # NOQA
from chainer.variable import Variable  # NOQA


if sys.version_info[:3] == (3, 5, 0):
    if not int(os.getenv('CHAINER_PYTHON_350_FORCE', '0')):
        msg = """
Chainer does not work with Python 3.5.0.

We strongly recommend to use another version of Python.
If you want to use Chainer with Python 3.5.0 at your own risk,
set 1 to CHAINER_PYTHON_350_FORCE environment variable."""

        raise Exception(msg)


__version__ = pkg_resources.get_distribution('chainer').version


thread_local = threading.local()


def get_function_hooks():
    if not hasattr(thread_local, 'function_hooks'):
        thread_local.function_hooks = collections.OrderedDict()
    return thread_local.function_hooks


_debug = False


[docs]def is_debug(): """Get the debug mode. Returns: bool: Return ``True`` if Chainer is in debug mode. """ return _debug
[docs]def set_debug(debug): """Set the debug mode. .. note:: This method changes global state. When you use this method on multi-threading environment, it may affects other threads. Args: debug (bool): New debug mode. """ global _debug _debug = debug
[docs]class DebugMode(object): """Debug mode context. This class provides a context manager for debug mode. When entering the context, it sets the debug mode to the value of `debug` parameter with memorizing its original value. When exiting the context, it sets the debug mode back to the original value. Args: debug (bool): Debug mode used in the context. """ def __init__(self, debug): self._debug = debug def __enter__(self): self._old = is_debug() set_debug(self._debug) def __exit__(self, *_): set_debug(self._old)
basic_math.install_variable_arithmetics() array.get_item.install_variable_get_item() disable_experimental_feature_warning = False