| @@ -470,8 +470,10 @@ class PrologKB(KBBase): | |||
| try: | |||
| import pyswip | |||
| except IndexError: | |||
| print("A Prolog-based knowledge base is used. You need to install Swi-Prolog from https://www.swi-prolog.org/Download.html") | |||
| except (IndexError, ImportError): | |||
| print("A Prolog-based knowledge base is in use. Please install Swi-Prolog \ | |||
| using the command 'sudo apt-get install swi-prolog' for Linux users, \ | |||
| or download it from https://www.swi-prolog.org/Download.html for Windows and Mac users.") | |||
| self.prolog = pyswip.Prolog() | |||
| self.pl_file = pl_file | |||
| @@ -101,28 +101,28 @@ As illustrations, we show four equations in the training dataset: | |||
| for i, x in enumerate(true_train_equation_with_length_5[0]): | |||
| plt.subplot(1, 5, i+1) | |||
| plt.axis('off') | |||
| plt.imshow(x.transpose(1, 2, 0)) | |||
| plt.imshow(x.squeeze(), cmap='gray') | |||
| plt.show() | |||
| print(f"First true equation with length 8 in the training dataset:") | |||
| for i, x in enumerate(true_train_equation_with_length_8[0]): | |||
| plt.subplot(1, 8, i+1) | |||
| plt.axis('off') | |||
| plt.imshow(x.transpose(1, 2, 0)) | |||
| plt.imshow(x.squeeze(), cmap='gray') | |||
| plt.show() | |||
| false_train_equation_with_length_5 = false_train_equation[5] | |||
| false_train_equation_with_length_8 = false_train_equation[8] | |||
| print(f"First false equation with length 5 in the training dataset:") | |||
| for i, x in enumerate(false_train_equation_with_length_5[0]): | |||
| plt.subplot(1, 5, i+1) | |||
| plt.axis('off') | |||
| plt.imshow(x.transpose(1, 2, 0)) | |||
| plt.imshow(x.squeeze(), cmap='gray') | |||
| plt.show() | |||
| print(f"First false equation with length 8 in the training dataset:") | |||
| for i, x in enumerate(false_train_equation_with_length_8[0]): | |||
| plt.subplot(1, 8, i+1) | |||
| plt.axis('off') | |||
| plt.imshow(x.transpose(1, 2, 0)) | |||
| plt.imshow(x.squeeze(), cmap='gray') | |||
| plt.show() | |||
| @@ -135,8 +135,6 @@ Out: | |||
| .. image:: ../img/hed_dataset1.png | |||
| :width: 300px | |||
| Out: | |||
| .. code:: none | |||
| :class: code-out | |||
| @@ -145,8 +143,6 @@ Out: | |||
| .. image:: ../img/hed_dataset2.png | |||
| :width: 480px | |||
| Out: | |||
| .. code:: none | |||
| :class: code-out | |||
| @@ -155,8 +151,6 @@ Out: | |||
| .. image:: ../img/hed_dataset3.png | |||
| :width: 300px | |||
| Out: | |||
| .. code:: none | |||
| :class: code-out | |||
| @@ -102,9 +102,9 @@ illstrations: | |||
| for i, x in enumerate(X_1000): | |||
| plt.subplot(1, len(X_1000), i+1) | |||
| plt.axis('off') | |||
| plt.imshow(x.numpy().transpose(1, 2, 0)) | |||
| plt.imshow(x.squeeze(), cmap='gray') | |||
| plt.show() | |||
| print(f"gt_pseudo_label in the 1001st data example (a list of pseudo-labels): {gt_pseudo_label_1000}") | |||
| print(f"gt_pseudo_label in the 1001st data example (a list of ground truth pseudo-labels): {gt_pseudo_label_1000}") | |||
| print(f"Y in the 1001st data example (the computed result): {Y_1000}") | |||
| print() | |||
| X_3000, gt_pseudo_label_3000, Y_3000 = train_X[3000], train_gt_pseudo_label[3000], train_Y[3000] | |||
| @@ -112,9 +112,9 @@ illstrations: | |||
| for i, x in enumerate(X_3000): | |||
| plt.subplot(1, len(X_3000), i+1) | |||
| plt.axis('off') | |||
| plt.imshow(x.numpy().transpose(1, 2, 0)) | |||
| plt.imshow(x.squeeze(), cmap='gray') | |||
| plt.show() | |||
| print(f"gt_pseudo_label in the 3001st data example (a list of pseudo-labels): {gt_pseudo_label_3000}") | |||
| print(f"gt_pseudo_label in the 3001st data example (a list of ground truth pseudo-labels): {gt_pseudo_label_3000}") | |||
| print(f"Y in the 3001st data example (the computed result): {Y_3000}") | |||
| @@ -125,7 +125,7 @@ Out: | |||
| X in the 1001st data example (a list of images): | |||
| .. image:: ../img/hwf_dataset1.png | |||
| :width: 300px | |||
| :width: 210px | |||
| .. code:: none | |||
| :class: code-out | |||
| @@ -139,7 +139,7 @@ Out: | |||
| X in the 3001st data example (a list of images): | |||
| .. image:: ../img/hwf_dataset2.png | |||
| :width: 500px | |||
| :width: 350px | |||
| .. code:: none | |||
| :class: code-out | |||
| @@ -104,10 +104,10 @@ training set, we have: | |||
| print(f"X in the first data example (a list of two images):") | |||
| plt.subplot(1,2,1) | |||
| plt.axis('off') | |||
| plt.imshow(X_0[0].numpy().transpose(1, 2, 0)) | |||
| plt.imshow(X_0[0].squeeze(), cmap='gray') | |||
| plt.subplot(1,2,2) | |||
| plt.axis('off') | |||
| plt.imshow(X_0[1].numpy().transpose(1, 2, 0)) | |||
| plt.imshow(X_0[1].squeeze(), cmap='gray') | |||
| plt.show() | |||
| print(f"gt_pseudo_label in the first data example (a list of two ground truth pseudo-labels): {gt_pseudo_label_0}") | |||
| print(f"Y in the first data example (their sum result): {Y_0}") | |||
| @@ -120,10 +120,11 @@ Out: | |||
| X in the first data example (a list of two images): | |||
| .. image:: ../img/mnist_add_datasets.png | |||
| :width: 400px | |||
| :width: 200px | |||
| .. parsed-literal:: | |||
| .. code:: none | |||
| :class: code-out | |||
| gt_pseudo_label in the first data example (a list of two ground truth pseudo-labels): [7, 5] | |||
| Y in the first data example (their sum result): 12 | |||
| @@ -23,6 +23,12 @@ sequentially run following commands in your terminal/command line. | |||
| $ cd ABL-Package | |||
| $ pip install -v -e . | |||
| (Optional) If the use of a `Prolog-based knowledge base <prolog>`_ is necessary, you will also need to install Swi-Prolog. | |||
| (Optional) If the use of a :ref:`Prolog-based knowledge base <prolog>` is necessary, the installation of `Swi-Prolog <https://www.swi-prolog.org/>`_ is also required: | |||
| `http://www.swi-prolog.org/build/unix.html <http://www.swi-prolog.org/build/unix.html>`_ | |||
| For Linux users: | |||
| .. code:: console | |||
| $ sudo apt-get install swi-prolog | |||
| For Windows and Mac users, please refer to the `Swi-Prolog Download Page <https://www.swi-prolog.org/Download.html>`_. | |||
| @@ -34,3 +34,13 @@ sequentially run following commands in your terminal/command line. | |||
| $ git clone https://github.com/AbductiveLearning/ABL-Package.git | |||
| $ cd ABL-Package | |||
| $ pip install -v -e . | |||
| (Optional) If the use of a :ref:`Prolog-based knowledge base <prolog>` is necessary, the installation of `Swi-Prolog <https://www.swi-prolog.org/>`_ is also required: | |||
| For Linux users: | |||
| .. code:: console | |||
| $ sudo apt-get install swi-prolog | |||
| For Windows and Mac users, please refer to the `Swi-Prolog Download Page <https://www.swi-prolog.org/Download.html>`_. | |||
| @@ -125,7 +125,7 @@ | |||
| }, | |||
| { | |||
| "data": { | |||
| "image/png": "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", | |||
| "image/png": "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nBgAgHBiAADCiQEACCcGACCccwaW0DnnnFPuTz31VLmfffbZnT7/008/Lfenn3663I8fP97p82E52rdvX7n3c87AY489Vu5tP8f/448/lvuvv/5a7mvXri33tnvTo48+Wu433nhjubfdO5544olyP3r0aLnTnScDABBODABAODEAAOHEAACEEwMAEE4MAEA4MQAA4XpN0zR9vbDXG/a1nPFmZmbKfffu3Z3e/48//ij3Sy+9tNz//vvvTp/P8PX5dR0ry/3e0fa9aTuHYGJiYuLCCy8c0NWc2j///FPuU1NTQ/38gwcPlnvbOQWvvvrqIC+HU2i7d3gyAADhxAAAhBMDABBODABAODEAAOHEAACEEwMAEM45AwO0bt26cv/+++/Lve13ip88ebLct27dWu4ffvhhuTP+nDMwfl588cXW1zz44IPlPu7/Hy0sLJT7LbfcUu4///zzIC+Hf8E5AwBASQwAQDgxAADhxAAAhBMDABBODABAODEAAOEmR30By0nbOQA7duzo9OfbvP766+XuHAFYeg8//HDray666KJyv/vuuwd1Oac0Oztb7u+99165f/DBB+X+yy+/nPY1MV48GQCAcGIAAMKJAQAIJwYAIJwYAIBwYgAAwokBAAgnBgAgXK9pmqavF/Z6w76WsTczM1Puu3fv7vT+v/32W7lfffXV5b64uNjp8xl/fX5dx4p7x8TEqlWryn39+vXlvmnTpnL/5JNPyn1ubq7cl+M/V5yetr9jTwYAIJwYAIBwYgAAwokBAAgnBgAgnBgAgHBiAADCOWfgf1x11VWtr/nqq6/KfWpqqtyPHj1a7rfddlu5f/nll+XOmW85/jz4mX7vgOXAOQMAQEkMAEA4MQAA4cQAAIQTAwAQTgwAQDgxAADhJkd9AeNienq69TVt5wi0mZ+fL3fnCAAwCp4MAEA4MQAA4cQAAIQTAwAQTgwAQDgxAADhxAAAhHPOwADNzc2V+9atW5foSgCgf54MAEA4MQAA4cQAAIQTAwAQTgwAQDgxAADhxAAAhOs1TdP09cJeb9jXArTo8+s6Vtw7YPTa7h2eDABAODEAAOHEAACEEwMAEE4MAEA4MQAA4cQAAIQTAwAQTgwAQDgxAADhxAAAhBMDABBODABAODEAAOHEAACE6zXL8RekAwAD48kAAIQTAwAQTgwAQDgxAADhxAAAhBMDABBODABAODEAAOHEAACE+w8bbeVfVjXu7QAAAABJRU5ErkJggg==", | |||
| "text/plain": [ | |||
| "<Figure size 640x480 with 2 Axes>" | |||
| ] | |||
| @@ -147,10 +147,10 @@ | |||
| "print(f\"X in the first data example (a list of two images):\")\n", | |||
| "plt.subplot(1,2,1)\n", | |||
| "plt.axis('off') \n", | |||
| "plt.imshow(X_0[0].numpy().transpose(1, 2, 0))\n", | |||
| "plt.imshow(X_0[0].squeeze(), cmap='gray')\n", | |||
| "plt.subplot(1,2,2)\n", | |||
| "plt.axis('off') \n", | |||
| "plt.imshow(X_0[1].numpy().transpose(1, 2, 0))\n", | |||
| "plt.imshow(X_0[1].squeeze(), cmap='gray')\n", | |||
| "plt.show()\n", | |||
| "print(f\"gt_pseudo_label in the first data example (a list of two ground truth pseudo-labels): {gt_pseudo_label_0}\")\n", | |||
| "print(f\"Y in the first data example (their sum result): {Y_0}\")" | |||