Skip to content
This repository has been archived by the owner on Nov 17, 2023. It is now read-only.

[Perl] Updates mapping between PDL and MX types #20852

Merged
merged 2 commits into from
Feb 1, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion ci/docker/install/ubuntu_perl.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
2 changes: 1 addition & 1 deletion docker/install/perl.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
5 changes: 5 additions & 0 deletions perl-package/AI-MXNet/Changes
Original file line number Diff line number Diff line change
@@ -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
Expand Down
4 changes: 2 additions & 2 deletions perl-package/AI-MXNet/META.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand All @@ -51,5 +51,5 @@
}
},
"release_status" : "stable",
"version" : "1.5"
"version" : "1.6"
}
4 changes: 2 additions & 2 deletions perl-package/AI-MXNet/META.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,12 +40,12 @@ 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'
HTTP::Tiny: '0'
IO::Zlib: '0'
JSON::PP: '0'
parent: '0'
version: '1.5'
version: '1.6'
6 changes: 3 additions & 3 deletions perl-package/AI-MXNet/Makefile.PL
Original file line number Diff line number Diff line change
Expand Up @@ -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"
}
Expand All @@ -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"
);
Expand Down
2 changes: 1 addition & 1 deletion perl-package/AI-MXNet/README
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
This archive contains the distribution AI-MXNet,
version 1.5:
version 1.6:

Perl interface to MXNet machine learning library

Expand Down
2 changes: 1 addition & 1 deletion perl-package/AI-MXNet/lib/AI/MXNet.pm
Original file line number Diff line number Diff line change
Expand Up @@ -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) }
Expand Down
39 changes: 20 additions & 19 deletions perl-package/AI-MXNet/lib/AI/MXNet/Base.pm
Original file line number Diff line number Diff line change
Expand Up @@ -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',
Expand Down
10 changes: 5 additions & 5 deletions perl-package/AI-MXNet/lib/AI/MXNet/Metric.pm
Original file line number Diff line number Diff line change
Expand Up @@ -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]');
zmughal marked this conversation as resolved.
Show resolved Hide resolved
has '_kwargs' => (is => 'rw', init_arg => undef);
around BUILDARGS => \&AI::MXNet::Base::process_arguments;

Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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;
}
Expand Down