AI-TensorFlow-Libtensorflow
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
t/lib/TF_Utils.pm view on Meta::CPAN
if( $device ) {
$ctx->note("Setting op Min on device $device");
}
my $min = TF_Utils::MinWithDevice( $feed, $one, $graph, $device, $s );
TF_Utils::AssertStatusOK($s);
$ctx->note('Run the graph.');
$csession->SetInputs( [ $feed, TF_Utils::Int32Tensor([3, 2, 5]) ]);
$csession->SetOutputs($min);
$csession->Run($s);
TF_Utils::AssertStatusOK($s);
is($csession->output_tensor(0), object {
call Type => INT32;
call NumDims => 0; # scalar
call ByteSize => INT32->Size;
call sub {
[ unpack "l*", ${ shift->Data } ];
} => [ 2 ];
}, 'Min( Feed() = [3, 2, 5] )');
$ctx->release;
}
sub GPUDeviceName {
my ($session) = @_;
my $s = AI::TensorFlow::Libtensorflow::Status->New;
my $graph;
if( ! $session ) {
my $opts = AI::TensorFlow::Libtensorflow::SessionOptions->New;
$graph = AI::TensorFlow::Libtensorflow::Graph->New;
$session ||= AI::TensorFlow::Libtensorflow::Session->New($graph, $opts, $s);
}
my $device_list = $session->ListDevices($s);
my $device_idx = first { my $type = $device_list->Type( $_, $s ) eq 'GPU' } 0..$device_list->Count - 1;
return "" unless $device_idx;
return $device_list->Name( $device_idx, $s );
}
sub DumpDevices {
my ($session) = @_;
my $s = AI::TensorFlow::Libtensorflow::Status->New;
my $graph;
if( ! $session ) {
my $opts = AI::TensorFlow::Libtensorflow::SessionOptions->New;
$graph = AI::TensorFlow::Libtensorflow::Graph->New;
$session ||= AI::TensorFlow::Libtensorflow::Session->New($graph, $opts, $s);
}
my $device_list = $session->ListDevices($s);
my @devices = map {
my $idx = $_;
my %h = map { ( $_ => $device_list->$_( $idx, $s ) ) } qw(Name Type MemoryBytes Incarnation);
\%h;
} 0..$device_list->Count - 1;
use Data::Dumper; print Dumper(\@devices);
}
1;
view all matches for this distributionview release on metacpan - search on metacpan
( run in 1.351 second using v1.00-cache-2.02-grep-82fe00e-cpan-9f2165ba459b )