AI-MXNet-Gluon-ModelZoo
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
examples/image_classification.pl view on Meta::CPAN
use strict;
use warnings;
use AI::MXNet::Gluon::ModelZoo 'get_model';
use AI::MXNet::Gluon::Utils 'download';
use Getopt::Long qw(HelpMessage);
GetOptions(
## my Pembroke Welsh Corgi Kyuubi, enjoing Solar eclipse of August 21, 2017
'image=s' => \(my $image = 'http://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/'.
'gluon/dataset/kyuubi.jpg'),
'model=s' => \(my $model = 'resnet152_v2'),
'help' => sub { HelpMessage(0) },
) or HelpMessage(1);
## get a pretrained model (download parameters file if necessary)
my $net = get_model($model, pretrained => 1);
## ImageNet classes
my $fname = download('http://data.mxnet.io/models/imagenet/synset.txt');
my @text_labels = map { chomp; s/^\S+\s+//; $_ } IO::File->new($fname)->getlines;
## get the image from the disk or net
if($image =~ /^https/)
{
eval { require IO::Socket::SSL; };
die "Need to have IO::Socket::SSL installed for https images" if $@;
}
$image = $image =~ /^https?/ ? download($image) : $image;
# Following the conventional way of preprocessing ImageNet data:
# Resize the short edge into 256 pixes,
# And then perform a center crop to obtain a 224-by-224 image.
# The following code uses the image processing functions provided
# in the AI::MXNet::Image module.
$image = mx->image->imread($image);
$image = mx->image->resize_short($image, $model =~ /inception/ ? 330 : 256);
($image) = mx->image->center_crop($image, [($model =~ /inception/ ? 299 : 224)x2]);
## CV that is used to read image is column major (as PDL)
lib/AI/MXNet/Gluon/ModelZoo.pm view on Meta::CPAN
@AI::MXNet::Gluon::ModelZoo::EXPORT_OK = qw(get_model);
our $VERSION = '1.33';
=head1 NAME
AI::MXNet::Gluon::ModelZoo - A collection of pretrained MXNet Gluon models
=cut
=head1 SYNOPSIS
## run forward prediction on random data
use AI::MXNet::Gluon::ModelZoo qw(get_model);
my $alexnet = get_model('alexnet', pretrained => 1);
my $out = $alexnet->(mx->nd->random->uniform(shape=>[1, 3, 224, 224]));
print $out->aspdl;
=cut
=head1 DESCRIPTION
This module houses a collection of pretrained models (the parameters are hosted on public mxnet servers).
https://mxnet.incubator.apache.org/api/python/gluon/model_zoo.html
t/test_gluon_model_zoo.t view on Meta::CPAN
'densenet121', 'densenet161', 'densenet169', 'densenet201',
'squeezenet1.0', 'squeezenet1.1',
'mobilenet1.0', 'mobilenet0.75', 'mobilenet0.5', 'mobilenet0.25',
'mobilenetv2_1.0', 'mobilenetv2_0.75', 'mobilenetv2_0.5', 'mobilenetv2_0.25');
my %pretrained_to_test = ('squeezenet1.1' => 1);
for my $model_name (@all_models)
{
my $test_pretrain = exists $pretrained_to_test{ $model_name };
my $model = get_model($model_name, pretrained=>$test_pretrain, root=>'model/');
my $data_shape = $model_name !~ /inception/ ? [2, 3, 224, 224] : [2, 3, 299, 299];
if(not $test_pretrain)
{
$model->collect_params()->initialize();
}
$model->hybridize();
$model->(mx->nd->random->uniform(shape=>$data_shape))->wait_to_read;
ok(1, "forward for $model_name");
}
}
test_models();
view all matches for this distributionview release on metacpan - search on metacpan
( run in 0.558 second using v1.00-cache-2.02-grep-82fe00e-cpan-4673cadbf75 )