b
from NumPy array to iDeep optimized array happens every time running linear
, because b
is not initialized as mdarray. I thought such overhead can be eliminated by initializing b
as mdarray. https://chainer.slack.com/archives/C4MQ9RMNG/p1521094728000070
all_ready
to accept (1, 2, 4)
instead of (2, 4)
.all_ready
is a programmer helper function. The purpose is to check inputs whether could be accepted by current iDeep primitive or not, not to check whether dimension is valid for iDeep mdarray
or not. So, it is no needed to check all_ready
, when W
or b
is initialized. Here is a mistake in Intel-Chainer release_v3. https://github.com/intel/chainer/blob/release_v3/chainer/links/connection/linear.py#L128(2, 4)
. Programmer could adjust supported_ndim
of all_ready
accordingly.b
in mdarray
directly without all_ready
. What do you think of that?[fengyuan, chainer] e.g. Explicitly define supported_ndim
, if an iDeep primitive just supports 1-D
inputs.
if intel64.inputs_all_ready((x, y, z, ), supported_ndim = (1, )):
intel64.ideep.some_primitive(x, y ,z)
all_ready
in Variable.to_intel64
, whereas intel-chainer does not use it in Variable.to_ia
.numpy>=1.13.0
would be nice.
ideep4py.basic_copyto(dst, src)
which seems like an equivalent for numpy.copyto(dst, src)
. Is this basic_copyto
considered stable? Can we use this interface? (context: chainer/chainer#5009)