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()
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()
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()
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()
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
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
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
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
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
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
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
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
def to_intel64(self): # type: () -> 'Link' """Copies parameter variables and persistent values to CPU.""" intel64.check_ideep_available() return self.to_device(intel64)
def to_intel64(self): """Copies parameter variables and persistent values to CPU.""" intel64.check_ideep_available() return self.to_device(intel64)