From 8b47a5343f1bd9bc42c859a132bf9b2265b9b114 Mon Sep 17 00:00:00 2001 From: Zakariyya Mughal Date: Sun, 7 May 2023 16:42:36 -0400 Subject: [PATCH] Add demo transformations --- .../InferenceUsingTFHubMobileNetV2Model.ipynb | 59 +++++++++++++++++-- 1 file changed, 54 insertions(+), 5 deletions(-) diff --git a/notebook/InferenceUsingTFHubMobileNetV2Model.ipynb b/notebook/InferenceUsingTFHubMobileNetV2Model.ipynb index 9b7fa64..1c71d2f 100644 --- a/notebook/InferenceUsingTFHubMobileNetV2Model.ipynb +++ b/notebook/InferenceUsingTFHubMobileNetV2Model.ipynb @@ -856,7 +856,49 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 59, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[0;38;5;176mPDL\u001b[m\u001b[0;38;5;81m {\u001b[m\n", + " \u001b[0;38;5;104mData \u001b[m : \u001b[0;38;5;107mtoo long to print\u001b[m\n", + " \u001b[0;38;5;104mType \u001b[m : \u001b[0;38;5;176mfloat\u001b[m\n", + " \u001b[0;38;5;104mShape \u001b[m : \u001b[0;38;5;81m[\u001b[m\u001b[0;38;5;146m3 224 224 12\u001b[m\u001b[0;38;5;81m]\u001b[m\n", + " \u001b[0;38;5;104mNelem \u001b[m : \u001b[93m1806336\u001b[m\n", + " \u001b[0;38;5;104mMin \u001b[m : \u001b[91m0\u001b[m\n", + " \u001b[0;38;5;104mMax \u001b[m : \u001b[94m1\u001b[m\n", + " \u001b[0;38;5;104mBadflag \u001b[m : \u001b[32mNo\u001b[m\n", + " \u001b[0;38;5;104mHas Bads\u001b[m : \u001b[32mNo\u001b[m\n", + "\u001b[0;38;5;81m}\u001b[m\n" + ] + } + ], + "source": [ + "use PDL::ImageRGB;\n", + "use PDL::Transform;\n", + "my $mogrified = $pdl_image_batched->copy;\n", + "\n", + "#my $ts = t_linear( Scale => 0.5, offset => [$mogrified->dim(1)/2,$mogrified->dim(2)/2] );\n", + "#$mogrified = $mogrified->mv(0,-1)->map($ts, {pix => 1})->mv(-1,0);\n", + "#$mogrified = $mogrified->mv(0,-1)->map(!$ts, {pix => 1})->mv(-1,0);\n", + "\n", + "#$mogrified = ( $mogrified + float(0.7) * (random($mogrified) - float(0.5) ) )->clip(0,1);\n", + "#$mogrified = $mogrified->slice(':,:,-1:0,:');\n", + "#$mogrified = $mogrified->rgbtogr->dummy(0,3);\n", + "#$mogrified = $mogrified->xchg(1,2);\n", + "$mogrified->dice([0,2],'X','X','X') .= 0;\n", + "\n", + "$mogrified->check_badflag;\n", + "\n", + "p $mogrified;" + ] + }, + { + "cell_type": "code", + "execution_count": 60, "id": "ffd5bbb6", "metadata": {}, "outputs": [ @@ -869,8 +911,8 @@ " \u001b[0;38;5;104mType \u001b[m : \u001b[0;38;5;176mfloat\u001b[m\n", " \u001b[0;38;5;104mShape \u001b[m : \u001b[0;38;5;81m[\u001b[m\u001b[0;38;5;146m1001 12\u001b[m\u001b[0;38;5;81m]\u001b[m\n", " \u001b[0;38;5;104mNelem \u001b[m : \u001b[93m12012\u001b[m\n", - " \u001b[0;38;5;104mMin \u001b[m : \u001b[91m2.73727380317723e-07\u001b[m\n", - " \u001b[0;38;5;104mMax \u001b[m : \u001b[94m0.980696022510529\u001b[m\n", + " \u001b[0;38;5;104mMin \u001b[m : \u001b[91m3.75628737003808e-08\u001b[m\n", + " \u001b[0;38;5;104mMax \u001b[m : \u001b[94m0.988336801528931\u001b[m\n", " \u001b[0;38;5;104mBadflag \u001b[m : \u001b[32mNo\u001b[m\n", " \u001b[0;38;5;104mHas Bads\u001b[m : \u001b[32mNo\u001b[m\n", "\u001b[0;38;5;81m}\u001b[m\n" @@ -878,7 +920,9 @@ } ], "source": [ - "my $output_pdl_batched = FloatTFTensorToPDL($RunSession->($session, $t));\n", + "my $output_pdl_batched = FloatTFTensorToPDL($RunSession->($session,\n", + " FloatPDLTOTFTensor( $mogrified )\n", + "));\n", "my $softmax = sub { ( map $_/sumover($_)->dummy(0), exp($_[0]) )[0] };\n", "my $probabilities_batched = $softmax->($output_pdl_batched);\n", "p $probabilities_batched;" @@ -1025,7 +1069,12 @@ " $h->tt($image_name),\n", " $h->a( { href => $images_for_test_to_uri{$image_name} },\n", " $h->img({\n", - " src => $images_for_test_to_uri{$image_name},\n", + " src => do {\n", + " #$images_for_test_to_uri{$image_name}\n", + " my $slice = $mogrified->slice([],[],[-1,0],[$batch_idx,0,0]);\n", + " wpic($slice, 'temp.png');\n", + " IPerl->png( bytestream => path('temp.png')->slurp_raw )->_html_uri\n", + " },\n", " alt => $image_name,\n", " width => '50%',\n", " })\n",