.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "auto_examples/visualkeras_CNN/plot_custom_vgg16_show_dimension.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code or to run this example in your browser via JupyterLite or Binder. .. rst-class:: sphx-glr-example-title .. _sphx_glr_auto_examples_visualkeras_CNN_plot_custom_vgg16_show_dimension.py: visualkeras: custom vgg16 show dimension example ====================================================================== An example showing the :py:func:`~scikitplot.visualkeras` function used by a :py:class:`~tensorflow.keras.Model` model. .. GENERATED FROM PYTHON SOURCE LINES 8-12 .. code-block:: Python # Authors: The scikit-plots developers # SPDX-License-Identifier: BSD-3-Clause .. GENERATED FROM PYTHON SOURCE LINES 13-29 .. code-block:: Python # visualkeras Need aggdraw tensorflow # !pip install scikitplot[core, cpu] # or # !pip install aggdraw # !pip install tensorflow # pip install protobuf==5.29.4 import tensorflow as tf # Clear any session to reset the state of TensorFlow/Keras tf.keras.backend.clear_session() from scikitplot import visualkeras .. GENERATED FROM PYTHON SOURCE LINES 30-31 create VGG16 .. GENERATED FROM PYTHON SOURCE LINES 31-85 .. code-block:: Python image_size = 224 model = tf.keras.models.Sequential() model.add(tf.keras.layers.InputLayer(shape=(image_size, image_size, 3))) model.add(tf.keras.layers.ZeroPadding2D((1, 1))) model.add(tf.keras.layers.Conv2D(64, activation="relu", kernel_size=(3, 3))) model.add(tf.keras.layers.ZeroPadding2D((1, 1))) model.add(tf.keras.layers.Conv2D(64, activation="relu", kernel_size=(3, 3))) model.add(visualkeras.SpacingDummyLayer()) model.add(tf.keras.layers.MaxPooling2D((2, 2), strides=(2, 2))) model.add(tf.keras.layers.ZeroPadding2D((1, 1))) model.add(tf.keras.layers.Conv2D(128, activation="relu", kernel_size=(3, 3))) model.add(tf.keras.layers.ZeroPadding2D((1, 1))) model.add(tf.keras.layers.Conv2D(128, activation="relu", kernel_size=(3, 3))) model.add(visualkeras.SpacingDummyLayer()) model.add(tf.keras.layers.MaxPooling2D((2, 2), strides=(2, 2))) model.add(tf.keras.layers.ZeroPadding2D((1, 1))) model.add(tf.keras.layers.Conv2D(256, activation="relu", kernel_size=(3, 3))) model.add(tf.keras.layers.ZeroPadding2D((1, 1))) model.add(tf.keras.layers.Conv2D(256, activation="relu", kernel_size=(3, 3))) model.add(tf.keras.layers.ZeroPadding2D((1, 1))) model.add(tf.keras.layers.Conv2D(256, activation="relu", kernel_size=(3, 3))) model.add(visualkeras.SpacingDummyLayer()) model.add(tf.keras.layers.MaxPooling2D((2, 2), strides=(2, 2))) model.add(tf.keras.layers.ZeroPadding2D((1, 1))) model.add(tf.keras.layers.Conv2D(512, activation="relu", kernel_size=(3, 3))) model.add(tf.keras.layers.ZeroPadding2D((1, 1))) model.add(tf.keras.layers.Conv2D(512, activation="relu", kernel_size=(3, 3))) model.add(tf.keras.layers.ZeroPadding2D((1, 1))) model.add(tf.keras.layers.Conv2D(512, activation="relu", kernel_size=(3, 3))) model.add(visualkeras.SpacingDummyLayer()) model.add(tf.keras.layers.MaxPooling2D((2, 2), strides=(2, 2))) model.add(tf.keras.layers.ZeroPadding2D((1, 1))) model.add(tf.keras.layers.Conv2D(512, activation="relu", kernel_size=(3, 3))) model.add(tf.keras.layers.ZeroPadding2D((1, 1))) model.add(tf.keras.layers.Conv2D(512, activation="relu", kernel_size=(3, 3))) model.add(tf.keras.layers.ZeroPadding2D((1, 1))) model.add(tf.keras.layers.Conv2D(512, activation="relu", kernel_size=(3, 3))) model.add(tf.keras.layers.MaxPooling2D()) model.add(visualkeras.SpacingDummyLayer()) model.add(tf.keras.layers.Flatten()) model.add(tf.keras.layers.Dense(4096, activation="relu")) model.add(tf.keras.layers.Dropout(0.5)) model.add(tf.keras.layers.Dense(4096, activation="relu")) model.add(tf.keras.layers.Dropout(0.5)) model.add(tf.keras.layers.Dense(1000, activation="softmax")) # model.summary() .. GENERATED FROM PYTHON SOURCE LINES 86-87 Now visualize the model! .. GENERATED FROM PYTHON SOURCE LINES 87-98 .. code-block:: Python from collections import defaultdict color_map = defaultdict(dict) color_map[tf.keras.layers.Conv2D]["fill"] = "orange" color_map[tf.keras.layers.ZeroPadding2D]["fill"] = "gray" color_map[tf.keras.layers.Dropout]["fill"] = "pink" color_map[tf.keras.layers.MaxPooling2D]["fill"] = "red" color_map[tf.keras.layers.Dense]["fill"] = "green" color_map[tf.keras.layers.Flatten]["fill"] = "teal" .. GENERATED FROM PYTHON SOURCE LINES 99-104 .. code-block:: Python from PIL import ImageFont ImageFont.load_default() .. rst-class:: sphx-glr-script-out .. code-block:: none .. GENERATED FROM PYTHON SOURCE LINES 105-121 .. code-block:: Python img_vgg16_show_dimension = visualkeras.layered_view( model, legend=True, show_dimension=True, type_ignore=[visualkeras.SpacingDummyLayer], font={ "font_size": 61, # 'use_default_font': False, # 'font_path': '/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf' }, # to_file="result_images/vgg16_show_dimension.png", save_fig=True, save_fig_filename="vgg16_show_dimension.png", ) img_vgg16_show_dimension .. image-sg:: /auto_examples/visualkeras_CNN/images/sphx_glr_plot_custom_vgg16_show_dimension_001.png :alt: plot custom vgg16 show dimension :srcset: /auto_examples/visualkeras_CNN/images/sphx_glr_plot_custom_vgg16_show_dimension_001.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none .. GENERATED FROM PYTHON SOURCE LINES 122-138 .. code-block:: Python img_vgg16_legend_show_dimension = visualkeras.layered_view( model, legend=True, show_dimension=True, type_ignore=[visualkeras.SpacingDummyLayer], font={ "font_size": 61, # 'use_default_font': False, # 'font_path': '/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf' }, # to_file="result_images/vgg16_legend_show_dimension.png", save_fig=True, save_fig_filename="vgg16_legend_show_dimension.png", ) img_vgg16_legend_show_dimension .. image-sg:: /auto_examples/visualkeras_CNN/images/sphx_glr_plot_custom_vgg16_show_dimension_002.png :alt: plot custom vgg16 show dimension :srcset: /auto_examples/visualkeras_CNN/images/sphx_glr_plot_custom_vgg16_show_dimension_002.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none .. GENERATED FROM PYTHON SOURCE LINES 139-156 .. code-block:: Python img_vgg16_spacing_layers_show_dimension = visualkeras.layered_view( model, legend=True, show_dimension=True, type_ignore=[], spacing=0, font={ "font_size": 61, # 'use_default_font': False, # 'font_path': '/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf' }, # to_file="result_images/vgg16_spacing_layers_show_dimension.png", save_fig=True, save_fig_filename="vgg16_spacing_layers_show_dimension.png", ) img_vgg16_spacing_layers_show_dimension .. image-sg:: /auto_examples/visualkeras_CNN/images/sphx_glr_plot_custom_vgg16_show_dimension_003.png :alt: plot custom vgg16 show dimension :srcset: /auto_examples/visualkeras_CNN/images/sphx_glr_plot_custom_vgg16_show_dimension_003.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none .. GENERATED FROM PYTHON SOURCE LINES 157-178 .. code-block:: Python img_vgg16_type_ignore_show_dimension = visualkeras.layered_view( model, legend=True, show_dimension=True, type_ignore=[ tf.keras.layers.ZeroPadding2D, tf.keras.layers.Dropout, tf.keras.layers.Flatten, visualkeras.SpacingDummyLayer, ], font={ "font_size": 61, # 'use_default_font': False, # 'font_path': '/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf' }, # to_file="result_images/vgg16_type_ignore_show_dimension.png", save_fig=True, save_fig_filename="vgg16_type_ignore_show_dimension.png", ) img_vgg16_type_ignore_show_dimension .. image-sg:: /auto_examples/visualkeras_CNN/images/sphx_glr_plot_custom_vgg16_show_dimension_004.png :alt: plot custom vgg16 show dimension :srcset: /auto_examples/visualkeras_CNN/images/sphx_glr_plot_custom_vgg16_show_dimension_004.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none .. GENERATED FROM PYTHON SOURCE LINES 179-196 .. code-block:: Python img_vgg16_color_map_show_dimension = visualkeras.layered_view( model, legend=True, show_dimension=True, type_ignore=[visualkeras.SpacingDummyLayer], color_map=color_map, font={ "font_size": 61, # 'use_default_font': False, # 'font_path': '/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf' }, # to_file="result_images/vgg16_color_map_show_dimension.png", save_fig=True, save_fig_filename="vgg16_color_map_show_dimension.png", ) img_vgg16_color_map_show_dimension .. image-sg:: /auto_examples/visualkeras_CNN/images/sphx_glr_plot_custom_vgg16_show_dimension_005.png :alt: plot custom vgg16 show dimension :srcset: /auto_examples/visualkeras_CNN/images/sphx_glr_plot_custom_vgg16_show_dimension_005.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none .. GENERATED FROM PYTHON SOURCE LINES 197-214 .. code-block:: Python img_vgg16_flat_show_dimension = visualkeras.layered_view( model, legend=True, show_dimension=True, type_ignore=[visualkeras.SpacingDummyLayer], draw_volume=False, font={ "font_size": 61, # 'use_default_font': False, # 'font_path': '/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf' }, # to_file="result_images/vgg16_flat_show_dimension.png", save_fig=True, save_fig_filename="vgg16_flat_show_dimension.png", ) img_vgg16_flat_show_dimension .. image-sg:: /auto_examples/visualkeras_CNN/images/sphx_glr_plot_custom_vgg16_show_dimension_006.png :alt: plot custom vgg16 show dimension :srcset: /auto_examples/visualkeras_CNN/images/sphx_glr_plot_custom_vgg16_show_dimension_006.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none .. GENERATED FROM PYTHON SOURCE LINES 215-233 .. code-block:: Python img_vgg16_scaling_show_dimension = visualkeras.layered_view( model, legend=True, show_dimension=True, type_ignore=[visualkeras.SpacingDummyLayer], # min_z = 1, # min_xy = 1, # max_z = 4096, # max_xy = 4096, # scale_z = 0.25, # scale_xy = 5, font={"font_size": 61}, # to_file="result_images/vgg16_scaling_show_dimension.png", save_fig=True, save_fig_filename="vgg16_scaling_show_dimension.png", ) img_vgg16_scaling_show_dimension .. image-sg:: /auto_examples/visualkeras_CNN/images/sphx_glr_plot_custom_vgg16_show_dimension_007.png :alt: plot custom vgg16 show dimension :srcset: /auto_examples/visualkeras_CNN/images/sphx_glr_plot_custom_vgg16_show_dimension_007.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none .. GENERATED FROM PYTHON SOURCE LINES 234-242 .. tags:: model-type: classification model-workflow: model building plot-type: visualkeras domain: neural network level: intermediate purpose: showcase .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 17.911 seconds) .. _sphx_glr_download_auto_examples_visualkeras_CNN_plot_custom_vgg16_show_dimension.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: binder-badge .. image:: images/binder_badge_logo.svg :target: https://mybinder.org/v2/gh/scikit-plots/scikit-plots/maintenance/0.4.X?urlpath=lab/tree/notebooks/auto_examples/visualkeras_CNN/plot_custom_vgg16_show_dimension.ipynb :alt: Launch binder :width: 150 px .. container:: lite-badge .. image:: images/jupyterlite_badge_logo.svg :target: ../../lite/lab/index.html?path=auto_examples/visualkeras_CNN/plot_custom_vgg16_show_dimension.ipynb :alt: Launch JupyterLite :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_custom_vgg16_show_dimension.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_custom_vgg16_show_dimension.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_custom_vgg16_show_dimension.zip ` .. include:: plot_custom_vgg16_show_dimension.recommendations .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_