コード例 #1
0
ファイル: variable.py プロジェクト: tsurumeso/chainer
    def to_intel64(self):
        """Copies the data and gradient arrays to intel64 specific mdarray.

        If the array is not suited for intel64, it will be converted to
        :class:`numpy.ndarray`.
        """
        intel64.check_ideep_available()
        data = self.data
        if data is not None:
            if isinstance(data, cuda.ndarray):
                # cupy.ndarray to numpy.ndarray
                data = data.get()
            if (isinstance(data, numpy.ndarray) and data.ndim in (1, 2, 4)):
                # TODO(kmaehashi): Remove ndim validation once iDeep has fixed.
                # Currently iDeep only supports (1, 2, 4)-dim arrays.
                # Note that array returned from `ideep.array` may not be an
                # iDeep mdarray, e.g., when the dtype is not float32.
                data = intel64.ideep.array(
                    data, itype=intel64.ideep.wgt_array)
            self._data = [data]

        if self._grad_var is not None:
            self._grad_var.to_intel64()
        # ensure that the node tracks the device migration
        node = self._node
        if node._data is not None:
            node.retain_data()
コード例 #2
0
    def to_intel64(self):
        """Copies the data and gradient arrays to intel64 specific mdarray.

        If the array is not suited for intel64, it will be converted to
        :class:`numpy.ndarray`.
        """
        intel64.check_ideep_available()
        data = self.data
        if data is not None:
            if isinstance(data, numpy.ndarray):
                # numpy.ndarray to ideep
                self._data = [
                    intel64.ideep.array(data, itype=intel64.ideep.wgt_array)
                ]
            elif isinstance(data, cuda.ndarray):
                # cupy.ndarray to ideep
                self._data = [
                    intel64.ideep.array(data.get(),
                                        itype=intel64.ideep.wgt_array)
                ]
        if self._grad_var is not None:
            self._grad_var.to_intel64()
            # ensure that the node tracks the device migration
            node = self._node
            if node._data is not None:
                node.retain_data()
コード例 #3
0
ファイル: variable.py プロジェクト: tkng/chainer
    def to_intel64(self):
        """Copies the data and gradient arrays to intel64 specific mdarray.

        If the array is not suited for intel64, it will be converted to
        :class:`numpy.ndarray`.
        """
        intel64.check_ideep_available()
        data = self.data
        if data is not None:
            if isinstance(data, numpy.ndarray):
                # numpy.ndarray to ideep
                self._data = [
                    intel64.ideep.array(
                        data, itype=intel64.ideep.wgt_array)]
            elif isinstance(data, cuda.ndarray):
                # cupy.ndarray to ideep
                self._data = [
                    intel64.ideep.array(
                        data.get(), itype=intel64.ideep.wgt_array)]
        if self._grad_var is not None:
            self._grad_var.to_intel64()
            # ensure that the node tracks the device migration
            node = self._node
            if node._data is not None:
                node.retain_data()
コード例 #4
0
    def to_intel64(self):
        """Copies the data and gradient arrays to intel64 specific mdarray.

        If the array is not suited for intel64, it will be converted to
        :class:`numpy.ndarray`.
        """
        intel64.check_ideep_available()
        array = self.array
        if array is not None:
            if isinstance(array, cuda.ndarray):
                # cupy.ndarray to numpy.ndarray
                array = array.get()
            if (isinstance(array, numpy.ndarray) and array.ndim in (1, 2, 4)):
                # TODO(kmaehashi): Remove ndim validation once iDeep has fixed.
                # Currently iDeep only supports (1, 2, 4)-dim arrays.
                # Note that array returned from `ideep.array` may not be an
                # iDeep mdarray, e.g., when the dtype is not float32.
                array = intel64.ideep.array(array,
                                            itype=intel64.ideep.wgt_array)
            self._data = [array]

        if self._grad_var is not None:
            self._grad_var.to_intel64()
        # ensure that the node tracks the device migration
        node = self._node
        if node._data is not None:
            node.retain_data()
コード例 #5
0
 def to_intel64(self):
     # type: () -> 'DeviceResident'
     """Copies parameter variables and persistent values to CPU."""
     intel64.check_ideep_available()
     visitor = _ToDeviceVisitor(chainer.get_device(intel64.Intel64Device()),
                                entry_method_info=('to_intel64', {}))
     self.__to_device(visitor)
     return self
コード例 #6
0
ファイル: device_resident.py プロジェクト: takagi/chainer
 def to_intel64(self):
     # type: () -> 'DeviceResident'
     """Copies parameter variables and persistent values to CPU."""
     intel64.check_ideep_available()
     visitor = _ToDeviceVisitor(
         chainer.get_device(intel64.Intel64Device()),
         entry_method_info=('to_intel64', {}))
     self.__to_device(visitor)
     return self
コード例 #7
0
 def to_intel64(self):
     """Copies parameter variables and persistent values to CPU."""
     intel64.check_ideep_available()
     d = self.__dict__
     for name in self._params:
         d[name].to_intel64()
     for name in self._persistent:
         value = d[name]
         if isinstance(value, numpy.ndarray):
             d[name] = intel64.ideep.array(
                 value, itype=intel64.ideep4.wgt_array)
     self._cpu = True
     return self
コード例 #8
0
ファイル: device_resident.py プロジェクト: zu3st/chainer
    def to_intel64(self):
        # type: () -> 'DeviceResident'
        """Copies parameter variables and persistent values to CPU.

         .. deprecated:: v7.0.0
            Use :meth:`to_device` instead.

        """
        intel64.check_ideep_available()
        visitor = _ToDeviceVisitor(chainer.get_device(intel64.Intel64Device()),
                                   entry_method_info=('to_intel64', {}),
                                   starting_device_resident=self)
        self.__to_device(visitor)
        return self
コード例 #9
0
ファイル: link.py プロジェクト: tkng/chainer
 def to_intel64(self):
     """Copies parameter variables and persistent values to CPU."""
     intel64.check_ideep_available()
     d = self.__dict__
     for name in self._params:
         d[name].to_intel64()
     for name in self._persistent:
         value = d[name]
         if isinstance(value, cuda.ndarray):
             value = value.get()  # to numpy.ndarray
         if isinstance(value, numpy.ndarray):
             d[name] = intel64.ideep.array(
                 value, itype=intel64.ideep.wgt_array)
     self._cpu = True
     self._device_id = None
     return self
コード例 #10
0
 def to_intel64(self):
     """Copies parameter variables and persistent values to CPU."""
     intel64.check_ideep_available()
     d = self.__dict__
     for name in self._params:
         d[name].to_intel64()
     for name in self._persistent:
         value = d[name]
         if isinstance(value, cuda.ndarray):
             value = value.get()  # to numpy.ndarray
         if (isinstance(value, numpy.ndarray) and intel64.inputs_all_ready(
             (value, ))):
             value = intel64.ideep.array(value,
                                         itype=intel64.ideep.wgt_array)
         d[name] = value
     self._cpu = True
     self._device_id = None
     return self
コード例 #11
0
ファイル: link.py プロジェクト: cadenacchi/chainer
 def to_intel64(self):
     """Copies parameter variables and persistent values to CPU."""
     intel64.check_ideep_available()
     d = self.__dict__
     for name in self._params:
         d[name].to_intel64()
     for name in self._persistent:
         value = d[name]
         if isinstance(value, cuda.ndarray):
             value = value.get()  # to numpy.ndarray
         if (isinstance(value, numpy.ndarray) and value.ndim in (1, 2, 4)):
             # TODO(kmaehashi): Remove ndim validation once iDeep has fixed.
             # Currently iDeep only supports (1, 2, 4)-dim arrays.
             # Note that array returned from `ideep.array` may not be an
             # iDeep mdarray, e.g., when the dtype is not float32.
             value = intel64.ideep.array(value,
                                         itype=intel64.ideep.wgt_array)
         d[name] = value
     self._cpu = True
     self._device_id = None
     return self
コード例 #12
0
ファイル: link.py プロジェクト: anaruse/chainer
 def to_intel64(self):
     """Copies parameter variables and persistent values to CPU."""
     intel64.check_ideep_available()
     d = self.__dict__
     for name in self._params:
         d[name].to_intel64()
     for name in self._persistent:
         value = d[name]
         if isinstance(value, cuda.ndarray):
             value = value.get()  # to numpy.ndarray
         if (isinstance(value, numpy.ndarray) and value.ndim in (1, 2, 4)):
             # TODO(kmaehashi): Remove ndim validation once iDeep has fixed.
             # Currently iDeep only supports (1, 2, 4)-dim arrays.
             # Note that array returned from `ideep.array` may not be an
             # iDeep mdarray, e.g., when the dtype is not float32.
             value = intel64.ideep.array(
                 value, itype=intel64.ideep.wgt_array)
         d[name] = value
     self._cpu = True
     self._device_id = None
     return self
コード例 #13
0
 def to_intel64(self):
     # type: () -> 'Link'
     """Copies parameter variables and persistent values to CPU."""
     intel64.check_ideep_available()
     return self.to_device(intel64)
コード例 #14
0
ファイル: link.py プロジェクト: jnishi/chainer
 def to_intel64(self):
     """Copies parameter variables and persistent values to CPU."""
     intel64.check_ideep_available()
     return self.to_device(intel64)