{ "cells": [ { "cell_type": "markdown", "id": "d0ce4228", "metadata": {}, "source": [ "# plot activation functions\n" ] }, { "cell_type": "code", "execution_count": null, "id": "b3c8093a", "metadata": {}, "outputs": [], "source": [ "# Importing the required libraries\n", "import math\n", "import matplotlib.pyplot as plt\n", "import numpy as np" ] }, { "cell_type": "code", "execution_count": null, "id": "a134fb45", "metadata": {}, "outputs": [], "source": [ "# The definition of activation functions mathematically\n", "# Sigmoid Function\n", "def sigmoid(x):\n", " a = []\n", " for i in x:\n", " a.append(1/(1+math.exp(-i)))\n", " return a" ] }, { "cell_type": "code", "execution_count": null, "id": "954c32ed", "metadata": {}, "outputs": [], "source": [ "# Hyperbolic Tanjant Function\n", "def tanh(x, derivative=False):\n", " if (derivative == True):\n", " return (1 - (x ** 2))\n", " return np.tanh(x)" ] }, { "cell_type": "code", "execution_count": null, "id": "2c0e5136", "metadata": {}, "outputs": [], "source": [ "# ReLU Function\n", "def re(x):\n", " b = []\n", " for i in x:\n", " if i<0:\n", " b.append(0)\n", " else:\n", " b.append(i)\n", " return b" ] }, { "cell_type": "code", "execution_count": null, "id": "f29cac64", "metadata": {}, "outputs": [], "source": [ "# Leaky ReLU Function\n", "def lr(x):\n", " b = []\n", " for i in x:\n", " if i<0:\n", " b.append(i/10)\n", " else:\n", " b.append(i)\n", " return b\n", " " ] }, { "cell_type": "code", "execution_count": null, "id": "1854dc7b", "metadata": {}, "outputs": [], "source": [ "# Determining the intervals to be created for the graph\n", "x = np.arange(-3., 3., 0.1)\n", "sig = sigmoid(x)\n", "tanh = tanh(x)\n", "relu = re(x)\n", "leaky_relu = lr(x)\n", "swish = sig*x" ] }, { "cell_type": "code", "execution_count": null, "id": "9c535ccb", "metadata": {}, "outputs": [], "source": [ "# Displaying the functions\n", "line_1, = plt.plot(x,sig, label='Sigmoid')\n", "line_2, = plt.plot(x,tanh, label='Tanh')\n", "line_3, = plt.plot(x,relu, label='ReLU')\n", "line_4, = plt.plot(x,leaky_relu, label='Leaky ReLU')\n", "line_5, = plt.plot(x,swish, label='Swish')\n", "plt.legend(handles=[line_1, line_2, line_3, line_4, line_5])\n", "plt.axhline(y=0, color='k')\n", "plt.axvline(x=0, color='k')\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.16" } }, "nbformat": 4, "nbformat_minor": 5 }