.. DO NOT EDIT.
.. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY.
.. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE:
.. "auto_examples/visualkeras_ANN/plot_conv_dense.py"
.. LINE NUMBERS ARE GIVEN BELOW.

.. only:: html

    .. note::
        :class: sphx-glr-download-link-note

        :ref:`Go to the end <sphx_glr_download_auto_examples_visualkeras_ANN_plot_conv_dense.py>`
        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_ANN_plot_conv_dense.py:


Visualkeras Spam Classification Conv1D Dense Example
======================================================================

An example showing Spam the :py:func:`~scikitplot.visualkeras` function
used by a :py:class:`~tensorflow.keras.Model` model.

.. GENERATED FROM PYTHON SOURCE LINES 8-65

.. code-block:: Python


    # Authors: The scikit-plots developers
    # SPDX-License-Identifier: BSD-3-Clause

    # Force garbage collection
    import gc

    gc.collect()
    import tensorflow as tf

    # Clear the GPU memory cache
    tf.keras.backend.clear_session()

    model = tf.keras.models.Sequential()
    model.add(tf.keras.layers.InputLayer(input_shape=(100,)))

    # To convert 2D of input data into a 3D input
    # Reshape to a compatible shape for Conv1D as [batch_size, time_steps, input_dimension]
    # The Conv1D layer expects a 3D input: (batch_size, steps, channels).
    # The Reshape layer now reshapes the input to (n_timesteps,n_features) like (100, 1),
    # which matches the expected input of Conv1D.
    model.add(tf.keras.layers.Reshape((100, 1)))  # Shape: (batch_size, 100, 1), input_shape=(100,)

    # Add Conv1D and other layers
    model.add(tf.keras.layers.Conv1D(32, 1, strides=1, activation="relu"))
    model.add(tf.keras.layers.Dropout(0.5))
    model.add(tf.keras.layers.MaxPooling1D(pool_size=2))

    # Flatten and add Dense layers
    model.add(tf.keras.layers.Flatten())
    model.add(tf.keras.layers.Dense(64, activation="relu"))
    model.add(tf.keras.layers.Dense(32, activation="relu"))
    model.add(tf.keras.layers.Dense(1, activation="sigmoid"))

    # Compile the model
    model.compile(optimizer="rmsprop", loss="binary_crossentropy", metrics=["accuracy"])

    from scikitplot import visualkeras

    img_spam = visualkeras.layered_view(
        model,
        to_file="../result_images/spam_conv.png",
        min_xy=10,
        min_z=10,
        scale_xy=10,
        scale_z=10,
        one_dim_orientation="x",
    )
    try:
        import matplotlib.pyplot as plt

        plt.imshow(img_spam)
        plt.axis("off")
        plt.show()
    except:
        pass




.. image-sg:: /auto_examples/visualkeras_ANN/images/sphx_glr_plot_conv_dense_001.png
   :alt: plot conv dense
   :srcset: /auto_examples/visualkeras_ANN/images/sphx_glr_plot_conv_dense_001.png
   :class: sphx-glr-single-img





.. GENERATED FROM PYTHON SOURCE LINES 66-74

.. 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 12.290 seconds)


.. _sphx_glr_download_auto_examples_visualkeras_ANN_plot_conv_dense.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/main?urlpath=lab/tree/notebooks/auto_examples/visualkeras_ANN/plot_conv_dense.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_ANN/plot_conv_dense.ipynb
        :alt: Launch JupyterLite
        :width: 150 px

    .. container:: sphx-glr-download sphx-glr-download-jupyter

      :download:`Download Jupyter notebook: plot_conv_dense.ipynb <plot_conv_dense.ipynb>`

    .. container:: sphx-glr-download sphx-glr-download-python

      :download:`Download Python source code: plot_conv_dense.py <plot_conv_dense.py>`

    .. container:: sphx-glr-download sphx-glr-download-zip

      :download:`Download zipped: plot_conv_dense.zip <plot_conv_dense.zip>`


.. include:: plot_conv_dense.recommendations


.. only:: html

 .. rst-class:: sphx-glr-signature

    `Gallery generated by Sphinx-Gallery <https://sphinx-gallery.github.io>`_