AI-MXNet
view release on metacpan or search on metacpan
lib/AI/MXNet/Visualization.pm view on Meta::CPAN
$attr{fillcolor} = $cm[6];
}
else
{
$attr{fillcolor} = $cm[7];
if($op eq 'Custom')
{
$label = $node->{attr}{op_type};
}
}
$dot->graph->add_node($name, label => $label, %attr);
};
# add edges
for my $node (@{ $nodes })
{
my $op = $node->{op};
my $name = $node->{name};
if($op eq 'null')
{
next;
}
else
{
my $inputs = $node->{inputs};
for my $item (@{ $inputs })
{
my $input_node = $nodes->[$item->[0]];
my $input_name = $input_node->{name};
if(not exists $hidden_nodes{ $input_name })
{
my %attr = qw/dir back arrowtail normal/;
# add shapes
if($draw_shape)
{
my $key = $input_name;
$key .= '_output' if $input_node->{op} ne 'null';
if($input_node->{op} ne 'null' and exists $input_node->{attr})
{
if(ref $input_node->{attr} eq 'HASH' and exists $input_node->{attr}{num_outputs})
{
$key .= ($input_node->{attr}{num_outputs} - 1);
}
}
my $end = @{ $shape_dict{$key} };
$attr{label} = join('x', @{ $shape_dict{$key} }[1..$end-1]);
}
$dot->graph->add_edge($name => $input_name, %attr);
}
}
}
}
return $dot;
}
package AI::MXNet::Visualization::PythonGraphviz;
use Mouse;
use AI::MXNet::Types;
has 'format' => (
is => 'ro',
isa => enum([qw/debug canon text ps hpgl pcl mif
pic gd gd2 gif jpeg png wbmp cmapx
imap vdx vrml vtx mp fig svg svgz
plain/]
)
);
has 'graph' => (is => 'ro', isa => 'GraphViz');
method render($output=)
{
my $method = 'as_' . $self->format;
return $self->graph->$method($output);
}
1;
( run in 1.285 second using v1.01-cache-2.11-cpan-13bb782fe5a )