Skip to content

Instantly share code, notes, and snippets.

@ahmedbr
Created March 7, 2019 10:17
Show Gist options
  • Save ahmedbr/01508a5ef01a49db50491c062ab32ced to your computer and use it in GitHub Desktop.
Save ahmedbr/01508a5ef01a49db50491c062ab32ced to your computer and use it in GitHub Desktop.
model-celsius-fahrenheit.ipynb
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "model-celsius-fahrenheit.ipynb",
"version": "0.3.2",
"provenance": [],
"collapsed_sections": [],
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"accelerator": "GPU"
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/ahmedbr/01508a5ef01a49db50491c062ab32ced/model-celsius-fahrenheit.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"metadata": {
"id": "4KIZc96aWL4x",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"from __future__ import absolute_import, division, print_function\n",
"import tensorflow as tf\n",
"tf.logging.set_verbosity(tf.logging.ERROR)\n",
"\n",
"import numpy as np"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "DjcGdghEWNuJ",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 134
},
"outputId": "574a15a4-0b13-4db2-8097-dbc0653867f2"
},
"cell_type": "code",
"source": [
"celsius_q = np.array([-40, -10, 0, 8, 15, 22, 38], dtype=float)\n",
"fahrenheit_a = np.array([-40, 14, 32, 46, 59, 72, 100], dtype=float)\n",
"\n",
"for i,c in enumerate(celsius_q):\n",
" print(\"{} degrees Celsius = {} degrees Fahrenhet\".format(c, fahrenheit_a[i]))\n",
" "
],
"execution_count": 36,
"outputs": [
{
"output_type": "stream",
"text": [
"-40.0 degrees Celsius = -40.0 degrees Fahrenhet\n",
"-10.0 degrees Celsius = 14.0 degrees Fahrenhet\n",
"0.0 degrees Celsius = 32.0 degrees Fahrenhet\n",
"8.0 degrees Celsius = 46.0 degrees Fahrenhet\n",
"15.0 degrees Celsius = 59.0 degrees Fahrenhet\n",
"22.0 degrees Celsius = 72.0 degrees Fahrenhet\n",
"38.0 degrees Celsius = 100.0 degrees Fahrenhet\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "Ig88P9mQmuA0",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"# creating a layer with 1 input and one output (units: number of neurons)\n",
"l0 = tf.keras.layers.Dense(units=1, input_shape=[1]) \n",
"model = tf.keras.Sequential([l0])"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "qBc2Vc2amwhV",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"# compile the model with loss function and optimizer\n",
"model.compile(loss='mean_squared_error', optimizer=tf.keras.optimizers.Adam(0.1))"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "8tPOGq3jm9fe",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
},
"outputId": "b2f73fca-a63c-4b22-8217-adf993494d9f"
},
"cell_type": "code",
"source": [
"#train the model 500 times for each pair of values (we have 70 pairs)\n",
"history = model.fit(celsius_q, fahrenheit_a, epochs=500, verbose=False)\n",
"print(\"Finished training the model\")"
],
"execution_count": 39,
"outputs": [
{
"output_type": "stream",
"text": [
"Finished training the model\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "Twu6dmnfnA5Y",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 378
},
"outputId": "75cd0454-1847-4fc6-9037-080a29d7bf47"
},
"cell_type": "code",
"source": [
"#displaying the training statistics\n",
"import matplotlib.pyplot as plt\n",
"plt.xlabel('Epoch Number')\n",
"plt.ylabel(\"Loss Magnitude\")\n",
"plt.plot(history.history['loss'])"
],
"execution_count": 40,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7f38a0bc3c18>]"
]
},
"metadata": {
"tags": []
},
"execution_count": 40
},
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAfgAAAFYCAYAAAC/NO6RAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3Xt8VPWd//H3mVsmM5lcmSCiIIKC\nlZt45aZFQVf0UbGrKFZbu7jVBV23RZFS8NKLAorrjapbdaVUFBddZRWFh1a2WmP6w1iK6NZiUbmT\nhNwzk0xmzu+PyQwBEiYhc+f1fDzymJkzZyaffL28z/d7vud7DNM0TQEAgKxiSXUBAAAg/gh4AACy\nEAEPAEAWIuABAMhCBDwAAFmIgAcAIAvZUl1APFVWNsT1+4qKXKqpaY7rdx5raMP4oB17jzbsPdow\nPuLZjl6vp8v36MEfgc1mTXUJGY82jA/asfdow96jDeMjWe1IwAMAkIUIeAAAshABDwBAFiLgAQDI\nQgQ8AABZiIAHACALEfAAAGQhAh4AgCxEwAMAkIUIeAAAslBWrUUfT1t31Gl/c0DFLnuqSwEAoMfo\nwXfhP9/6XP/+YkWqywAA4KgQ8F2wWgzVNramugwAAI4KAd8FV45Nzf6AQqaZ6lIAAOgxAr4LLqdd\npin5W9pSXQoAAD1GwHfB5QzPP2z2E/AAgMxDwHfBldMe8PTgAQAZiIDvQqQH30QPHgCQgQj4Lric\n4evfGaIHAGQiAr4LB4boAymuBACAniPguxAZovfRgwcAZCACvgtuzsEDADIYAd+FXGbRAwAyGAHf\nBa6DBwBkMgK+C66c8Cx6Hz14AEAGIuC74MyxymJITX5m0QMAMg8B3wWLYcjltHMOHgCQkWyJ+uKm\npibdddddqqurUyAQ0OzZs+X1enXvvfdKkoYOHar77rtPkvTMM8/o7bfflmEYuvXWW3XBBReooaFB\nc+bMUUNDg1wul5YuXarCwsJEldspd66dc/AAgIyUsID/7//+bw0aNEhz5szR3r179YMf/EBer1fz\n58/XyJEjNWfOHP3v//6vTj75ZK1du1YvvfSSGhsbdd1112nChAlavny5zjnnHN10001atWqVfvOb\n3+jOO+9MVLmdcufaVdvQktTfCQBAPCRsiL6oqEi1tbWSpPr6ehUWFmrnzp0aOXKkJGnSpEkqKytT\neXm5Jk6cKIfDoeLiYvXv319bt25VWVmZpkyZctC+yZaXa1dLIKi2YCjpvxsAgN5IWMBfdtll2rVr\nl6ZMmaLrr79ec+fOVX5+fvT9kpISVVZWqqqqSsXFxdHtxcXFh20vKSnRvn37ElVql9y5zKQHAGSm\nhA3Rv/766zr++OP17LPP6v/+7/80e/ZseTye6PumaXb6uc62d7XvoYqKXLLZrEdXcCfy2gPe6c6R\nt09e3L73WOP1emLvhJhox96jDXuPNoyPZLRjwgK+oqJCEyZMkCQNGzZMLS0tams70BPeu3evSktL\nVVpaqm3btnW6vbKyUh6PJ7otlpqa5rj+DZEe/I5ddbJ38yADB/N6PaqsbEh1GRmPduw92rD3aMP4\niGc7HulAIWFD9AMHDtSmTZskSTt37pTb7dbgwYO1ceNGSdL69es1ceJEnXfeedqwYYNaW1u1d+9e\n7du3T0OGDNH48eP19ttvH7RvskV68MykBwBkmoT14K+55hrNnz9f119/vdra2nTvvffK6/Xq7rvv\nVigU0qhRozRu3DhJ0vTp03X99dfLMAzde++9slgsuuGGG3TnnXfquuuuU35+vh588MFEldqlSA+e\na+EBAJnGMLt7gjsDxHvo6NNvavXwygr94B+G6oLR/eP63ccKhvTig3bsPdqw92jD+Mj4IfpswBA9\nACBTEfBHwBA9ACBTEfBH4KYHDwDIUAT8EUSG6LmjHAAg0xDwR8AQPQAgUxHwR5Bjt8pqMeRjiB4A\nkGEI+CMwDEMup40ePAAg4xDwMbhybGqiBw8AyDAEfAwup51Z9ACAjEPAx+By2tQWDCnQFkx1KQAA\ndBsBH4MrJ7xcP714AEAmIeBjcDnDAc95eABAJiHgY4gEPDPpAQCZhICP4cAQPavZAQAyBwEfg9sZ\nWa6WHjwAIHMQ8DFwwxkAQCYi4GNwRybZ+RiiBwBkDgI+hsgQfSPn4AEAGYSAj8GdG+nBM0QPAMgc\nBHwMBybZ0YMHAGQOAj4Gp8Mqi2EQ8ACAjELAx2AYhty5NmbRAwAyCgHfDW6nnVn0AICMQsB3gzs3\nfE940zRTXQoAAN1CwHeD22lXMGTK38otYwEAmYGA74boYjdMtAMAZAgCvhuil8pxLTwAIEMQ8N1w\nYD16evAAgMxAwHfDgSF6evAAgMxAwHdDpAfPevQAgExBwHfDgXPwBDwAIDMQ8N3AED0AINMQ8N0Q\nGaKnBw8AyBQEfDdEevCsRw8AyBQEfDe4WOgGAJBhCPhusFosys2xqZGFbgAAGYKA7ya300YPHgCQ\nMQj4bnI77QQ8ACBjEPDd5M61qTUQUqAtlOpSAACIiYDvpshiN6xHDwDIBAR8Nx1YrpaJdgCA9EfA\nd1N0NTsWuwEAZAACvpui69EzRA8AyAAEfDcd6MEzRA8ASH8EfDdF16OnBw8AyAAEfDdxRzkAQCYh\n4LuJHjwAIJMQ8N0UnWTHLHoAQAYg4LuJy+QAAJmEgO8mh90qh93CQjcAgIxAwPdAXq5djc304AEA\n6Y+A74G8XLsaGaIHAGQAAr4HPLl2tQSCag0EU10KAABHRMD3QJ7LIUn04gEAaY+A74G8yB3lCHgA\nQJqzJfLL16xZo2eeeUY2m03/+q//qqFDh2ru3LkKBoPyer168MEH5XA4tGbNGi1fvlwWi0XTp0/X\n1VdfrUAgoHnz5mnXrl2yWq164IEHdOKJJyay3Jg87QHfQMADANJcwnrwNTU1WrZsmVauXKmnnnpK\n7777rh577DFdd911WrlypQYOHKjVq1erublZy5Yt0/PPP68VK1Zo+fLlqq2t1RtvvKH8/Hy9+OKL\nuuWWW7R06dJEldpteS4WuwEAZIaEBXxZWZnGjh2rvLw8lZaW6he/+IXKy8t10UUXSZImTZqksrIy\nbdq0SSNGjJDH45HT6dSYMWNUUVGhsrIyTZkyRZI0btw4VVRUJKrUbosM0TdwqRwAIM0lbIh+x44d\n8vv9uuWWW1RfX6/bbrtNPp9PDkd4olpJSYkqKytVVVWl4uLi6OeKi4sP226xWGQYhlpbW6Of70xR\nkUs2mzWuf4fX64k+P6HGL0kyDeOg7Tgy2io+aMfeow17jzaMj2S0Y0LPwdfW1uqJJ57Qrl279P3v\nf1+maUbf6/i8o55u76impvnoCu2C1+tRZWVD9HVba7jnvreq6aDt6NqhbYijQzv2Hm3Ye7RhfMSz\nHY90oJCwIfqSkhKdccYZstlsGjBggNxut9xut/z+cC947969Ki0tVWlpqaqqqqKf27dvX3R7ZWWl\nJCkQCMg0zSP23pPB036ZXIOvNaV1AAAQS8ICfsKECfroo48UCoVUU1Oj5uZmjRs3TuvWrZMkrV+/\nXhMnTtSoUaO0efNm1dfXq6mpSRUVFTrrrLM0fvx4vf3225Kk9957T+eee26iSu22vNzwgAeXyQEA\n0l3Chuj79u2rSy65RNOnT5ckLViwQCNGjNBdd92lVatW6fjjj9e0adNkt9s1Z84czZw5U4ZhaPbs\n2fJ4PJo6dao+/PBDzZgxQw6HQ4sWLUpUqd1mt1mV47CyHj0AIO0ZZndObmeIeJ8b6uw8ydwnP1Qw\nZGrp7PFx/V3ZinN28UE79h5t2Hu0YXxk/Dn4bJWXa+c6eABA2iPgeyjPZVdrW0gt3HAGAJDGCPge\niq5Hz3l4AEAaI+B7iBvOAAAyAQHfQwduOMO18ACA9EXA91D0nvAM0QMA0hgB30PcMhYAkAkI+B5i\nkh0AIBMQ8D0UuSc8k+wAAOmMgO8hD7PoAQAZoFsB/8UXX+idd96RJNXX1ye0oHTnJuABABkg5s1m\nnn/+eb3xxhtqbW3V5MmT9etf/1r5+fmaNWtWMupLOzarRbk5VjVwDh4AkMZi9uDfeOMNvfzyyyoo\nKJAkzZ07Vxs2bEh0XWktL9euRq6DBwCksZgB73a7ZbEc2M1isRz0+liUl+tQoy+gLLoRHwAgy8Qc\noh8wYICeeOIJ1dfXa/369Vq7dq0GDx6cjNrSlsdlV1vQlL81qNycmE0IAEDSxeyK33333crNzVXf\nvn21Zs0ajRo1Svfcc08yaktbrEcPAEh3MbufdrtdM2fO1MyZM5NRT0aIBHxDc0DewtwUVwMAwOG6\nDPhhw4bJMIxO37Narfr0008TVlS6y3eH16Ovb2aiHQAgPXUZ8Fu2bJFpmnrqqac0dOhQnXfeeWpr\na1NZWZm2bduWzBrTTn77DWcamgh4AEB66vIcvNVqlc1mU3l5uaZMmSKPx6OioiJNnTpVn3zySTJr\nTDv57vAQPT14AEC6inkO3ufz6aWXXtKZZ54pi8WiiooK7d+/Pxm1pa3oEH0Tk+wAAOkpZsA/+OCD\neuKJJ/TCCy9IkgYPHqzFixcnvLB0FhmipwcPAEhXMQN+0KBBWrp0aTJqyRie9jvK1XMOHgCQpmIG\n/AUXXNDpbPpjeblau82q3BybGujBAwDSVMyAX7lyZfR5IBBQWVmZWlpaElpUJsh32enBAwDSVsyA\n79+//0GvTzrpJM2cOVM33nhjomrKCPluh/bV+hQKmbJYOl8vAACAVIkZ8GVlZQe93rNnj7755puE\nFZQp8l0OmWZ4udrIrHoAANJFzID/9a9/HX1uGIby8vJ03333JbSoTNBxNTsCHgCQbmIG/OzZs3Xe\neecdtO2dd95JWEGZIjKTvqGpVfKmuBgAAA7RZcDv2LFD27dv1+LFizVv3rzovc/b2tp0//33a/Lk\nyUkrMh0VtPfa65hJDwBIQ10GfGVlpdauXaudO3dq2bJl0e0Wi0XXXnttUopLZ57oevSsZgcASD9d\nBvwZZ5yhM844QxdccMEx31vvDHeUAwCksy4D/umnn9bNN9+sdevWaf369Ye9v2TJkoQWlu4OrEdP\nwAMA0k+XAf+tb31LkjRu3LikFZNJ8lmuFgCQxroM+IkTJ0qSrrzySjU0NKi2tjZpRWWC3BybbFZD\n9c2cgwcApJ+Yl8n98pe/1CuvvKLi4uLoTHrDMPTuu+8mvLh0ZhiGPC4H69EDANJSzIAvLy/XRx99\npJycnGTUk1Hy3Q7trmqSaZqd3pAHAIBUscTaYeDAgYR7F/JdDrW2hdQSCKa6FAAADhKzB3/cccfp\ne9/7ns4880xZrdbo9ttvvz2hhWWCjhPtnI6YTQkAQNLETKXCwkKNHTs2GbVknAPXwgdUWpTiYgAA\n6CBmwM+aNeuwbRZLzJH9Y0JkNTsulQMApJuYAT969GgFAgdfCmYYhgYOHKif//znOvvssxNWXLor\nYDU7AECaihnwt912m/Lz83XJJZfIYrFo/fr1amxs1Nlnn62f//znWrVqVTLqTEsed4c7ygEAkEZi\njrX/4Q9/0DXXXKPCwkLl5+frqquu0h/+8AedfvrpstmO7Yll+dEheha7AQCkl5gB39TUpA0bNqip\nqUk+n08ffvih9u7dq7/+9a9qaWlJRo1pK3rL2KZjux0AAOknZhf8F7/4hX71q1/pxz/+sUzT1Mkn\nn6yFCxeqtrZWP/3pT5NRY9ryuBwyDKmWIXoAQJqJGfCnn366Vq5cedC2devW6ZJLLklYUZnCYjGU\n73aorpEePAAgvcQM+F27dul3v/udampqJEmtra0qLy8n4NsVunO0u5rlagEA6SXmOfi5c+eqsLBQ\nf/7znzV8+HDV1NQc8/eC76ggL7xcra+F5WoBAOkjZsBbrVb96Ec/Up8+ffS9731PTz75pF544YVk\n1JYRCvPC6/Qz0Q4AkE5iBnxLS4v27NkjwzC0fft22Ww27dy5Mxm1ZYTCvPBM+tpGJtoBANJHzHPw\nN910k8rKyjRz5kxdccUVslqtuvzyy5NRW0YoaO/B1zLRDgCQRmIG/OTJk6PP//SnP6mpqUkFBQUJ\nLSqTFEauhacHDwBII10G/BNPPHHED956661xLyYT0YMHAKSjLgP++eefV2lpqS688EINGTJEpmn2\n+Mv9fr8uv/xyzZo1S2PHjtXcuXMVDAbl9Xr14IMPyuFwaM2aNVq+fLksFoumT5+uq6++WoFAQPPm\nzdOuXbtktVr1wAMP6MQTT+zVH5ookXPwdSx2AwBII11Osvvggw908803a8uWLfrtb3+r2tpajR8/\nXldeeaWuvPLKbn35k08+GR3Of+yxx3Tddddp5cqVGjhwoFavXq3m5mYtW7ZMzz//vFasWKHly5er\ntrZWb7zxhvLz8/Xiiy/qlltu0dKlS+Pz1yZAfnSInh48ACB9dBnwTqdTV1xxhf7zP/9Ty5Ytk8/n\n0w9/+EP90z/9k1577bWYX/zll19q69at+va3vy1JKi8v10UXXSRJmjRpksrKyrRp0yaNGDFCHo9H\nTqdTY8aMUUVFhcrKyjRlyhRJ0rhx41RRURGHPzUxbFaLPC47s+gBAGmlW7eD69evnyZPnqzGxka9\n/vrrWrt2raZNm3bEzyxevFgLFy6MHgz4fD45HOHebklJiSorK1VVVaXi4uLoZ4qLiw/bbrFYZBiG\nWltbo5/vSlGRSzabtTt/Urd5vZ6Y+5QU5GpfTXO39j0W0S7xQTv2Hm3Ye7RhfCSjHY8Y8A0NDVqz\nZo1effVVmaapK664Qq+//rr69OlzxC997bXXNHr06C7Pm3d1Pr+n2w9VU9Pcrf26y+v1qLKyIeZ+\neU6bvvK3acfOWuU44nuAkem624Y4Mtqx92jD3qMN4yOe7XikA4UuA37OnDn68ssvdf7552vJkiUa\nPHhwt3/hhg0btH37dm3YsEF79uyRw+GQy+WS3++X0+nU3r17VVpaqtLSUlVVVUU/t2/fPo0ePVql\npaWqrKzUsGHDFAgEZJpmzN57KhVEFrtpalFfhyvF1QAAcISA/+STTyRJb7zxht58883o9shNVd59\n990uv/SRRx6JPn/88cfVv39/ffLJJ1q3bp2uuOIKrV+/XhMnTtSoUaO0YMEC1dfXy2q1qqKiQvPn\nz1djY6PefvttTZw4Ue+9957OPffcePytCRNdrraxVX2LCHgAQOp1GfC///3v4/qLbrvtNt11111a\ntWqVjj/+eE2bNk12u11z5szRzJkzZRiGZs+eLY/Ho6lTp+rDDz/UjBkz5HA4tGjRorjWEm9FnnDA\n1zQwkx4AkB4M82gucE9T8T431N3zJJ98UanHX92s6ZOG6B/OHRDXGjId5+zig3bsPdqw92jD+EjW\nOfiYN5tBbEX54R78/gZ/iisBACCMgI+DIo9TklTLED0AIE3EDPhPP/1U7733niTp3//93/WDH/xA\nGzduTHhhmcTjsstqMTgHDwBIGzED/pe//KUGDRqkjRs3avPmzVq4cKEee+yxZNSWMSyGocK8HO0n\n4AEAaSJmwOfk5Oikk07Su+++q+nTp2vIkCGyWBjZP1RRfo7qGlsVCmXNnEUAQAaLmdQ+n09vvfWW\n3nnnHU2YMEG1tbWqr69PRm0ZpdiTo5Bpclc5AEBaiBnwP/nJT/Q///M/+vGPf6y8vDytWLFCN954\nYxJKyyxcCw8ASCcxbzZz3nnnafjw4crLy1NVVZXGjh2rMWPGJKO2jFKUFwl4v6T81BYDADjmxezB\n/+IXv9Bbb72l2tpaXXvttfrd736ne++9NwmlZZai/PClcky0AwCkg5gB/9lnn+nqq6/WW2+9pSuv\nvFKPPPKIvv7662TUllEYogcApJOYAR9ZyXbDhg268MILJUmtrUwkO1Rxe8Cz2A0AIB3EDPhBgwZp\n6tSpampq0mmnnabXXntNBQUFyagto+S7HTLEED0AID3EnGT3y1/+Ul988UX0fvBDhgzRkiVLEl5Y\nprFZLcrPc2h/PevRAwBSL2bA+/1+/f73v9ejjz4qwzA0evRoDRkyJBm1ZZySfKe+3tOgkGnKYhip\nLgcAcAyLOUS/cOFCNTY26tprr9X06dNVVVWlBQsWJKO2jFOS71QwZKqukTkKAIDUitmDr6qq0sMP\nPxx9PWnSJN1www0JLSpTlRSEL5WrrvNHZ9UDAJAK3Vqq1ufzRV83NzerpYWJZJ0pab8WvqreF2NP\nAAASK2YP/pprrtGll16q4cOHS5K2bNmi22+/PeGFZaKOPXgAAFIpZsBfddVVGj9+vLZs2SLDMLRw\n4UL17ds3GbVlnD7tPfjqekY4AACpFTPgJalfv37q169f9PVDDz2kO+64I2FFZSp68ACAdHFUN3b/\ny1/+Eu86skJujk2uHJuquRYeAJBiRxXwkeVrcbiSAqeq6/y0EQAgpY4q4A0WcelSSb5TLYGgmvxt\nqS4FAHAM6/Ic/AUXXNBpkJumqZqamoQWlck6nofPy7WnuBoAwLGqy4BfuXJlMuvIGtFr4ev8Gnic\nJ8XVAACOVV0GfP/+/ZNZR9boE+nBM9EOAJBCR3UOHl2LDNFX1bKaHQAgdQj4OCstypUkVRLwAIAU\nIuDjzO20y+20aR8BDwBIIQI+AfoU5qqy1q8Q18IDAFKEgE+A0sJctQVDqm1gTXoAQGoQ8AnAeXgA\nQKoR8AngLQwH/L4aAh4AkBoEfAKURgKeHjwAIEUI+ARgiB4AkGoEfAIUenJks1oIeABAyhDwCWAx\nDHkLnZyDBwCkDAGfIN7CXDX529TsD6S6FADAMYiAT5DIefi99OIBAClAwCdIvxK3JGl3dVOKKwEA\nHIsI+AQ5rtglSdpd3ZziSgAAxyICPkH6lYQDfs9+Ah4AkHwEfIIUuB1yOqzaQw8eAJACBHyCGIah\nfiUu7a1pVijEXeUAAMlFwCfQccVutQVNVdUxkx4AkFwEfAIdV8JEOwBAahDwCdSvmIl2AIDUIOAT\niB48ACBVCPgE6luUK8NgsRsAQPIR8Alkt1nVt8ilHZVNMk1m0gMAkoeAT7ATSvPka2lTTUNLqksB\nABxDCPgEO8EbXpN+R2VjiisBABxLCPgEO8GbJ0navo+ABwAkDwGfYCeUhgN+ZyUT7QAAyWNL5Jcv\nWbJEH3/8sdra2nTzzTdrxIgRmjt3roLBoLxerx588EE5HA6tWbNGy5cvl8Vi0fTp03X11VcrEAho\n3rx52rVrl6xWqx544AGdeOKJiSw3IfoUOJVjt2o7Q/QAgCRKWMB/9NFH+tvf/qZVq1appqZGV155\npcaOHavrrrtOl156qR5++GGtXr1a06ZN07Jly7R69WrZ7XZdddVVmjJlit577z3l5+dr6dKl+uCD\nD7R06VI98sgjiSo3YSyGoRO8bn21p0FtwZBsVgZNAACJl7C0Ofvss/Xoo49KkvLz8+Xz+VReXq6L\nLrpIkjRp0iSVlZVp06ZNGjFihDwej5xOp8aMGaOKigqVlZVpypQpkqRx48apoqIiUaUmXH9vnoIh\nkwVvAABJk7AevNVqlcsVXslt9erVOv/88/XBBx/I4XBIkkpKSlRZWamqqioVFxdHP1dcXHzYdovF\nIsMw1NraGv18Z4qKXLLZrHH9O7xeT6+/47STS/SHTbtU52/TmDh8X6aJRxuCdowH2rD3aMP4SEY7\nJvQcvCS98847Wr16tZ577jldfPHF0e1dLfzS0+0d1dTEt4fs9XpUWdnQ6+8pdtslSX/5Yp+GDyjs\n9fdlkni14bGOduw92rD3aMP4iGc7HulAIaEnhN9//3099dRT+s1vfiOPxyOXyyW/3y9J2rt3r0pL\nS1VaWqqqqqroZ/bt2xfdXllZKUkKBAIyTfOIvfd0NqCvRxbD0Fd7+A8DAJAcCQv4hoYGLVmyRE8/\n/bQKC8O91nHjxmndunWSpPXr12vixIkaNWqUNm/erPr6ejU1NamiokJnnXWWxo8fr7fffluS9N57\n7+ncc89NVKkJl2O36vg+bn2zp0HBUCjV5QAAjgEJG6Jfu3atampq9G//9m/RbYsWLdKCBQu0atUq\nHX/88Zo2bZrsdrvmzJmjmTNnyjAMzZ49Wx6PR1OnTtWHH36oGTNmyOFwaNGiRYkqNSkG9fNoR2Wj\ndlU168T2a+MBAEgUw8yiu6DE+9xQPM+TbPhkp3677q+68dJhOn/U8XH5zkzAObv4oB17jzbsPdow\nPrLiHDwOGNQvX5L01e76FFcCADgWEPBJ0t/rls1q0bbdHP0CABKPgE8Sm9WiAX3ztKOyUa2BYKrL\nAQBkOQI+iYb0L1AwZOrvuximBwAkFgGfRENPDF8u+MX22hRXAgDIdgR8Ep3SHvB/JeABAAlGwCdR\nXq5dJ3jd+nJnndqCLHgDAEgcAj7JTj2xUK1tIZatBQAkFAGfZKdyHh4AkAQEfJJFJtp99tX+FFcC\nAMhmBHySFeTlaEDfPH2xvVb+1rZUlwMAyFIEfAqMHFyitqCpz7+uSXUpAIAsRcCnwMiT+0iSNn9Z\nneJKAADZioBPgZOPz5fbadNf/l6tLLqZHwAgjRDwKWCxGBp+con217doR2VTqssBAGQhAj5FRg8J\nD9P/v//bl+JKAADZiIBPkdFD+ijHblX5Z3sYpgcAxB0BnyI5DqvOOKWPKmv93CMeABB3BHwKnfOt\nvpKkjz7bk+JKAADZhoBPoeGDiuV22vSnz/Yq0MbNZwAA8UPAp5DNatGEkf1U3xzQRibbAQDiiIBP\nsUljTpAh6Z2Pd6S6FABAFiHgU6y0MFejhvTRtt31+nJXXarLAQBkCQI+DUw+6wRJ0psffp3iSgAA\n2YKATwOnDSzSqScU6M9bq7hPPAAgLgj4NGAYhq6aNESStPp/v2ThGwBArxHwaWJI/wKdcUofbd1R\npz9u5rp4AEDvEPBpZMbkU+R0WPXiu19of70/1eUAADIYAZ9G+hTkasZFp8jXEtR/rNnC4jcAgKNG\nwKeZCSP76exhpfpiR52eW/u5QpyPBwAcBVuqC8DBDMPQzMtOU01Di8o/2yurxdCNlw6TzcqxGACg\n+0iNNOSwW/WvV43UoH75+vDTPXropT+rqtaX6rIAABmEgE9Tebl2zb3uDJ051Ksvttdq4bN/0v/8\ncZua/YFUlwYAyAAM0aexHLtmET2sAAASVklEQVRVs6YN10db9urFd/+m/35/m9aWf6MzT/XqzFO9\nOuXEQuXl2lNdJgAgDRHwac4wDI0dfpxGn9JHGz7Zqd9X7NCHn+7Rh5+Gr5XvV+JS/z5u9S126bhi\nl0qLcuUtzFWB2yHDMFJcPQAgVQj4DJGbY9Ol5w3UJecO0N931mvLV/v1tx21+vuueu2ubj5sf7vN\noj4FTnkLczs85spbGH6em8M/egDIZvxfPsNYDENDTijQkBMKJEmmaaq2sVV79jdr7/5mVdb6wj91\nflXV+joNfyl8jr9PgVOlRbk6rtil40pc6lfsVt/iXDkd/GsBAJmO/5NnOMMwVOTJUZEnR6cNLDrs\n/WZ/QJW1flXV+VRZ61dlXfgAoKrWrx2VjfpqT8Nhnyny5IRDP/JTEn4syXfKYmHYHwAyAQGf5VxO\nuwYeZ9fA4zyHvRcyTe2v92vP/mbtrm7Wnv3N2tP++PnXNfr865qD9rdZLepbnHtY+PcrdsnlZLIf\nAKQTAv4YZjEM9SkIn5sfPqjkoPdaWoPhwO/40x7+OyubDvuufJe9Q2/frb5FuepTmCu3x5msPwcA\n0AEBj07lOKwaeJznsJ5/9Jx/dVO4598h/P+2o05f7Kg77Lsi5/v7FObKe8hjSb5TdhvLMQBAvBHw\n6JGDzvmfVHzQe4G2oPbW+LSnujk60a++OaCdlY1dnu83JBV6csIHAO2z/Ds+Fnocslo4AACAniLg\nETd2m1UnePN0gjcvus3r9aiyskEh01RdY2t4gl9deJJfZftjVZ1PW3fW6W+d9P4NIzzprzjfqZJ8\np4rzc8KPnvbnBU65cmxc8w8AhyDgkRSWDj3/U08sPOz9tmBI++v90cv7qur8qq73a3+dX9X1Lfr7\nznpt7eQAQAqfTjgo/POdKunwvMiTw816ABxzCHikBZvVotIil0qLXJ2+HwqZqm1s0f76FlXX+6M/\nkQOA/fV+7ao6fPJfhMdlV1FejgrbDzIizwvzcqIHHm4nIwEAsgcBj4xgsRgqbu+RD1FBp/v4Wtq0\nv/5A4EcOAmobWlTT0KI9Nc36Zl9jl7/DbrOoMM/R5YFAYZ5DBe4c5TisifozASBuCHhkjdwcm/p7\n89S/wxyAjkzTlK+lTTUNLaptbFVNQ4tqGluiBwCR53/bUSfzCL8nx2FVgduhfLdDBR1+wq9zVJAX\nfu1xObhCAEDKEPA4ZhiGIZfTLpfTrv7ervdrC4ZU39R6WPjXN7aqrrk1/NjUqi9r62Qe6UhAkttp\nix4IRA4A8t12eVwOeVwdHnPtymWyIIA4IuCBQ9islujpgCMJhUw1+gKqa2pVXVOL6hpbVd/cGn5s\nCh8ERB67uidAR1aLobz2sD8Q/A7luezqV+qREQopL9cePTDIy7VxCSGALhHwwFGyWAzlt/fMT1Tn\npwUi2oIhNTQHogcCjb6AGpoDamhuVUNzoP11+Hl1vV87OlktsDNup015ueFRCXeuTXlOu9xOu1xO\nm9y5drmdNrnb3ws/hrdxVQGQ/Qh4IAlsVkt0tn53RA4IGprDBwOGzaqde+oPOxho8AXU5Auoqs6v\nYCjG+YIOcuxWuXNtcuXYlZd74CDA5QwfAOTmHPhxRZ9b5cqxyZljk4VTCUDaI+CBNHToAUFkwaCu\nmKap1kBITf6AmvxtavIFDjz3B9TkizwevK2qzqcdlcEe1+d0WA8J/wMHAF0dHDgdNjkdVjkdVuU4\nrHLYrRwoAAlEwANZwDAM5bQHZ3F+zz7bFgypuaUtGv7N/oCaW9rkawnK19ImX0tb++s2+VuC0ee+\nljbVNrZoV3VTzMmGndYsyeGwymkP1+2MPrdFDwKcdqucOVbl2A8cIISfh19H/uYcm0UOu1UOu4V5\nCUA7Ah44xtmsFuW7HMp3OY7q86ZpqiUQlO+Q8O94YOBrCaqlNSh/a5taAkH5W8M/kW3+QFD1Ta1q\naQ0e8RLF7rBajGjY59jCjw67VXkuh2Sa4fciBwTtjzl2ixwd9nXY2re1f4/dapHdZpGt/THyw8EE\n0llaB/z999+vTZs2yTAMzZ8/XyNHjkx1SQAOYRhGe+/a1u05Bl0JmaYCgVA09FtaOxwMBILyt4S3\nRw4OIgcIrW0htQaC0ceWQEitbUEF2sKnLVoCIbUFQ3H6iw8wjPACSXarRTbbgQMBe4fnB23v5EDh\n0Oc2qyGbNXzwYLMasloN2Szh96zR94wD+x362mJwuSUkpXHA/+lPf9LXX3+tVatW6csvv9T8+fO1\natWqVJcFIIEsHU41dL5e4dErLsnTrt21ag20HwREDgo6HBi0BkJqaQtG92ltfx5oCykQDKmt7cDz\njo9tkddtIfmbA9HXPZn4GE9WS8cDA6PDQcCB1zZL+6PVkNUSft/S/mO1GLIYRnRb5DHPnaOWlkCX\n73d8bjUOvLZaLZ3ubz3k91kshgwj/O+BYYSvVIk+N8IHLh33sRiKbos+b9+fg5w0DviysjJNnjxZ\nkjR48GDV1dWpsbFReXlHvhwJADpjtURGGpL3O0OmGT4o6HAA0NbF80CHg4K2YEjBoKm2UEhtQVPB\n4IHtkddtQVPB9vfb2t+PbD/wucg+4detgUD79xz4TLYypIMPGNoPAqIHCkc4OLBYDtnHMGSxhJ9H\nDh4sktRhn8h2QwdeRyaRdqzhwjP6y+v1JKUN0jbgq6qqdPrpp0dfFxcXq7KykoAHkDEsRmQ+QHre\nv8A0zfCBQchUqLNH8+DX+QW5qq5uat8W6nSfI35fyFTIPHx7KBQ+KDHN8EGRGTIVijw3TYVCkqnw\nfpF9Oj43D9q3wz6R90KH7GMqum/Hz0fqOWifyO/v8H1m+3tHc3h0XHGuJp41IO7/LDuTtgF/KLMb\n03SLilyy2eL7H1KyjrSyGW0YH7Rj79GGvTfkhMNv93ws63gwcPDzQ98LP+a7w0NIyfh3MW0DvrS0\nVFVVVdHX+/btk9d7hAXEJdXUxF4OtCdiXXuM2GjD+KAde4827D3asPeqfK1xbccjHSik7TUe48eP\n17p16yRJW7ZsUWlpKcPzAAB0U9r24MeMGaPTTz9d1157rQzD0D333JPqkgAAyBhpG/CSdMcdd6S6\nBAAAMlLaDtEDAICjR8ADAJCFCHgAALIQAQ8AQBYi4AEAyEIEPAAAWYiABwAgCxHwAABkIcPszl1c\nAABARqEHDwBAFiLgAQDIQgQ8AABZiIAHACALEfAAAGQhAh4AgCyU1veDT6X7779fmzZtkmEYmj9/\nvkaOHJnqktLaF198oVmzZunGG2/U9ddfr927d2vu3LkKBoPyer168MEH5XA4tGbNGi1fvlwWi0XT\np0/X1VdfnerS08aSJUv08ccfq62tTTfffLNGjBhBG/aAz+fTvHnzVF1drZaWFs2aNUvDhg2jDY+C\n3+/X5ZdfrlmzZmns2LG0YQ+Vl5fr9ttv1ymnnCJJOvXUU3XTTTclvx1NHKa8vNz80Y9+ZJqmaW7d\nutWcPn16iitKb01NTeb1119vLliwwFyxYoVpmqY5b948c+3ataZpmubSpUvNF154wWxqajIvvvhi\ns76+3vT5fOZll11m1tTUpLL0tFFWVmbedNNNpmma5v79+80LLriANuyhN9980/yP//gP0zRNc8eO\nHebFF19MGx6lhx9+2Pzud79rvvLKK7ThUfjoo4/M22677aBtqWhHhug7UVZWpsmTJ0uSBg8erLq6\nOjU2Nqa4qvTlcDj0m9/8RqWlpdFt5eXluuiiiyRJkyZNUllZmTZt2qQRI0bI4/HI6XRqzJgxqqio\nSFXZaeXss8/Wo48+KknKz8+Xz+ejDXto6tSp+ud//mdJ0u7du9W3b1/a8Ch8+eWX2rp1q7797W9L\n4r/leElFOxLwnaiqqlJRUVH0dXFxsSorK1NYUXqz2WxyOp0HbfP5fHI4HJKkkpISVVZWqqqqSsXF\nxdF9aNcDrFarXC6XJGn16tU6//zzacOjdO211+qOO+7Q/PnzacOjsHjxYs2bNy/6mjY8Olu3btUt\nt9yiGTNm6I9//GNK2pFz8N1gsppvr3TVfrTr4d555x2tXr1azz33nC6++OLodtqw+1566SV9/vnn\nuvPOOw9qH9owttdee02jR4/WiSee2On7tGH3nHTSSbr11lt16aWXavv27fr+97+vYDAYfT9Z7UjA\nd6K0tFRVVVXR1/v27ZPX601hRZnH5XLJ7/fL6XRq7969Ki0t7bRdR48encIq08v777+vp556Ss88\n84w8Hg9t2EOffvqpSkpK1K9fP5122mkKBoNyu920YQ9s2LBB27dv14YNG7Rnzx45HA7+PTwKffv2\n1dSpUyVJAwYMUJ8+fbR58+aktyND9J0YP3681q1bJ0nasmWLSktLlZeXl+KqMsu4ceOibbh+/XpN\nnDhRo0aN0ubNm1VfX6+mpiZVVFTorLPOSnGl6aGhoUFLlizR008/rcLCQkm0YU9t3LhRzz33nKTw\nabbm5mbasIceeeQRvfLKK3r55Zd19dVXa9asWbThUVizZo2effZZSVJlZaWqq6v13e9+N+ntyN3k\nuvDQQw9p48aNMgxD99xzj4YNG5bqktLWp59+qsWLF2vnzp2y2Wzq27evHnroIc2bN08tLS06/vjj\n9cADD8hut+vtt9/Ws88+K8MwdP311+s73/lOqstPC6tWrdLjjz+uQYMGRbctWrRICxYsoA27ye/3\n62c/+5l2794tv9+vW2+9VcOHD9ddd91FGx6Fxx9/XP3799eECRNowx5qbGzUHXfcofr6egUCAd16\n66067bTTkt6OBDwAAFmIIXoAALIQAQ8AQBYi4AEAyEIEPAAAWYiABwAgCxHwQIbZsWOHhg8frhtu\nuOGgn2eeeSZuv6O8vFwzZsyIud/QoUP15JNPHrTthhtu0I4dO3pdw4UXXqivv/66198DHKtYyQ7I\nQMXFxVqxYkWqy1BJSYlee+01TZs2Tf369Ut1OQA6IOCBLPOtb31Ls2bNUnl5uZqamrRo0SKdeuqp\n2rRpkxYtWiSbzSbDMHT33XdryJAh+uqrr7Rw4UKFQiHl5OTogQcekCSFQiHdc889+vzzz+VwOPT0\n00/L7XYf9LucTqduu+02LVq0KHo3vIjy8nI98sgjevHFFyVJ8+bN05lnnqmxY8fq5ptv1vjx47Vx\n40YVFRXpO9/5jl5//XXt3LlTjz76aHRhqf/6r//S5s2bVV1drYULF+rcc8/Vrl27dN9998nn86m5\nuVk/+clPNG7cOM2bN08Oh0Pbtm3TQw89pL59+yahtYH0xRA9kGWCwaBOOeUUrVixQjNmzNBjjz0m\nSZo7d65++tOfasWKFfrhD3+o++67T5J0zz33aObMmXrhhRf0j//4j3rrrbckhW8betttt+nll1+W\nzWbTBx980Onvu/zyy1VdXa2ysrJu17ht2zbNmDFDr776qrZt26bt27frueee0+WXX65XXnklul9h\nYaGWL1+un/3sZ1q8eLEk6d5779UPf/hD/fa3v9WTTz6pBQsWqK2tTZLU3NysFStWEO6A6MEDGWn/\n/v264YYbDtp25513auTIkZKkCRMmSJLGjBmjZ599VvX19aquro6+f8455+gnP/mJJOkvf/mLzjnn\nHEnSZZddJinc+z755JPVp08fSdJxxx2n+vr6LutZsGCB5s6dq1dffbVb9RcVFUWX5e3bt6/GjBkT\n/T27du2K7jd+/HhJ0hlnnKGtW7dGa2tqatKyZcskhW9XXF1dHd0PQBgBD2SgWOfgO65AbRiGDMPo\n8n0pPBx/KKvV2u16hg0bprPPPlu/+93vDvq9HQUCgS6/u+PrQ2uPbLNYwgOODodDjz/++EH30Y6I\n3G8bAEP0QFb66KOPJEkff/yxhg4dKo/HI6/Xq02bNkmSysrKorelHDNmjN5//31J0tq1a/Xwww8f\n1e+8/fbb9cILL0R703l5edq7d69M05TP54v+7qP5OyoqKnTKKadIks4888zoaYT9+/frV7/61VHV\nC2Q7evBABupsiP6EE06ITpD77LPP9OKLL6quri567nrx4sVatGiRrFarLBaL7r33XknSwoULtXDh\nQq1cuVI2m03333+/vvnmmx7XlJ+frx/96EdasGCBpHCvfujQobryyis1YMCAoxo+r62t1c0336xd\nu3bpnnvukST97Gc/0913360333xTra2t+pd/+Zcefy9wLOBuckCWGTp0qLZs2SKbjeN34FjGED0A\nAFmIHjwAAFmIHjwAAFmIgAcAIAsR8AAAZCECHgCALETAAwCQhQh4AACy0P8Hk++cDIb+P5UAAAAA\nSUVORK5CYII=\n",
"text/plain": [
"<Figure size 576x396 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"metadata": {
"id": "fiChBf_nnPH3",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
},
"outputId": "4c6a7437-0a0c-4760-9a5e-1620efd2a16d"
},
"cell_type": "code",
"source": [
"#using the model to predict values\n",
"print(model.predict([100.0])) # C=100 then 100*1.8 + 32 = 212 F"
],
"execution_count": 41,
"outputs": [
{
"output_type": "stream",
"text": [
"[[211.27309]]\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "L85CRA9knb2n",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
},
"outputId": "a67d296e-9afe-4c08-c05f-33d6e9caa05e"
},
"cell_type": "code",
"source": [
"# printing the layer's wieghts\n",
"print(\"These are the layer variables: {}\".format(l0.get_weights()))"
],
"execution_count": 42,
"outputs": [
{
"output_type": "stream",
"text": [
"These are the layer variables: [array([[1.8295846]], dtype=float32), array([28.314615], dtype=float32)]\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "5HJmP8Y2n57u",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 252
},
"outputId": "a865ccae-df30-4f65-c755-9573bea7d859"
},
"cell_type": "code",
"source": [
"#same question with a network consisting of 3 layers\n",
"l0 = tf.keras.layers.Dense(units=4, input_shape=[1]) \n",
"l1 = tf.keras.layers.Dense(units=4) \n",
"l2 = tf.keras.layers.Dense(units=1) \n",
"model = tf.keras.Sequential([l0, l1, l2])\n",
"model.compile(loss='mean_squared_error', optimizer=tf.keras.optimizers.Adam(0.1))\n",
"model.fit(celsius_q, fahrenheit_a, epochs=500, verbose=False)\n",
"print(\"Finished training the model\")\n",
"print(model.predict([100.0]))\n",
"print(\"Model predicts that 100 degrees Celsius is: {} degrees Fahrenheit\".format(model.predict([100.0])))\n",
"print(\"These are the l0 variables: {}\".format(l0.get_weights()))\n",
"print(\"These are the l1 variables: {}\".format(l1.get_weights()))\n",
"print(\"These are the l2 variables: {}\".format(l2.get_weights()))"
],
"execution_count": 43,
"outputs": [
{
"output_type": "stream",
"text": [
"Finished training the model\n",
"[[211.74744]]\n",
"Model predicts that 100 degrees Celsius is: [[211.74744]] degrees Fahrenheit\n",
"These are the l0 variables: [array([[ 0.11886942, 0.39965937, -0.00799514, 0.9748402 ]],\n",
" dtype=float32), array([-0.17118008, -2.9629612 , 3.774444 , 4.1538696 ], dtype=float32)]\n",
"These are the l1 variables: [array([[-0.7561283 , -0.7270812 , -0.2780351 , -0.30588064],\n",
" [-0.8187909 , -0.81433845, -0.9298544 , -0.6043319 ],\n",
" [-0.65159273, -1.3852755 , 1.1964502 , 1.0256932 ],\n",
" [ 0.7570428 , 0.5584365 , 1.620353 , 1.2510146 ]],\n",
" dtype=float32), array([2.110103 , 0.09745803, 3.7487016 , 3.9566555 ], dtype=float32)]\n",
"These are the l2 variables: [array([[ 0.24070185],\n",
" [-0.1396056 ],\n",
" [ 0.9876663 ],\n",
" [ 0.6304894 ]], dtype=float32), array([3.673853], dtype=float32)]\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "IIRwmhhop0v-",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
""
],
"execution_count": 0,
"outputs": []
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment