Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
DNN approach to Conway’s Game of Life
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "GoL.ipynb",
"provenance": [],
"authorship_tag": "ABX9TyMzBS45UQCmDGtkwwQAVRtz",
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/failure-to-thrive/61048f3407836cc91ab1430eb8e342d9/gol.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "nT8e7omBzjsI",
"colab_type": "text"
},
"source": [
"<img src=\"data:image/gif;base64,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\" title=\"Algorithm (left) and DNN (right) outputs\"/>"
]
},
{
"cell_type": "code",
"metadata": {
"id": "PXdSex1kfFCk",
"colab_type": "code",
"colab": {}
},
"source": [
"# Initializating\n",
"\n",
"from tensorflow.keras.models import Sequential\n",
"from tensorflow.keras.layers import Conv2D\n",
"from tensorflow.keras.layers import Dense\n",
"from tensorflow.keras.optimizers import SGD\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"\n",
"w = 10\n",
"h = 10\n",
"\n",
"b = 1\n",
"\n",
"def next_age(x, y):\n",
" for r in range(x.shape[0]):\n",
" for c in range(x.shape[1]):\n",
" count = x[max(r - 1, 0) : r + 1 + 1, max(c - 1, 0) : c + 1 + 1].sum() - x[r, c]\n",
" y[r, c] = (x[r, c] and count == 2) or count == 3\n",
"\n",
"def oxygen():\n",
" while True:\n",
" x = (np.random.rand(b, h, w, 1) > 0.5).astype(float)\n",
" y = np.empty_like(x)\n",
" for i in range(b):\n",
" next_age(x[i], y[i])\n",
" yield(x, y)"
],
"execution_count": 1,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "NvQdvFNZg4SB",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 810
},
"outputId": "bd91247d-cf36-4f27-fd56-656e6ffdd511"
},
"source": [
"# Composing and training the model\n",
"\n",
"model = Sequential()\n",
"model.add(Conv2D(2, (3, 3), padding='same', activation='tanh'))\n",
"model.add(Dense(1))\n",
"model.compile(loss='mean_squared_error', optimizer=SGD(lr=.1))\n",
"\n",
"r = model.fit(oxygen(), verbose=1, epochs=10, steps_per_epoch=1000)\n",
"plt.plot(r.history['loss'])\n",
"\n",
"model.summary()"
],
"execution_count": 2,
"outputs": [
{
"output_type": "stream",
"text": [
"Epoch 1/10\n",
"1000/1000 [==============================] - 3s 3ms/step - loss: 0.1933\n",
"Epoch 2/10\n",
"1000/1000 [==============================] - 3s 3ms/step - loss: 0.1226\n",
"Epoch 3/10\n",
"1000/1000 [==============================] - 3s 3ms/step - loss: 0.0439\n",
"Epoch 4/10\n",
"1000/1000 [==============================] - 4s 4ms/step - loss: 0.0220\n",
"Epoch 5/10\n",
"1000/1000 [==============================] - 4s 4ms/step - loss: 0.0132\n",
"Epoch 6/10\n",
"1000/1000 [==============================] - 3s 3ms/step - loss: 0.0091\n",
"Epoch 7/10\n",
"1000/1000 [==============================] - 3s 3ms/step - loss: 0.0067\n",
"Epoch 8/10\n",
"1000/1000 [==============================] - 3s 3ms/step - loss: 0.0052\n",
"Epoch 9/10\n",
"1000/1000 [==============================] - 3s 3ms/step - loss: 0.0041\n",
"Epoch 10/10\n",
"1000/1000 [==============================] - 3s 3ms/step - loss: 0.0034\n",
"Model: \"sequential\"\n",
"_________________________________________________________________\n",
"Layer (type) Output Shape Param # \n",
"=================================================================\n",
"conv2d (Conv2D) (None, None, None, 2) 20 \n",
"_________________________________________________________________\n",
"dense (Dense) (None, None, None, 1) 3 \n",
"=================================================================\n",
"Total params: 23\n",
"Trainable params: 23\n",
"Non-trainable params: 0\n",
"_________________________________________________________________\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "yjPcw4CVhDlD",
"colab_type": "code",
"colab": {}
},
"source": [
"# Playing the game\n",
"\n",
"x = (np.random.rand(1, h, w, 1) > 0.75).astype(float)\n",
"for _ in range(10):\n",
"\n",
" y = np.empty_like(x)\n",
" next_age(x[0], y[0])\n",
" plt.subplot(1, 2, 1)\n",
" plt.imshow(np.pad(y[0], ((0, 0), (0, 0), (1, 1))))\n",
"\n",
" y1 = model.predict(x)\n",
" plt.subplot(1, 2, 2)\n",
" plt.imshow(np.pad(y1[0], ((0, 0), (0, 0), (1, 1))))\n",
" \n",
" plt.show(block = True)\n",
" x = y"
],
"execution_count": null,
"outputs": []
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment