You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mxnet.apache.org by se...@apache.org on 2022/02/01 00:48:39 UTC
[incubator-mxnet] branch v1.9.x updated: [Perl] Updates mapping between PDL and MX types (#20852)
This is an automated email from the ASF dual-hosted git repository.
sergeykolychev pushed a commit to branch v1.9.x
in repository https://gitbox.apache.org/repos/asf/incubator-mxnet.git
The following commit(s) were added to refs/heads/v1.9.x by this push:
new 58c9368 [Perl] Updates mapping between PDL and MX types (#20852)
58c9368 is described below
commit 58c936899a1afb0844811d3419f09b917a214e62
Author: Zaki Mughal [sivoais] <za...@gmail.com>
AuthorDate: Mon Jan 31 19:46:58 2022 -0500
[Perl] Updates mapping between PDL and MX types (#20852)
* [Perl] Updates mapping between PDL and MX types
This removes the hardcoded values and uses PDL::Type instead.
Upgrades minimum PDL dependency to PDL v2.064 which provides
the int8 (PDL: sbyte) type.
Fix tests by allowing some PDL data alongside Perl scalars.
Fixes <https://github.com/apache/incubator-mxnet/issues/20851>.
* [Perl] Release AI-MXNet v1.6
---
ci/docker/install/ubuntu_perl.sh | 2 +-
docker/install/perl.sh | 2 +-
perl-package/AI-MXNet/Changes | 5 ++++
perl-package/AI-MXNet/META.json | 4 +--
perl-package/AI-MXNet/META.yml | 4 +--
perl-package/AI-MXNet/Makefile.PL | 6 ++---
perl-package/AI-MXNet/README | 2 +-
perl-package/AI-MXNet/lib/AI/MXNet.pm | 2 +-
perl-package/AI-MXNet/lib/AI/MXNet/Base.pm | 39 ++++++++++++++--------------
perl-package/AI-MXNet/lib/AI/MXNet/Metric.pm | 10 +++----
10 files changed, 41 insertions(+), 35 deletions(-)
diff --git a/ci/docker/install/ubuntu_perl.sh b/ci/docker/install/ubuntu_perl.sh
index 1f4a983..31dc294 100755
--- a/ci/docker/install/ubuntu_perl.sh
+++ b/ci/docker/install/ubuntu_perl.sh
@@ -24,4 +24,4 @@ set -ex
# install libraries for mxnet's perl package on ubuntu
apt-get update || true
apt-get install -y libmouse-perl pdl cpanminus swig libgraphviz-perl
-cpanm -q Function::Parameters Hash::Ordered CHM/PDL-2.019.tar.gz PDL::CCS
+cpanm -q Function::Parameters Hash::Ordered PDL~2.064 PDL::CCS
diff --git a/docker/install/perl.sh b/docker/install/perl.sh
index 29313c7..47f32e1 100755
--- a/docker/install/perl.sh
+++ b/docker/install/perl.sh
@@ -19,4 +19,4 @@
# install libraries for mxnet's perl package on ubuntu
apt-get update && apt-get install -y libmouse-perl pdl cpanminus swig libgraphviz-perl
-cpanm -q Function::Parameters Hash::Ordered PDL::CCS
+cpanm -q Function::Parameters Hash::Ordered PDL~2.064 PDL::CCS
diff --git a/perl-package/AI-MXNet/Changes b/perl-package/AI-MXNet/Changes
index 6807d79..49d5216 100644
--- a/perl-package/AI-MXNet/Changes
+++ b/perl-package/AI-MXNet/Changes
@@ -1,4 +1,9 @@
Revision history for Perl extension AI::MXNet
+1.6 Fri Jan 28 15:50:00 EST 2022
+ - Update mapping between PDL and MX types - Zakariyya Mughal
+ - Upgrade minimum PDL dependency to PDL v2.064 for
+ int8 (PDL: sbyte) type - Zakariyya Mughal
+
1.5 Sun Feb 16 19:56:17 PST 2020
- Runtime features
- INT64 Tensor support
diff --git a/perl-package/AI-MXNet/META.json b/perl-package/AI-MXNet/META.json
index 02357d4..4ece220 100644
--- a/perl-package/AI-MXNet/META.json
+++ b/perl-package/AI-MXNet/META.json
@@ -36,7 +36,7 @@
"Hash::Ordered" : "0.012",
"GraphViz" : "2.14",
"Mouse" : "v2.1.0",
- "PDL" : "2.007",
+ "PDL" : "2.064",
"PDL::CCS" : "1.23.4",
"Archive::Tar": "0",
"Digest::SHA": "0",
@@ -51,5 +51,5 @@
}
},
"release_status" : "stable",
- "version" : "1.5"
+ "version" : "1.6"
}
diff --git a/perl-package/AI-MXNet/META.yml b/perl-package/AI-MXNet/META.yml
index b06b331e..c79929a 100644
--- a/perl-package/AI-MXNet/META.yml
+++ b/perl-package/AI-MXNet/META.yml
@@ -40,7 +40,7 @@ requires:
Hash::Ordered: '0.012'
GraphViz: '2.14'
Mouse: v2.1.0
- PDL: '2.007'
+ PDL: '2.064'
PDL::CCS: '1.23.4'
Archive::Tar: '0'
Digest::SHA: '0'
@@ -48,4 +48,4 @@ requires:
IO::Zlib: '0'
JSON::PP: '0'
parent: '0'
-version: '1.5'
+version: '1.6'
diff --git a/perl-package/AI-MXNet/Makefile.PL b/perl-package/AI-MXNet/Makefile.PL
index 4a90162..54ce774 100644
--- a/perl-package/AI-MXNet/Makefile.PL
+++ b/perl-package/AI-MXNet/Makefile.PL
@@ -41,12 +41,12 @@ my %WriteMakefileArgs = (
"Function::Parameters" => "1.0705",
"Hash::Ordered" => "0.012",
"Mouse" => "v2.1.0",
- "PDL" => "2.007",
+ "PDL" => "2.064",
"PDL::CCS" => "1.23.4",
"GraphViz" => "2.14"
},
"TEST_REQUIRES" => {},
- "VERSION" => "1.5",
+ "VERSION" => "1.6",
"test" => {
"TESTS" => "t/*.t"
}
@@ -59,7 +59,7 @@ my %FallbackPrereqs = (
"Function::Parameters" => "1.0705",
"Hash::Ordered" => "0.012",
"Mouse" => "v2.1.0",
- "PDL" => "2.007",
+ "PDL" => "2.064",
"PDL::CCS" => "1.23.4",
"GraphViz" => "2.14"
);
diff --git a/perl-package/AI-MXNet/README b/perl-package/AI-MXNet/README
index 57d9e4a..d2c5b77 100644
--- a/perl-package/AI-MXNet/README
+++ b/perl-package/AI-MXNet/README
@@ -1,5 +1,5 @@
This archive contains the distribution AI-MXNet,
-version 1.5:
+version 1.6:
Perl interface to MXNet machine learning library
diff --git a/perl-package/AI-MXNet/lib/AI/MXNet.pm b/perl-package/AI-MXNet/lib/AI/MXNet.pm
index 0778da8..23282fd 100644
--- a/perl-package/AI-MXNet/lib/AI/MXNet.pm
+++ b/perl-package/AI-MXNet/lib/AI/MXNet.pm
@@ -54,7 +54,7 @@ use AI::MXNet::Gluon 'gluon';
use AI::MXNet::NDArray::Sparse;
use AI::MXNet::Symbol::Sparse;
use AI::MXNet::Engine 'engine';
-our $VERSION = '1.5';
+our $VERSION = '1.6';
sub cpu { AI::MXNet::Context->cpu($_[1]//0) }
sub cpu_pinned { AI::MXNet::Context->cpu_pinned($_[1]//0) }
diff --git a/perl-package/AI-MXNet/lib/AI/MXNet/Base.pm b/perl-package/AI-MXNet/lib/AI/MXNet/Base.pm
index 9ac917b..d0a1aac 100644
--- a/perl-package/AI-MXNet/lib/AI/MXNet/Base.pm
+++ b/perl-package/AI-MXNet/lib/AI/MXNet/Base.pm
@@ -60,27 +60,28 @@ use constant DTYPE_MX_TO_STR => {
6 => 'int64'
};
use constant DTYPE_MX_TO_PDL => {
- 0 => 6,
- 1 => 7,
- 2 => 6,
- 3 => 0,
- 4 => 3,
- 5 => 0,
- 6 => 5,
- float32 => 6,
- float64 => 7,
- float16 => 6,
- uint8 => 0,
- int32 => 3,
- int8 => 0,
- int64 => 5
+ 0 => PDL::Type->new('float')->enum,
+ 1 => PDL::Type->new('double')->enum,
+ 2 => PDL::Type->new('float')->enum,
+ 3 => PDL::Type->new('byte')->enum,
+ 4 => PDL::Type->new('long')->enum,
+ 5 => PDL::Type->new('sbyte')->enum,
+ 6 => PDL::Type->new('longlong')->enum,
+ float32 => PDL::Type->new('float')->enum,
+ float64 => PDL::Type->new('double')->enum,
+ float16 => PDL::Type->new('float')->enum,
+ uint8 => PDL::Type->new('byte')->enum,
+ int32 => PDL::Type->new('long')->enum,
+ int8 => PDL::Type->new('sbyte')->enum,
+ int64 => PDL::Type->new('longlong')->enum,
};
use constant DTYPE_PDL_TO_MX => {
- 6 => 0,
- 7 => 1,
- 0 => 3,
- 3 => 4,
- 5 => 6
+ PDL::Type->new('float')->enum => 0,
+ PDL::Type->new('double')->enum => 1,
+ PDL::Type->new('byte')->enum => 3,
+ PDL::Type->new('long')->enum => 4,
+ PDL::Type->new('sbyte')->enum => 5,
+ PDL::Type->new('longlong')->enum => 6,
};
use constant DTYPE_MX_TO_PERL => {
0 => 'f',
diff --git a/perl-package/AI-MXNet/lib/AI/MXNet/Metric.pm b/perl-package/AI-MXNet/lib/AI/MXNet/Metric.pm
index cf98458..52b4450 100644
--- a/perl-package/AI-MXNet/lib/AI/MXNet/Metric.pm
+++ b/perl-package/AI-MXNet/lib/AI/MXNet/Metric.pm
@@ -79,7 +79,7 @@ use overload '""' => sub {
has 'name' => (is => 'rw', isa => 'Str');
has 'num' => (is => 'rw', isa => 'Int');
has 'num_inst' => (is => 'rw', isa => 'Maybe[Int|ArrayRef[Int]]');
-has 'sum_metric' => (is => 'rw', isa => 'Maybe[Num|ArrayRef[Num]]');
+has 'sum_metric' => (is => 'rw', isa => 'Maybe[Num|ArrayRef[Num]|PDL]');
has '_kwargs' => (is => 'rw', init_arg => undef);
around BUILDARGS => \&AI::MXNet::Base::process_arguments;
@@ -168,8 +168,8 @@ method get()
method get_name_value()
{
my ($name, $value) = $self->get;
- $name = [$name] unless ref $name;
- $value = [$value] unless ref $value;
+ $name = [$name] unless ref $name eq 'ARRAY';
+ $value = [$value] unless ref $value eq 'ARRAY';
my %ret;
@ret{ @$name } = @$value;
return \%ret;
@@ -221,8 +221,8 @@ method get()
for my $metric (@{ $self->metrics })
{
my ($name, $result) = $metric->get;
- $name = [$name] unless ref $name;
- $result = [$result] unless ref $result;
+ $name = [$name] unless ref $name eq 'ARRAY';
+ $result = [$result] unless ref $result eq 'ARRAY';
push @$names, @$name;
push @$results, @$result;
}