Browse Source

Various optimizations

Jason Antic 6 years ago
parent
commit
cb2aeb2df6

+ 9 - 8
ColorizeTrainingArtistic.ipynb

@@ -14,7 +14,7 @@
    "outputs": [],
    "source": [
     "import os\n",
-    "os.environ['CUDA_VISIBLE_DEVICES']='2' "
+    "os.environ['CUDA_VISIBLE_DEVICES']='1' "
    ]
   },
   {
@@ -53,7 +53,7 @@
     "path_hr = path\n",
     "path_lr = path/'bandw'\n",
     "\n",
-    "proj_id = 'ColorizeNew79'\n",
+    "proj_id = 'Artistic2'\n",
     "gen_name = proj_id + '_gen'\n",
     "crit_name = proj_id + '_crit'\n",
     "\n",
@@ -62,7 +62,8 @@
     "\n",
     "TENSORBOARD_PATH = Path('data/tensorboard/' + proj_id)\n",
     "\n",
-    "nf_factor = 1.50"
+    "nf_factor = 1.50\n",
+    "pct_start = 1e-4"
    ]
   },
   {
@@ -252,7 +253,7 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "learn_gen.fit_one_cycle(2, pct_start=0.8, max_lr=slice(1e-3))"
+    "learn_gen.fit_one_cycle(1, pct_start=0.8, max_lr=slice(1e-3))"
    ]
   },
   {
@@ -288,7 +289,7 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "learn_gen.fit_one_cycle(2, pct_start=0.0001,  max_lr=slice(3e-7, 3e-4))"
+    "learn_gen.fit_one_cycle(1, pct_start=pct_start,  max_lr=slice(3e-7, 3e-4))"
    ]
   },
   {
@@ -344,7 +345,7 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "learn_gen.fit_one_cycle(2, pct_start=0.0001, max_lr=slice(1e-7,1e-4))"
+    "learn_gen.fit_one_cycle(1, pct_start=pct_start, max_lr=slice(1e-7,1e-4))"
    ]
   },
   {
@@ -391,7 +392,7 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "learn_gen.fit_one_cycle(1, pct_start=0.0001, max_lr=slice(5e-8,5e-5))"
+    "learn_gen.fit_one_cycle(1, pct_start=pct_start, max_lr=slice(5e-8,5e-5))"
    ]
   },
   {
@@ -889,7 +890,7 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.7.0"
+   "version": "3.7.3"
   }
  },
  "nbformat": 4,

+ 7 - 6
ColorizeTrainingStable.ipynb

@@ -53,7 +53,7 @@
     "path_hr = path\n",
     "path_lr = path/'bandw'\n",
     "\n",
-    "proj_id = 'ColorizeNew73'\n",
+    "proj_id = 'Stable'\n",
     "gen_name = proj_id + '_gen'\n",
     "crit_name = proj_id + '_crit'\n",
     "\n",
@@ -62,7 +62,8 @@
     "\n",
     "TENSORBOARD_PATH = Path('data/tensorboard/' + proj_id)\n",
     "\n",
-    "nf_factor = 2"
+    "nf_factor = 2\n",
+    "pct_start = 1e-4"
    ]
   },
   {
@@ -252,7 +253,7 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "learn_gen.fit_one_cycle(2, pct_start=0.8, max_lr=slice(1e-3))"
+    "learn_gen.fit_one_cycle(1, pct_start=0.8, max_lr=slice(1e-3))"
    ]
   },
   {
@@ -288,7 +289,7 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "learn_gen.fit_one_cycle(2, pct_start=0.01,  max_lr=slice(3e-7, 3e-4))"
+    "learn_gen.fit_one_cycle(1, pct_start=pct_start,  max_lr=slice(3e-7, 3e-4))"
    ]
   },
   {
@@ -344,7 +345,7 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "learn_gen.fit_one_cycle(2, pct_start=0.01, max_lr=slice(1e-7,1e-4))"
+    "learn_gen.fit_one_cycle(1, pct_start=pct_start, max_lr=slice(1e-7,1e-4))"
    ]
   },
   {
@@ -400,7 +401,7 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "learn_gen.fit_one_cycle(1, pct_start=0.01, max_lr=slice(5e-8,5e-5))"
+    "learn_gen.fit_one_cycle(1, pct_start=pct_start, max_lr=slice(5e-8,5e-5))"
    ]
   },
   {

+ 4 - 15
ImageColorizer.ipynb

@@ -10,17 +10,6 @@
     "os.environ['CUDA_VISIBLE_DEVICES']='1' "
    ]
   },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "from __future__ import print_function\n",
-    "from ipywidgets import interact, interactive, fixed, interact_manual\n",
-    "import ipywidgets as widgets"
-   ]
-  },
   {
    "cell_type": "code",
    "execution_count": null,
@@ -100,9 +89,9 @@
     "result_path = None\n",
     "\n",
     "if source_url is not None:\n",
-    "    result_path = colorizer.plot_transformed_image_from_url(url=source_url, path=source_path, render_factor=render_factor)\n",
+    "    result_path = colorizer.plot_transformed_image_from_url(url=source_url, path=source_path, render_factor=render_factor, compare=True)\n",
     "else:\n",
-    "    result_path = colorizer.plot_transformed_image(path=source_path, render_factor=render_factor)\n",
+    "    result_path = colorizer.plot_transformed_image(path=source_path, render_factor=render_factor, compare=True)\n",
     "\n",
     "show_image_in_notebook(result_path)"
    ]
@@ -120,8 +109,8 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "for i in range(5,46):\n",
-    "    colorizer.plot_transformed_image(source_path, render_factor=i, display_render_factor=True)"
+    "for i in range(10,46,2):\n",
+    "    colorizer.plot_transformed_image(source_path, render_factor=i, display_render_factor=True, figsize=(8,8))"
    ]
   },
   {

File diff suppressed because it is too large
+ 112 - 112
ImageColorizerArtisticTests.ipynb


+ 13 - 5
ImageColorizerColab.ipynb

@@ -158,12 +158,20 @@
     "colorizer = get_image_colorizer(artistic=True)"
    ]
   },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "colab_type": "text",
+    "id": "BDFjbNxaadNJ"
+   },
+   "source": [
+    "#◢ Instructions"
+   ]
+  },
   {
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "# Instructions\n",
-    "\n",
     "### source_url\n",
     "Type in a url to a direct link of an image.  Usually that means they'll end in .png, .jpg, etc. NOTE: If you want to use your own image, upload it first to a site like Imgur. \n",
     "\n",
@@ -201,7 +209,7 @@
     "render_factor = 35  #@param {type: \"slider\", min: 7, max: 45}\n",
     "\n",
     "if source_url is not None and source_url !='':\n",
-    "    image_path = colorizer.plot_transformed_image_from_url(url=source_url, render_factor=render_factor)\n",
+    "    image_path = colorizer.plot_transformed_image_from_url(url=source_url, render_factor=render_factor, compare=True)\n",
     "    show_image_in_notebook(image_path)\n",
     "else:\n",
     "    print('Provide an image url and try again.')"
@@ -220,8 +228,8 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "for i in range(5,46):\n",
-    "    colorizer.plot_transformed_image('test_images/image.png', render_factor=i, display_render_factor=True, figsize=(10,10))"
+    "for i in range(10,46,2):\n",
+    "    colorizer.plot_transformed_image('test_images/image.png', render_factor=i, display_render_factor=True, figsize=(8,8))"
    ]
   },
   {

File diff suppressed because it is too large
+ 112 - 112
ImageColorizerStableTests.ipynb


+ 9 - 2
VideoColorizer.ipynb

@@ -116,9 +116,16 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "for i in range(5,44):\n",
-    "    colorizer.vis.plot_transformed_image('video/bwframes/' + file_name + '/00001.jpg', render_factor=i, display_render_factor=True)"
+    "for i in range(10,45,2):\n",
+    "    colorizer.vis.plot_transformed_image('video/bwframes/' + file_name + '/00001.jpg', render_factor=i, display_render_factor=True, figsize=(8,8))"
    ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
   }
  ],
  "metadata": {

+ 9 - 4
VideoColorizerColab.ipynb

@@ -165,8 +165,13 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "# Instructions\n",
-    "\n",
+    "#◢ Instructions"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
     "### source_url\n",
     "Type in a url hosting a video from YouTube, Imgur, Twitter, Reddit, Vimeo, etc.  Many sources work!  GIFs also work.  Full list here: https://ytdl-org.github.io/youtube-dl/supportedsites.html NOTE: If you want to use your own video, upload it first to a site like YouTube. \n",
     "\n",
@@ -231,8 +236,8 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "for i in range(5,44):\n",
-    "    colorizer.vis.plot_transformed_image('video/bwframes/video/00001.jpg', render_factor=i, display_render_factor=True, figsize=(10,10))"
+    "for i in range(10,45,2):\n",
+    "    colorizer.vis.plot_transformed_image('video/bwframes/video/00001.jpg', render_factor=i, display_render_factor=True, figsize=(8,8))"
    ]
   },
   {

+ 16 - 5
fasterai/visualize.py

@@ -25,7 +25,6 @@ class ModelImageVisualizer():
         self.results_dir.mkdir(parents=True, exist_ok=True)
     
     def _clean_mem(self):
-        return
         torch.cuda.empty_cache()
         #gc.collect()
 
@@ -38,20 +37,32 @@ class ModelImageVisualizer():
         return img
 
     def plot_transformed_image_from_url(self, url:str, path:str='test_images/image.png', figsize:(int,int)=(20,20), 
-            render_factor:int=None, display_render_factor:bool=False)->Path:
+            render_factor:int=None, display_render_factor:bool=False, compare:bool=False)->Path:
         img = self._get_image_from_url(url)
         img.save(path)
         return self.plot_transformed_image(path=path, figsize=figsize, render_factor=render_factor, 
-                                            display_render_factor=display_render_factor)
+                                            display_render_factor=display_render_factor, compare=compare)
 
-    def plot_transformed_image(self, path:str, figsize:(int,int)=(20,20), render_factor:int=None, display_render_factor:bool=False)->Path:
+    def plot_transformed_image(self, path:str, figsize:(int,int)=(20,20), render_factor:int=None, 
+                            display_render_factor:bool=False, compare:bool=False)->Path:
         path = Path(path)
         result = self.get_transformed_image(path, render_factor)
         orig = self._open_pil_image(path)
+        if compare: 
+            self._plot_comparison(figsize, render_factor, display_render_factor, orig, result)
+        else:
+            self._plot_solo(figsize, render_factor, display_render_factor, result)
+
+        return self._save_result_image(path, result)
+
+    def _plot_comparison(self, figsize:(int,int), render_factor:int, display_render_factor:bool, orig:Image, result:Image):
         fig,axes = plt.subplots(1, 2, figsize=figsize)
         self._plot_image(orig, axes=axes[0], figsize=figsize, render_factor=render_factor, display_render_factor=False)
         self._plot_image(result, axes=axes[1], figsize=figsize, render_factor=render_factor, display_render_factor=display_render_factor)
-        return self._save_result_image(path, result)
+ 
+    def _plot_solo(self, figsize:(int,int), render_factor:int, display_render_factor:bool, result:Image):
+        fig,axes = plt.subplots(1, 1, figsize=figsize)
+        self._plot_image(result, axes=axes, figsize=figsize, render_factor=render_factor, display_render_factor=display_render_factor)
 
     def _save_result_image(self, source_path:Path, image:Image)->Path:
         result_path = self.results_dir/source_path.name

Some files were not shown because too many files changed in this diff