{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### 교재 페이지 (213-218) #####"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "6) 퍼셉트론(XOR)-실습1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From C:\\Users\\jsdata00010\\Anaconda3\\lib\\site-packages\\tensorflow\\python\\framework\\op_def_library.py:263: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Colocations handled automatically by placer.\n",
      "WARNING:tensorflow:From C:\\Users\\jsdata00010\\Anaconda3\\lib\\site-packages\\tensorflow\\python\\ops\\math_ops.py:3066: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Use tf.cast instead.\n",
      "step : 0 \n",
      "cost : 0.7058966 \n",
      "Weight :\n",
      " [array([[0.28229183, 1.6208019 ],\n",
      "       [0.32244548, 0.11042064]], dtype=float32), array([[0.6710524 ],\n",
      "       [0.18655425]], dtype=float32)] \n",
      "bias :\n",
      " [array([1.2386961 , 0.07634072], dtype=float32), array([-0.35093445], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.56615806]\n",
      " [0.5758265 ]\n",
      " [0.58842444]\n",
      " [0.59596586]] \n",
      "Correct:\n",
      "  [[1.]\n",
      " [1.]\n",
      " [1.]\n",
      " [1.]] \n",
      "Accuracy:  0.5\n",
      "step : 500 \n",
      "cost : 0.69199944 \n",
      "Weight :\n",
      " [array([[0.37562186, 1.6249433 ],\n",
      "       [0.40996972, 0.18509975]], dtype=float32), array([[0.5682002],\n",
      "       [0.108172 ]], dtype=float32)] \n",
      "bias :\n",
      " [array([1.2187263 , 0.08007725], dtype=float32), array([-0.5429902], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.48795718]\n",
      " [0.49830887]\n",
      " [0.5052116 ]\n",
      " [0.51292527]] \n",
      "Correct:\n",
      "  [[1.]\n",
      " [1.]\n",
      " [1.]\n",
      " [1.]] \n",
      "Accuracy:  0.5\n",
      "step : 1000 \n",
      "cost : 0.6909075 \n",
      "Weight :\n",
      " [array([[0.50193447, 1.6379132 ],\n",
      "       [0.5335542 , 0.29592013]], dtype=float32), array([[0.6000667 ],\n",
      "       [0.16609582]], dtype=float32)] \n",
      "bias :\n",
      " [array([1.203191  , 0.09463494], dtype=float32), array([-0.6163307], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.48304412]\n",
      " [0.49823806]\n",
      " [0.50814563]\n",
      " [0.5181718 ]] \n",
      "Correct:\n",
      "  [[1.]\n",
      " [1.]\n",
      " [1.]\n",
      " [1.]] \n",
      "Accuracy:  0.5\n",
      "step : 1500 \n",
      "cost : 0.68849546 \n",
      "Weight :\n",
      " [array([[0.66045815, 1.6712643 ],\n",
      "       [0.69276094, 0.48206705]], dtype=float32), array([[0.64430654],\n",
      "       [0.27808377]], dtype=float32)] \n",
      "bias :\n",
      " [array([1.1701788 , 0.12395217], dtype=float32), array([-0.74188685], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.4743928 ]\n",
      " [0.49894485]\n",
      " [0.51296604]\n",
      " [0.5266762 ]] \n",
      "Correct:\n",
      "  [[1.]\n",
      " [1.]\n",
      " [1.]\n",
      " [1.]] \n",
      "Accuracy:  0.5\n",
      "step : 2000 \n",
      "cost : 0.6825542 \n",
      "Weight :\n",
      " [array([[0.85186166, 1.7600791 ],\n",
      "       [0.88755167, 0.8082572 ]], dtype=float32), array([[0.6884911 ],\n",
      "       [0.49725014]], dtype=float32)] \n",
      "bias :\n",
      " [array([1.1082416 , 0.17022069], dtype=float32), array([-0.95569026], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.4580123 ]\n",
      " [0.5029576 ]\n",
      " [0.5204991 ]\n",
      " [0.54044116]] \n",
      "Correct:\n",
      "  [[1.]\n",
      " [1.]\n",
      " [1.]\n",
      " [1.]] \n",
      "Accuracy:  0.5\n",
      "step : 2500 \n",
      "cost : 0.6681217 \n",
      "Weight :\n",
      " [array([[1.0654068, 1.9771857],\n",
      "       [1.104322 , 1.335308 ]], dtype=float32), array([[0.6982789],\n",
      "       [0.9006544]], dtype=float32)] \n",
      "bias :\n",
      " [array([1.0143417 , 0.17356054], dtype=float32), array([-1.3005725], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.4258464 ]\n",
      " [0.5150764 ]\n",
      " [0.53168046]\n",
      " [0.5606574 ]] \n",
      "Correct:\n",
      "  [[1.]\n",
      " [1.]\n",
      " [1.]\n",
      " [1.]] \n",
      "Accuracy:  0.5\n",
      "step : 3000 \n",
      "cost : 0.6393125 \n",
      "Weight :\n",
      " [array([[1.2727941, 2.398088 ],\n",
      "       [1.3115717, 2.0423925]], dtype=float32), array([[0.6336041],\n",
      "       [1.527623 ]], dtype=float32)] \n",
      "bias :\n",
      " [array([ 0.91806257, -0.01316671], dtype=float32), array([-1.7688327], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.3641849 ]\n",
      " [0.5382742 ]\n",
      " [0.54979587]\n",
      " [0.588031  ]] \n",
      "Correct:\n",
      "  [[1.]\n",
      " [1.]\n",
      " [1.]\n",
      " [1.]] \n",
      "Accuracy:  0.5\n",
      "step : 3500 \n",
      "cost : 0.59745157 \n",
      "Weight :\n",
      " [array([[1.4311712, 3.0164049],\n",
      "       [1.4672099, 2.8458488]], dtype=float32), array([[0.45426464],\n",
      "       [2.3111415 ]], dtype=float32)] \n",
      "bias :\n",
      " [array([ 0.87719643, -0.35698253], dtype=float32), array([-2.2630322], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.27076644]\n",
      " [0.57089144]\n",
      " [0.57691467]\n",
      " [0.61841744]] \n",
      "Correct:\n",
      "  [[1.]\n",
      " [1.]\n",
      " [1.]\n",
      " [1.]] \n",
      "Accuracy:  0.5\n",
      "step : 4000 \n",
      "cost : 0.558478 \n",
      "Weight :\n",
      " [array([[1.5099862, 3.683443 ],\n",
      "       [1.543681 , 3.601586 ]], dtype=float32), array([[0.16390012],\n",
      "       [3.0755808 ]], dtype=float32)] \n",
      "bias :\n",
      " [array([ 0.89275926, -0.64787704], dtype=float32), array([-2.6641495], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.18369591]\n",
      " [0.6010202 ]\n",
      " [0.60365903]\n",
      " [0.6383474 ]] \n",
      "Correct:\n",
      "  [[0.]\n",
      " [1.]\n",
      " [1.]\n",
      " [1.]] \n",
      "Accuracy:  0.75\n",
      "step : 4500 \n",
      "cost : 0.5310279 \n",
      "Weight :\n",
      " [array([[1.5089244, 4.26241  ],\n",
      "       [1.5427039, 4.218372 ]], dtype=float32), array([[-0.18665437],\n",
      "       [ 3.722604  ]], dtype=float32)] \n",
      "bias :\n",
      " [array([ 0.88813126, -0.83731544], dtype=float32), array([-2.9328773], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.12559047]\n",
      " [0.62145215]\n",
      " [0.62276506]\n",
      " [0.6467655 ]] \n",
      "Correct:\n",
      "  [[0.]\n",
      " [1.]\n",
      " [1.]\n",
      " [1.]] \n",
      "Accuracy:  0.75\n",
      "step : 5000 \n",
      "cost : 0.51134884 \n",
      "Weight :\n",
      " [array([[1.4293973, 4.7314916],\n",
      "       [1.4669447, 4.704892 ]], dtype=float32), array([[-0.58561814],\n",
      "       [ 4.2665243 ]], dtype=float32)] \n",
      "bias :\n",
      " [array([ 0.7710452, -0.9618413], dtype=float32), array([-3.0866392], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.09051865]\n",
      " [0.6346027 ]\n",
      " [0.6356401 ]\n",
      " [0.6474758 ]] \n",
      "Correct:\n",
      "  [[0.]\n",
      " [1.]\n",
      " [1.]\n",
      " [1.]] \n",
      "Accuracy:  0.75\n",
      "step : 5500 \n",
      "cost : 0.4896742 \n",
      "Weight :\n",
      " [array([[1.2468615, 5.1136203],\n",
      "       [1.295872 , 5.096607 ]], dtype=float32), array([[-1.1140361],\n",
      "       [ 4.7622313]], dtype=float32)] \n",
      "bias :\n",
      " [array([ 0.3723062, -1.0588121], dtype=float32), array([-3.142555], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.07072312]\n",
      " [0.6456263 ]\n",
      " [0.64763236]\n",
      " [0.63701063]] \n",
      "Correct:\n",
      "  [[0.]\n",
      " [1.]\n",
      " [1.]\n",
      " [1.]] \n",
      "Accuracy:  0.75\n",
      "step : 6000 \n",
      "cost : 0.43166965 \n",
      "Weight :\n",
      " [array([[1.1019142, 5.4320755],\n",
      "       [1.1647083, 5.4232883]], dtype=float32), array([[-2.1293619],\n",
      "       [ 5.248603 ]], dtype=float32)] \n",
      "bias :\n",
      " [array([-0.73020416, -1.1928117 ], dtype=float32), array([-3.1587093], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.06726852]\n",
      " [0.6730982 ]\n",
      " [0.68026376]\n",
      " [0.58351386]] \n",
      "Correct:\n",
      "  [[0.]\n",
      " [1.]\n",
      " [1.]\n",
      " [1.]] \n",
      "Accuracy:  0.75\n",
      "step : 6500 \n",
      "cost : 0.2954951 \n",
      "Weight :\n",
      " [array([[1.7419977, 5.7029266],\n",
      "       [1.7555038, 5.7007437]], dtype=float32), array([[-3.8382313],\n",
      "       [ 5.8143625]], dtype=float32)] \n",
      "bias :\n",
      " [array([-2.3043497, -1.473214 ], dtype=float32), array([-3.2069743], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.07789981]\n",
      " [0.7537077 ]\n",
      " [0.75596327]\n",
      " [0.41629875]] \n",
      "Correct:\n",
      "  [[0.]\n",
      " [1.]\n",
      " [1.]\n",
      " [1.]] \n",
      "Accuracy:  0.75\n",
      "step : 7000 \n",
      "cost : 0.16427958 \n",
      "Weight :\n",
      " [array([[2.5239906, 5.9241447],\n",
      "       [2.5247738, 5.9230895]], dtype=float32), array([[-5.5113163],\n",
      "       [ 6.479769 ]], dtype=float32)] \n",
      "bias :\n",
      " [array([-3.660336 , -1.8310235], dtype=float32), array([-3.2807584], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.07419184]\n",
      " [0.85227376]\n",
      " [0.85238767]\n",
      " [0.2293098 ]] \n",
      "Correct:\n",
      "  [[0.]\n",
      " [1.]\n",
      " [1.]\n",
      " [1.]] \n",
      "Accuracy:  0.75\n",
      "step : 7500 \n",
      "cost : 0.10002865 \n",
      "Weight :\n",
      " [array([[3.0511472, 6.091738 ],\n",
      "       [3.051175 , 6.090893 ]], dtype=float32), array([[-6.682182],\n",
      "       [ 7.057276]], dtype=float32)] \n",
      "bias :\n",
      " [array([-4.5323434, -2.1129262], dtype=float32), array([-3.402132], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.06226125]\n",
      " [0.90784097]\n",
      " [0.9078523 ]\n",
      " [0.13278732]] \n",
      "Correct:\n",
      "  [[0.]\n",
      " [1.]\n",
      " [1.]\n",
      " [0.]] \n",
      "Accuracy:  1.0\n",
      "step : 8000 \n",
      "cost : 0.06933303 \n",
      "Weight :\n",
      " [array([[3.3981783, 6.2216907],\n",
      "       [3.3981361, 6.220954 ]], dtype=float32), array([[-7.48786  ],\n",
      "       [ 7.5238314]], dtype=float32)] \n",
      "bias :\n",
      " [array([-5.0987663, -2.312063 ], dtype=float32), array([-3.5395448], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.05181545]\n",
      " [0.9358547 ]\n",
      " [0.9358586 ]\n",
      " [0.08747524]] \n",
      "Correct:\n",
      "  [[0.]\n",
      " [1.]\n",
      " [1.]\n",
      " [0.]] \n",
      "Accuracy:  1.0\n",
      "step : 8500 \n",
      "cost : 0.052424207 \n",
      "Weight :\n",
      " [array([[3.6447458, 6.326819 ],\n",
      "       [3.644691 , 6.326159 ]], dtype=float32), array([[-8.08061 ],\n",
      "       [ 7.907225]], dtype=float32)] \n",
      "bias :\n",
      " [array([-5.4985123, -2.4561517], dtype=float32), array([-3.6737325], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.04385251]\n",
      " [0.9515526 ]\n",
      " [0.951555  ]\n",
      " [0.06343436]] \n",
      "Correct:\n",
      "  [[0.]\n",
      " [1.]\n",
      " [1.]\n",
      " [0.]] \n",
      "Accuracy:  1.0\n",
      "step : 9000 \n",
      "cost : 0.041933082 \n",
      "Weight :\n",
      " [array([[3.8318944, 6.414728 ],\n",
      "       [3.8318357, 6.4141254]], dtype=float32), array([[-8.543102],\n",
      "       [ 8.23066 ]], dtype=float32)] \n",
      "bias :\n",
      " [array([-5.800372, -2.565078], dtype=float32), array([-3.7986107], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.03781307]\n",
      " [0.96133804]\n",
      " [0.9613398 ]\n",
      " [0.04908374]] \n",
      "Correct:\n",
      "  [[0.]\n",
      " [1.]\n",
      " [1.]\n",
      " [0.]] \n",
      "Accuracy:  1.0\n",
      "step : 9500 \n",
      "cost : 0.034847904 \n",
      "Weight :\n",
      " [array([[3.9809434, 6.490061 ],\n",
      "       [3.980885 , 6.489506 ]], dtype=float32), array([[-8.919894],\n",
      "       [ 8.509673]], dtype=float32)] \n",
      "bias :\n",
      " [array([-6.039699 , -2.6507537], dtype=float32), array([-3.9131722], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.03314286]\n",
      " [0.96794766]\n",
      " [0.96794915]\n",
      " [0.03972358]] \n",
      "Correct:\n",
      "  [[0.]\n",
      " [1.]\n",
      " [1.]\n",
      " [0.]] \n",
      "Accuracy:  1.0\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step : 10000 \n",
      "cost : 0.029762499 \n",
      "Weight :\n",
      " [array([[4.1038847, 6.55583  ],\n",
      "       [4.103827 , 6.5553102]], dtype=float32), array([[-9.236728],\n",
      "       [ 8.7547  ]], dtype=float32)] \n",
      "bias :\n",
      " [array([-6.2363   , -2.7203562], dtype=float32), array([-4.0180316], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.02944958]\n",
      " [0.9726853 ]\n",
      " [0.9726864 ]\n",
      " [0.03320596]] \n",
      "Correct:\n",
      "  [[0.]\n",
      " [1.]\n",
      " [1.]\n",
      " [0.]] \n",
      "Accuracy:  1.0\n"
     ]
    }
   ],
   "source": [
    "import tensorflow as tf\n",
    "import numpy as np\n",
    "\n",
    "x_data = np.array([[0, 0], [0, 1], [1, 0], [1, 1]], dtype=np.float32)\n",
    "y_data = np.array([[0], [1], [1], [0]], dtype=np.float32)\n",
    "X = tf.placeholder(tf.float32)\n",
    "Y = tf.placeholder(tf.float32)\n",
    "W1 = tf.Variable(tf.random_normal([2, 2]), name='weight1')\n",
    "b1 = tf.Variable(tf.random_normal([2]), name='bias1')\n",
    "layer1 = tf.sigmoid(tf.matmul(X, W1) + b1)\n",
    "\n",
    "W2 = tf.Variable(tf.random_normal([2, 1]), name='weight2')\n",
    "b2 = tf.Variable(tf.random_normal([1]), name='bias2')\n",
    "hypothesis = tf.sigmoid(tf.matmul(layer1, W2) + b2)\n",
    "\n",
    "# cost/loss function\n",
    "cost = -tf.reduce_mean(Y * tf.log(hypothesis) + (1 - Y) * tf.log(1 - hypothesis))\n",
    "train = tf.train.GradientDescentOptimizer(learning_rate=0.1).minimize(cost)\n",
    "# Accuracy computation\n",
    "# True if hypothesis>0.2 else False\n",
    "predicted = tf.cast(hypothesis > 0.2, dtype=tf.float32)\n",
    "accuracy = tf.reduce_mean(tf.cast(tf.equal(predicted, Y), dtype=tf.float32))\n",
    "# Launch graph\n",
    "with tf.Session() as sess:\n",
    "    sess.run(tf.global_variables_initializer())\n",
    "    for step in range(10001):\n",
    "        sess.run(train, feed_dict={X: x_data, Y: y_data})\n",
    "        if step % 500 == 0:\n",
    "            print(\"step :\",step, \"\\ncost :\", sess.run(cost, feed_dict={X: x_data, Y: y_data}), \n",
    "                  \"\\nWeight :\\n\", sess.run([W1, W2]), \"\\nbias :\\n\", sess.run([b1, b2]))\n",
    "            h, c, a = sess.run([hypothesis, predicted, accuracy], feed_dict={X: x_data, Y: y_data})\n",
    "            print(\"Hypothesis:\\n\", h, \"\\nCorrect:\\n \", c, \"\\nAccuracy: \", a)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step : 0 \n",
      "cost : 0.83947134 \n",
      "Weight :\n",
      " [array([[ 1.1775712 ,  0.11065076],\n",
      "       [-0.17623563,  1.1256512 ]], dtype=float32), array([[ 0.6329048 ],\n",
      "       [-0.60536355]], dtype=float32)] \n",
      "bias :\n",
      " [array([ 0.06954792, -0.26649532], dtype=float32), array([-1.1439354], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.25368202]\n",
      " [0.21932468]\n",
      " [0.28263304]\n",
      " [0.24758992]] \n",
      "Correct:\n",
      "  [[1.]\n",
      " [1.]\n",
      " [1.]\n",
      " [1.]] \n",
      "Accuracy:  0.5\n",
      "step : 500 \n",
      "cost : 0.6886288 \n",
      "Weight :\n",
      " [array([[1.2097481 , 0.0666034 ],\n",
      "       [0.48137015, 1.0821122 ]], dtype=float32), array([[ 0.9456053],\n",
      "       [-0.2388987]], dtype=float32)] \n",
      "bias :\n",
      " [array([ 0.2714779 , -0.33774737], dtype=float32), array([-0.5542413], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.4707536 ]\n",
      " [0.48166296]\n",
      " [0.52818114]\n",
      " [0.5273439 ]] \n",
      "Correct:\n",
      "  [[1.]\n",
      " [1.]\n",
      " [1.]\n",
      " [1.]] \n",
      "Accuracy:  0.5\n",
      "step : 1000 \n",
      "cost : 0.67277014 \n",
      "Weight :\n",
      " [array([[1.5358354 , 0.06091429],\n",
      "       [1.1979322 , 1.091465  ]], dtype=float32), array([[ 1.2250036 ],\n",
      "       [-0.39247876]], dtype=float32)] \n",
      "bias :\n",
      " [array([ 0.32849675, -0.33936903], dtype=float32), array([-0.7466493], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.45073617]\n",
      " [0.49823207]\n",
      " [0.5361537 ]\n",
      " [0.5378568 ]] \n",
      "Correct:\n",
      "  [[1.]\n",
      " [1.]\n",
      " [1.]\n",
      " [1.]] \n",
      "Accuracy:  0.5\n",
      "step : 1500 \n",
      "cost : 0.63466346 \n",
      "Weight :\n",
      " [array([[2.14403   , 0.09113888],\n",
      "       [2.046004  , 1.1510817 ]], dtype=float32), array([[ 1.8939075 ],\n",
      "       [-0.73136616]], dtype=float32)] \n",
      "bias :\n",
      " [array([ 0.05087023, -0.33117354], dtype=float32), array([-1.1104271], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.39053333]\n",
      " [0.5171328 ]\n",
      " [0.56750745]\n",
      " [0.55847734]] \n",
      "Correct:\n",
      "  [[1.]\n",
      " [1.]\n",
      " [1.]\n",
      " [1.]] \n",
      "Accuracy:  0.5\n",
      "step : 2000 \n",
      "cost : 0.5669718 \n",
      "Weight :\n",
      " [array([[2.961324  , 0.22651072],\n",
      "       [3.0236864 , 1.3219783 ]], dtype=float32), array([[ 2.8586113],\n",
      "       [-1.3100039]], dtype=float32)] \n",
      "bias :\n",
      " [array([-0.44747543, -0.3995287 ], dtype=float32), array([-1.532309], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.28020787]\n",
      " [0.54658437]\n",
      " [0.62568116]\n",
      " [0.579417  ]] \n",
      "Correct:\n",
      "  [[1.]\n",
      " [1.]\n",
      " [1.]\n",
      " [1.]] \n",
      "Accuracy:  0.5\n",
      "step : 2500 \n",
      "cost : 0.4880554 \n",
      "Weight :\n",
      " [array([[3.7509255, 0.5904746],\n",
      "       [3.935724 , 1.5142827]], dtype=float32), array([[ 3.838536 ],\n",
      "       [-2.1778083]], dtype=float32)] \n",
      "bias :\n",
      " [array([-0.86778843, -0.87578267], dtype=float32), array([-1.9048926], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.1962071 ]\n",
      " [0.5836642 ]\n",
      " [0.68903536]\n",
      " [0.5608507 ]] \n",
      "Correct:\n",
      "  [[0.]\n",
      " [1.]\n",
      " [1.]\n",
      " [1.]] \n",
      "Accuracy:  0.75\n",
      "step : 3000 \n",
      "cost : 0.35617423 \n",
      "Weight :\n",
      " [array([[4.4188194, 1.4900854],\n",
      "       [4.63149  , 1.7220628]], dtype=float32), array([[ 4.732727],\n",
      "       [-3.577252]], dtype=float32)] \n",
      "bias :\n",
      " [array([-1.2762487, -2.1409667], dtype=float32), array([-2.3083324], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.16084546]\n",
      " [0.69960326]\n",
      " [0.73150676]\n",
      " [0.4397913 ]] \n",
      "Correct:\n",
      "  [[0.]\n",
      " [1.]\n",
      " [1.]\n",
      " [1.]] \n",
      "Accuracy:  0.75\n",
      "step : 3500 \n",
      "cost : 0.20610176 \n",
      "Weight :\n",
      " [array([[4.952432 , 2.3844113],\n",
      "       [5.1004543, 2.4166331]], dtype=float32), array([[ 5.646111],\n",
      "       [-5.193532]], dtype=float32)] \n",
      "bias :\n",
      " [array([-1.6812843, -3.536402 ], dtype=float32), array([-2.6643724], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.12727174]\n",
      " [0.82125247]\n",
      " [0.82173336]\n",
      " [0.2554773 ]] \n",
      "Correct:\n",
      "  [[0.]\n",
      " [1.]\n",
      " [1.]\n",
      " [1.]] \n",
      "Accuracy:  0.75\n",
      "step : 4000 \n",
      "cost : 0.12293056 \n",
      "Weight :\n",
      " [array([[5.3130145, 2.978807 ],\n",
      "       [5.419607 , 2.9947853]], dtype=float32), array([[ 6.42288 ],\n",
      "       [-6.413818]], dtype=float32)] \n",
      "bias :\n",
      " [array([-1.9849229, -4.495025 ], dtype=float32), array([-2.9592419], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.09498736]\n",
      " [0.89024484]\n",
      " [0.88960075]\n",
      " [0.14672604]] \n",
      "Correct:\n",
      "  [[0.]\n",
      " [1.]\n",
      " [1.]\n",
      " [0.]] \n",
      "Accuracy:  1.0\n",
      "step : 4500 \n",
      "cost : 0.082764655 \n",
      "Weight :\n",
      " [array([[5.5620584, 3.366551 ],\n",
      "       [5.645983 , 3.3790548]], dtype=float32), array([[ 7.02787 ],\n",
      "       [-7.265032]], dtype=float32)] \n",
      "bias :\n",
      " [array([-2.1924276, -5.1144376], dtype=float32), array([-3.2059712], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.07286152]\n",
      " [0.9253508 ]\n",
      " [0.92488575]\n",
      " [0.09492624]] \n",
      "Correct:\n",
      "  [[0.]\n",
      " [1.]\n",
      " [1.]\n",
      " [0.]] \n",
      "Accuracy:  1.0\n",
      "step : 5000 \n",
      "cost : 0.06106762 \n",
      "Weight :\n",
      " [array([[5.7464046, 3.6376102],\n",
      "       [5.816439 , 3.6484103]], dtype=float32), array([[ 7.5072317],\n",
      "       [-7.8897734]], dtype=float32)] \n",
      "bias :\n",
      " [array([-2.339563, -5.544045], dtype=float32), array([-3.41296], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.05820492]\n",
      " [0.9447365 ]\n",
      " [0.9444138 ]\n",
      " [0.06785122]] \n",
      "Correct:\n",
      "  [[0.]\n",
      " [1.]\n",
      " [1.]\n",
      " [0.]] \n",
      "Accuracy:  1.0\n",
      "step : 5500 \n",
      "cost : 0.047910262 \n",
      "Weight :\n",
      " [array([[5.890626 , 3.8403544],\n",
      "       [5.951297 , 3.850025 ]], dtype=float32), array([[ 7.8995733],\n",
      "       [-8.374982 ]], dtype=float32)] \n",
      "bias :\n",
      " [array([-2.4497056, -5.8634467], dtype=float32), array([-3.5888672], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.04811287]\n",
      " [0.9566001 ]\n",
      " [0.95636606]\n",
      " [0.05194989]] \n",
      "Correct:\n",
      "  [[0.]\n",
      " [1.]\n",
      " [1.]\n",
      " [0.]] \n",
      "Accuracy:  1.0\n",
      "step : 6000 \n",
      "cost : 0.03920842 \n",
      "Weight :\n",
      " [array([[6.008082 , 3.9998994],\n",
      "       [6.061999 , 4.0087337]], dtype=float32), array([[ 8.229937],\n",
      "       [-8.76861 ]], dtype=float32)] \n",
      "bias :\n",
      " [array([-2.5360289, -6.113587 ], dtype=float32), array([-3.7407615], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.04084438]\n",
      " [0.9644784 ]\n",
      " [0.964301  ]\n",
      " [0.04171696]] \n",
      "Correct:\n",
      "  [[0.]\n",
      " [1.]\n",
      " [1.]\n",
      " [0.]] \n",
      "Accuracy:  1.0\n",
      "step : 6500 \n",
      "cost : 0.033075273 \n",
      "Weight :\n",
      " [array([[6.106615 , 4.130222 ],\n",
      "       [6.1554165, 4.1384025]], dtype=float32), array([[ 8.514464],\n",
      "       [-9.098425]], dtype=float32)] \n",
      "bias :\n",
      " [array([-2.6061506, -6.317107 ], dtype=float32), array([-3.8739095], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.03540042]\n",
      " [0.9700413 ]\n",
      " [0.9699023 ]\n",
      " [0.03466716]] \n",
      "Correct:\n",
      "  [[0.]\n",
      " [1.]\n",
      " [1.]\n",
      " [0.]] \n",
      "Accuracy:  1.0\n",
      "step : 7000 \n",
      "cost : 0.028541476 \n",
      "Weight :\n",
      " [array([[6.191156 , 4.2396975],\n",
      "       [6.235937 , 4.2473454]], dtype=float32), array([[ 8.763926],\n",
      "       [-9.381582]], dtype=float32)] \n",
      "bias :\n",
      " [array([-2.664715 , -6.4875073], dtype=float32), array([-3.9921608], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.0311892 ]\n",
      " [0.97415686]\n",
      " [0.9740448 ]\n",
      " [0.02955353]] \n",
      "Correct:\n",
      "  [[0.]\n",
      " [1.]\n",
      " [1.]\n",
      " [0.]] \n",
      "Accuracy:  1.0\n",
      "step : 7500 \n",
      "cost : 0.025064439 \n",
      "Weight :\n",
      " [array([[6.2649794, 4.333667 ],\n",
      "       [6.3065085, 4.3408656]], dtype=float32), array([[ 8.985798],\n",
      "       [-9.629295]], dtype=float32)] \n",
      "bias :\n",
      " [array([-2.7147074, -6.6333547], dtype=float32), array([-4.0983586], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.0278441 ]\n",
      " [0.97731423]\n",
      " [0.9772216 ]\n",
      " [0.02569395]] \n",
      "Correct:\n",
      "  [[0.]\n",
      " [1.]\n",
      " [1.]\n",
      " [0.]] \n",
      "Accuracy:  1.0\n",
      "step : 8000 \n",
      "cost : 0.022319213 \n",
      "Weight :\n",
      " [array([[6.330358 , 4.4157085],\n",
      "       [6.3691955, 4.4225264]], dtype=float32), array([[ 9.185439],\n",
      "       [-9.84925 ]], dtype=float32)] \n",
      "bias :\n",
      " [array([-2.7581332, -6.760386 ], dtype=float32), array([-4.1946425], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.02512798]\n",
      " [0.9798071 ]\n",
      " [0.9797291 ]\n",
      " [0.02268767]] \n",
      "Correct:\n",
      "  [[0.]\n",
      " [1.]\n",
      " [1.]\n",
      " [0.]] \n",
      "Accuracy:  1.0\n",
      "step : 8500 \n",
      "cost : 0.020100199 \n",
      "Weight :\n",
      " [array([[6.3889275, 4.48833  ],\n",
      "       [6.4254966, 4.4948173]], dtype=float32), array([[  9.366816],\n",
      "       [-10.04691 ]], dtype=float32)] \n",
      "bias :\n",
      " [array([-2.7963972, -6.872593 ], dtype=float32), array([-4.282646], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.02288169]\n",
      " [0.9818218 ]\n",
      " [0.98175514]\n",
      " [0.02028587]] \n",
      "Correct:\n",
      "  [[0.]\n",
      " [1.]\n",
      " [1.]\n",
      " [0.]] \n",
      "Accuracy:  1.0\n",
      "step : 9000 \n",
      "cost : 0.018271558 \n",
      "Weight :\n",
      " [array([[6.4419007, 4.553339 ],\n",
      "       [6.4765263, 4.5595407]], dtype=float32), array([[  9.532927],\n",
      "       [-10.226299]], dtype=float32)] \n",
      "bias :\n",
      " [array([-2.8305087, -6.972855 ], dtype=float32), array([-4.3636413], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.02099499]\n",
      " [0.98348165]\n",
      " [0.98342395]\n",
      " [0.0183264 ]] \n",
      "Correct:\n",
      "  [[0.]\n",
      " [1.]\n",
      " [1.]\n",
      " [0.]] \n",
      "Accuracy:  1.0\n",
      "step : 9500 \n",
      "cost : 0.016739931 \n",
      "Weight :\n",
      " [array([[6.4902005, 4.6120887],\n",
      "       [6.523142 , 4.6180344]], dtype=float32), array([[  9.686105],\n",
      "       [-10.390456]], dtype=float32)] \n",
      "bias :\n",
      " [array([-2.86122  , -7.0633154], dtype=float32), array([-4.4386325], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.01938924]\n",
      " [0.9848716 ]\n",
      " [0.984821  ]\n",
      " [0.01669967]] \n",
      "Correct:\n",
      "  [[0.]\n",
      " [1.]\n",
      " [1.]\n",
      " [0.]] \n",
      "Accuracy:  1.0\n",
      "step : 10000 \n",
      "cost : 0.015439347 \n",
      "Weight :\n",
      " [array([[6.534546 , 4.6656065],\n",
      "       [6.5660086, 4.6713257]], dtype=float32), array([[  9.828192],\n",
      "       [-10.541728]], dtype=float32)] \n",
      "bias :\n",
      " [array([-2.889104 , -7.1456027], dtype=float32), array([-4.5084295], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.01800671]\n",
      " [0.9860515 ]\n",
      " [0.98600686]\n",
      " [0.01532924]] \n",
      "Correct:\n",
      "  [[0.]\n",
      " [1.]\n",
      " [1.]\n",
      " [0.]] \n",
      "Accuracy:  1.0\n"
     ]
    }
   ],
   "source": [
    "#XOR 게이트\n",
    "x_data = np.array([[0, 0], [0, 1], [1, 0], [1, 1]], dtype=np.float32)\n",
    "y_data = np.array([[0], [1], [1], [0]], dtype=np.float32)\n",
    "X = tf.placeholder(tf.float32)\n",
    "Y = tf.placeholder(tf.float32)\n",
    "W1 = tf.Variable(tf.random_normal([2, 2]), name='weight1')\n",
    "b1 = tf.Variable(tf.random_normal([2]), name='bias1')\n",
    "layer1 = tf.sigmoid(tf.matmul(X, W1) + b1)\n",
    "\n",
    "W2 = tf.Variable(tf.random_normal([2, 1]), name='weight2')\n",
    "b2 = tf.Variable(tf.random_normal([1]), name='bias2')\n",
    "hypothesis = tf.sigmoid(tf.matmul(layer1, W2) + b2)\n",
    "\n",
    "# cost/loss function\n",
    "cost = -tf.reduce_mean(Y * tf.log(hypothesis) + (1 - Y) * tf.log(1 - hypothesis))\n",
    "train = tf.train.GradientDescentOptimizer(learning_rate=0.1).minimize(cost)\n",
    "# Accuracy computation\n",
    "# True if hypothesis>0.2 else False\n",
    "predicted = tf.cast(hypothesis > 0.2, dtype=tf.float32)\n",
    "accuracy = tf.reduce_mean(tf.cast(tf.equal(predicted, Y), dtype=tf.float32))\n",
    "# Launch graph\n",
    "with tf.Session() as sess:\n",
    "    sess.run(tf.global_variables_initializer())\n",
    "    for step in range(10001):\n",
    "        sess.run(train, feed_dict={X: x_data, Y: y_data})\n",
    "        if step % 500 == 0:\n",
    "            print(\"step :\",step, \"\\ncost :\", sess.run(cost, feed_dict={X: x_data, Y: y_data}), \n",
    "                  \"\\nWeight :\\n\", sess.run([W1, W2]), \"\\nbias :\\n\", sess.run([b1, b2]))\n",
    "            h, c, a = sess.run([hypothesis, predicted, accuracy], feed_dict={X: x_data, Y: y_data})\n",
    "            print(\"Hypothesis:\\n\", h, \"\\nCorrect:\\n \", c, \"\\nAccuracy: \", a)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step : 0 \n",
      "cost : 0.9907976 \n",
      "Weight :\n",
      " [array([[ 1.0732632 ,  0.19082014,  1.943241  , -0.5049198 ,  1.3837659 ,\n",
      "         1.0604074 ,  0.21013658],\n",
      "       [-1.9482528 ,  0.80715346,  0.25208944, -0.3027498 ,  0.26468045,\n",
      "         0.18057732, -0.05539773]], dtype=float32), array([[ 1.4852211 , -0.42772183, -0.3356586 , -0.5573063 , -1.2012299 ,\n",
      "        -0.17510414, -0.8808167 ],\n",
      "       [ 0.83968633, -0.09776691,  2.0293431 ,  0.02381345,  1.4575558 ,\n",
      "        -0.62406915,  1.0998192 ],\n",
      "       [-0.21487391,  0.34920853, -0.16367784, -1.0683519 , -0.4143009 ,\n",
      "         0.5421552 , -2.0971737 ],\n",
      "       [-0.26807487, -1.194651  ,  2.026955  ,  0.47140154,  1.0885543 ,\n",
      "        -0.8363566 ,  0.21133967],\n",
      "       [-1.4818541 ,  0.43110526, -1.4053344 , -0.04024884,  0.9375388 ,\n",
      "        -1.3324509 , -0.07942262],\n",
      "       [ 0.6632619 ,  1.4366772 , -1.5464754 , -0.70668715, -0.8930268 ,\n",
      "        -1.3043828 , -1.7850258 ],\n",
      "       [-1.204453  , -0.45174494,  0.6835732 ,  3.0165563 ,  0.54434514,\n",
      "         1.069582  ,  0.3435125 ]], dtype=float32), array([[-0.22084375,  1.19308   ,  1.0764315 , -0.79938704, -0.8273015 ,\n",
      "         0.07231029, -0.10095999],\n",
      "       [-0.64977443,  1.0622138 , -0.58985525,  0.2865051 , -1.525514  ,\n",
      "         0.09642287,  0.81217414],\n",
      "       [ 1.5582045 , -0.8539799 , -0.03085944,  1.2140232 , -0.394913  ,\n",
      "         0.400767  , -1.8174227 ],\n",
      "       [-2.0260592 , -1.3303446 ,  0.71930826, -0.21744005,  1.0208452 ,\n",
      "        -0.82503694,  0.57048666],\n",
      "       [-1.7982751 , -0.30153832, -0.4145481 , -0.0541993 , -0.1627168 ,\n",
      "         0.7470903 ,  1.4361944 ],\n",
      "       [ 0.3634403 ,  1.4051269 , -0.97946626,  0.09148227, -1.430804  ,\n",
      "        -0.24036065, -0.66670746],\n",
      "       [ 0.11337901,  1.0605444 , -1.1655362 , -2.0237215 , -0.33581075,\n",
      "        -0.3110631 , -0.07203282]], dtype=float32)] \n",
      "bias :\n",
      " [array([ 0.40977874, -1.604372  , -0.24382702, -0.7397975 , -0.572092  ,\n",
      "        1.0909759 , -0.8968171 ], dtype=float32), array([ 1.2592614 , -0.00527734, -1.0526279 ,  1.6974074 , -0.66167605,\n",
      "        1.3265486 , -2.4676158 ], dtype=float32), array([ 0.12481381, -0.56403226,  1.6089032 , -1.0958793 , -0.55614376,\n",
      "       -1.080449  , -0.39116025], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.1056568  0.63710123 0.89382017 0.17155668 0.09843913 0.18282974\n",
      "  0.5663442 ]\n",
      " [0.08212814 0.6085869  0.8762902  0.1858395  0.09542793 0.19877529\n",
      "  0.62631863]\n",
      " [0.1142526  0.6802196  0.8885054  0.16853103 0.09055057 0.1905666\n",
      "  0.6049796 ]\n",
      " [0.08785236 0.6412722  0.8726486  0.18179524 0.09273511 0.20396945\n",
      "  0.6609347 ]] \n",
      "Correct:\n",
      "  [[0. 1. 1. 0. 0. 0. 1.]\n",
      " [0. 1. 1. 0. 0. 0. 1.]\n",
      " [0. 1. 1. 0. 0. 0. 1.]\n",
      " [0. 1. 1. 0. 0. 1. 1.]] \n",
      "Accuracy:  0.4642857\n",
      "step : 500 \n",
      "cost : 0.693305 \n",
      "Weight :\n",
      " [array([[ 1.0093862 ,  0.17028497,  1.9555346 , -0.4530039 ,  1.4053316 ,\n",
      "         1.0482056 ,  0.23864773],\n",
      "       [-1.9942786 ,  0.8051655 ,  0.30577677, -0.26446462,  0.20725632,\n",
      "         0.21892859, -0.02717793]], dtype=float32), array([[ 1.3632146 , -0.47152275, -0.2492828 , -0.61980736, -1.2178972 ,\n",
      "        -0.19479544, -0.8769709 ],\n",
      "       [ 0.7747631 , -0.12757917,  2.0931826 , -0.00655223,  1.4168589 ,\n",
      "        -0.61900014,  1.096611  ],\n",
      "       [-0.3878552 ,  0.27449158, -0.01187012, -1.1578506 , -0.4937607 ,\n",
      "         0.52430046, -2.1005151 ],\n",
      "       [-0.3236884 , -1.2163929 ,  2.0816164 ,  0.4402561 ,  1.0653309 ,\n",
      "        -0.8319082 ,  0.2103541 ],\n",
      "       [-1.632536  ,  0.36646906, -1.2801391 , -0.10890425,  0.87167615,\n",
      "        -1.3427676 , -0.08193848],\n",
      "       [ 0.46523342,  1.3518212 , -1.3610028 , -0.81594414, -0.98696905,\n",
      "        -1.3115058 , -1.7896534 ],\n",
      "       [-1.2778523 , -0.48247385,  0.75060594,  2.978138  ,  0.5116415 ,\n",
      "         1.0680863 ,  0.34210348]], dtype=float32), array([[ 0.25582978,  1.0993521 ,  0.5831375 , -0.4325661 , -0.25847927,\n",
      "         0.45295268, -0.12283897],\n",
      "       [-0.17354594,  0.9814199 , -1.0394197 ,  0.63471067, -0.9690516 ,\n",
      "         0.4589213 ,  0.76640725],\n",
      "       [ 1.6635244 , -0.8608046 , -0.13388288,  1.2823906 , -0.27839497,\n",
      "         0.47801816, -1.8171643 ],\n",
      "       [-1.5723214 , -1.4365139 ,  0.2107762 ,  0.10082563,  1.5479707 ,\n",
      "        -0.4864922 ,  0.5098756 ],\n",
      "       [-1.6108315 , -0.32093757, -0.58075815,  0.06578603,  0.03877397,\n",
      "         0.8767353 ,  1.4134678 ],\n",
      "       [ 0.6458899 ,  1.3516501 , -1.2778666 ,  0.29640004, -1.0998229 ,\n",
      "        -0.02294552, -0.6868237 ],\n",
      "       [ 0.11851817,  1.0616176 , -1.1680497 , -2.0201051 , -0.3305452 ,\n",
      "        -0.30711672, -0.07083476]], dtype=float32)] \n",
      "bias :\n",
      " [array([ 0.28646952, -1.5858501 , -0.19788796, -0.6564019 , -0.5966334 ,\n",
      "        1.0411631 , -0.8843379 ], dtype=float32), array([ 1.0276277 , -0.10327177, -0.8309906 ,  1.5683311 , -0.77130353,\n",
      "        1.3268847 , -2.4732158 ], dtype=float32), array([ 0.7950764 , -0.7037855 ,  0.908429  , -0.60473925,  0.23842043,\n",
      "       -0.56523967, -0.45907703], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.52365893 0.49769804 0.53073484 0.4911998  0.51282454 0.4881123\n",
      "  0.44833642]\n",
      " [0.4703257  0.46138808 0.47896856 0.5266549  0.50875556 0.5121677\n",
      "  0.49846926]\n",
      " [0.5277867  0.548842   0.528173   0.46969002 0.47211143 0.4838129\n",
      "  0.50115   ]\n",
      " [0.4638788  0.4942034  0.47966215 0.50543976 0.48322517 0.5007533\n",
      "  0.5518155 ]] \n",
      "Correct:\n",
      "  [[1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]] \n",
      "Accuracy:  0.5\n",
      "step : 1000 \n",
      "cost : 0.6925191 \n",
      "Weight :\n",
      " [array([[ 0.97636974,  0.14102896,  1.9563034 , -0.43934494,  1.4128233 ,\n",
      "         1.0557679 ,  0.26631585],\n",
      "       [-2.0277193 ,  0.7904373 ,  0.335072  , -0.27737668,  0.15684101,\n",
      "         0.2918566 , -0.00972637]], dtype=float32), array([[ 1.3716154e+00, -4.5846337e-01, -2.6527864e-01, -6.1796421e-01,\n",
      "        -1.1991183e+00, -2.1329151e-01, -8.7174547e-01],\n",
      "       [ 7.7589983e-01, -1.2908939e-01,  2.0967307e+00, -3.6686931e-03,\n",
      "         1.4011285e+00, -6.1529285e-01,  1.0945755e+00],\n",
      "       [-3.8388813e-01,  2.7890828e-01, -2.4730482e-03, -1.1570734e+00,\n",
      "        -5.1723546e-01,  5.0995684e-01, -2.1015582e+00],\n",
      "       [-3.1567252e-01, -1.2124243e+00,  2.0719955e+00,  4.4366857e-01,\n",
      "         1.0651569e+00, -8.2918906e-01,  2.1061541e-01],\n",
      "       [-1.6414154e+00,  3.6531070e-01, -1.2731242e+00, -1.0131940e-01,\n",
      "         8.5350811e-01, -1.3495314e+00, -8.2205519e-02],\n",
      "       [ 4.8230135e-01,  1.3605253e+00, -1.3645788e+00, -8.1332392e-01,\n",
      "        -1.0080930e+00, -1.3179998e+00, -1.7910036e+00],\n",
      "       [-1.2743890e+00, -4.8011124e-01,  7.4815166e-01,  2.9811914e+00,\n",
      "         5.0494146e-01,  1.0668461e+00,  3.4193254e-01]], dtype=float32), array([[ 0.26629034,  1.1105499 ,  0.58661413, -0.40595657, -0.23677321,\n",
      "         0.48079896, -0.08839551],\n",
      "       [-0.1467048 ,  0.99149865, -1.0226619 ,  0.6518247 , -0.9422959 ,\n",
      "         0.47915757,  0.7637979 ],\n",
      "       [ 1.6668798 , -0.85217017, -0.13302557,  1.2769154 , -0.28302693,\n",
      "         0.47674757, -1.8102603 ],\n",
      "       [-1.5914444 , -1.4560035 ,  0.1822732 ,  0.07211088,  1.5224041 ,\n",
      "        -0.50853467,  0.48977923],\n",
      "       [-1.6017755 , -0.31360713, -0.57588977,  0.05462446,  0.0346022 ,\n",
      "         0.87094045,  1.4041002 ],\n",
      "       [ 0.64458406,  1.3515651 , -1.2846007 ,  0.29303968, -1.1028601 ,\n",
      "        -0.02267499, -0.6825675 ],\n",
      "       [ 0.1195332 ,  1.0629566 , -1.1670984 , -2.0195267 , -0.32994446,\n",
      "        -0.30635044, -0.06958427]], dtype=float32)] \n",
      "bias :\n",
      " [array([ 0.19805901, -1.5937855 , -0.19528745, -0.67532265, -0.61312884,\n",
      "        1.052974  , -0.8882741 ], dtype=float32), array([ 1.0500888 , -0.09254184, -0.8445598 ,  1.5752985 , -0.79099673,\n",
      "        1.3266633 , -2.4744167 ], dtype=float32), array([ 0.7995578 , -0.7121773 ,  0.8992477 , -0.6015602 ,  0.24716452,\n",
      "       -0.5575299 , -0.4656804 ], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.52529174 0.49906546 0.5255645  0.49232754 0.5171843  0.4932274\n",
      "  0.4527489 ]\n",
      " [0.47921473 0.46808976 0.4753644  0.52635574 0.51023346 0.5147044\n",
      "  0.49641415]\n",
      " [0.52851397 0.54615533 0.52542406 0.47279996 0.48123613 0.4886286\n",
      "  0.50509584]\n",
      " [0.4677521  0.49260262 0.47563344 0.50795877 0.4907861  0.5022998\n",
      "  0.55076504]] \n",
      "Correct:\n",
      "  [[1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]] \n",
      "Accuracy:  0.5\n",
      "step : 1500 \n",
      "cost : 0.69164234 \n",
      "Weight :\n",
      " [array([[ 0.9539454 ,  0.10929761,  1.9604292 , -0.430659  ,  1.4218581 ,\n",
      "         1.069481  ,  0.29048052],\n",
      "       [-2.0721028 ,  0.776664  ,  0.3667028 , -0.29047087,  0.11609502,\n",
      "         0.37010327,  0.01905561]], dtype=float32), array([[ 1.3906882e+00, -4.4397631e-01, -2.7978542e-01, -6.3018072e-01,\n",
      "        -1.1816677e+00, -2.3209481e-01, -8.6657184e-01],\n",
      "       [ 7.7634662e-01, -1.2980580e-01,  2.0991352e+00, -6.4620737e-04,\n",
      "         1.3877800e+00, -6.1278963e-01,  1.0927628e+00],\n",
      "       [-3.7867302e-01,  2.8663954e-01,  5.4792729e-03, -1.1640537e+00,\n",
      "        -5.3847468e-01,  4.9604478e-01, -2.1023731e+00],\n",
      "       [-3.0797276e-01, -1.2102964e+00,  2.0623999e+00,  4.4676206e-01,\n",
      "         1.0657368e+00, -8.2689393e-01,  2.1113354e-01],\n",
      "       [-1.6526619e+00,  3.6554059e-01, -1.2677578e+00, -9.7873412e-02,\n",
      "         8.3830309e-01, -1.3546755e+00, -8.2034126e-02],\n",
      "       [ 5.0147325e-01,  1.3702167e+00, -1.3692038e+00, -8.1699216e-01,\n",
      "        -1.0268971e+00, -1.3258133e+00, -1.7920042e+00],\n",
      "       [-1.2717665e+00, -4.7818428e-01,  7.4552703e-01,  2.9827363e+00,\n",
      "         4.9886900e-01,  1.0657475e+00,  3.4192491e-01]], dtype=float32), array([[ 0.28073364,  1.1274589 ,  0.60188913, -0.37325257, -0.21173069,\n",
      "         0.51118475, -0.048626  ],\n",
      "       [-0.12355902,  1.0009619 , -1.0010273 ,  0.66799766, -0.9198753 ,\n",
      "         0.49629056,  0.76099795],\n",
      "       [ 1.6672335 , -0.8464816 , -0.13192241,  1.2705436 , -0.2889839 ,\n",
      "         0.4732732 , -1.8048067 ],\n",
      "       [-1.6199226 , -1.483495  ,  0.15388665,  0.03795552,  1.4888426 ,\n",
      "        -0.5394644 ,  0.46278682],\n",
      "       [-1.6010553 , -0.31351715, -0.5753092 ,  0.03893607,  0.02453662,\n",
      "         0.85949636,  1.3907813 ],\n",
      "       [ 0.63844275,  1.3476439 , -1.2903419 ,  0.28634447, -1.1106054 ,\n",
      "        -0.02782803, -0.68216944],\n",
      "       [ 0.12011717,  1.0638541 , -1.1664674 , -2.0192707 , -0.32967213,\n",
      "        -0.30595127, -0.06867295]], dtype=float32)] \n",
      "bias :\n",
      " [array([ 0.10513565, -1.60157   , -0.19362834, -0.6927981 , -0.6267763 ,\n",
      "        1.0606017 , -0.8948419 ], dtype=float32), array([ 1.071684  , -0.08393024, -0.85950166,  1.5786653 , -0.8072031 ,\n",
      "        1.3255489 , -2.4748886 ], dtype=float32), array([ 0.79741764, -0.72362757,  0.8961727 , -0.60088176,  0.24870804,\n",
      "       -0.55661845, -0.47512126], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.52354175 0.4995206  0.52464074 0.49209818 0.51609766 0.4949895\n",
      "  0.45560676]\n",
      " [0.48243526 0.4720728  0.4754251  0.5246049  0.5070585  0.5135045\n",
      "  0.49385735]\n",
      " [0.5278927  0.5451173  0.52665365 0.47444242 0.48332122 0.4910737\n",
      "  0.5074866 ]\n",
      " [0.46767792 0.4901603  0.47481874 0.5086319  0.4922362  0.5004693\n",
      "  0.5485498 ]] \n",
      "Correct:\n",
      "  [[1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]] \n",
      "Accuracy:  0.5\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step : 2000 \n",
      "cost : 0.6905181 \n",
      "Weight :\n",
      " [array([[ 0.94509256,  0.07549924,  1.9679418 , -0.4259058 ,  1.4344273 ,\n",
      "         1.0902822 ,  0.315116  ],\n",
      "       [-2.1286063 ,  0.76347405,  0.40362662, -0.305297  ,  0.08286142,\n",
      "         0.456113  ,  0.05853087]], dtype=float32), array([[ 1.4211286e+00, -4.2803788e-01, -2.9253829e-01, -6.5632558e-01,\n",
      "        -1.1645159e+00, -2.5257531e-01, -8.6143565e-01],\n",
      "       [ 7.7637947e-01, -1.2950206e-01,  2.1008644e+00,  2.2568968e-03,\n",
      "         1.3763648e+00, -6.1115390e-01,  1.0911729e+00],\n",
      "       [-3.7266478e-01,  2.9793474e-01,  1.2750874e-02, -1.1787148e+00,\n",
      "        -5.5697274e-01,  4.8188612e-01, -2.1029453e+00],\n",
      "       [-3.0041739e-01, -1.2098879e+00,  2.0531297e+00,  4.4980934e-01,\n",
      "         1.0671337e+00, -8.2459635e-01,  2.1192639e-01],\n",
      "       [-1.6672170e+00,  3.6704454e-01, -1.2632650e+00, -9.7976081e-02,\n",
      "         8.2654941e-01, -1.3584203e+00, -8.1455417e-02],\n",
      "       [ 5.2299404e-01,  1.3814983e+00, -1.3738587e+00, -8.2702845e-01,\n",
      "        -1.0431877e+00, -1.3350264e+00, -1.7925992e+00],\n",
      "       [-1.2705089e+00, -4.7657040e-01,  7.4312776e-01,  2.9832036e+00,\n",
      "         4.9357888e-01,  1.0650065e+00,  3.4207416e-01]], dtype=float32), array([[ 3.0239159e-01,  1.1508156e+00,  6.2532765e-01, -3.3281723e-01,\n",
      "        -1.7736614e-01,  5.4750896e-01, -1.7267241e-03],\n",
      "       [-9.9983051e-02,  1.0111496e+00, -9.7753394e-01,  6.8519753e-01,\n",
      "        -8.9520758e-01,  5.1412064e-01,  7.5986868e-01],\n",
      "       [ 1.6657165e+00, -8.4324044e-01, -1.3201943e-01,  1.2632861e+00,\n",
      "        -2.9527140e-01,  4.6837997e-01, -1.8007087e+00],\n",
      "       [-1.6547490e+00, -1.5183377e+00,  1.2068001e-01, -1.9708944e-03,\n",
      "         1.4514083e+00, -5.7718599e-01,  4.2912593e-01],\n",
      "       [-1.6064860e+00, -3.1945273e-01, -5.7998151e-01,  1.9209148e-02,\n",
      "         1.0391655e-02,  8.4375376e-01,  1.3738192e+00],\n",
      "       [ 6.2940210e-01,  1.3402295e+00, -1.2980485e+00,  2.7659276e-01,\n",
      "        -1.1200345e+00, -3.6683280e-02, -6.8518877e-01],\n",
      "       [ 1.2031425e-01,  1.0643393e+00, -1.1661998e+00, -2.0193267e+00,\n",
      "        -3.2970950e-01, -3.0589673e-01, -6.8101838e-02]], dtype=float32)] \n",
      "bias :\n",
      " [array([ 0.00506047, -1.6089917 , -0.19222176, -0.7086573 , -0.63846195,\n",
      "        1.0625694 , -0.90373904], dtype=float32), array([ 1.0923765 , -0.07707047, -0.8745608 ,  1.5790989 , -0.81973946,\n",
      "        1.3243041 , -2.4745638 ], dtype=float32), array([ 0.79404265, -0.73669374,  0.89367294, -0.6007224 ,  0.2518312 ,\n",
      "       -0.557573  , -0.48525253], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.5220351  0.499799   0.52402526 0.49202865 0.5153159  0.49668863\n",
      "  0.4581033 ]\n",
      " [0.48422858 0.47462434 0.47524726 0.5228649  0.50467473 0.51184773\n",
      "  0.49165508]\n",
      " [0.5291009  0.5460941  0.5284473  0.4762244  0.4844254  0.49428335\n",
      "  0.50978047]\n",
      " [0.46688798 0.487256   0.47355324 0.5089146  0.4933579  0.498208\n",
      "  0.54629683]] \n",
      "Correct:\n",
      "  [[1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]] \n",
      "Accuracy:  0.5\n",
      "step : 2500 \n",
      "cost : 0.68896717 \n",
      "Weight :\n",
      " [array([[ 0.95539075,  0.03960338,  1.9793928 , -0.42464134,  1.4525082 ,\n",
      "         1.1198447 ,  0.343871  ],\n",
      "       [-2.1988657 ,  0.7504173 ,  0.44933692, -0.32349584,  0.05575022,\n",
      "         0.5527802 ,  0.10807133]], dtype=float32), array([[ 1.4645009 , -0.4106524 , -0.303656  , -0.6976535 , -1.1471584 ,\n",
      "        -0.27624893, -0.85633963],\n",
      "       [ 0.7763705 , -0.1281139 ,  2.102023  ,  0.00460308,  1.3664998 ,\n",
      "        -0.6102572 ,  1.0898122 ],\n",
      "       [-0.36586297,  0.31297323,  0.01939553, -1.2022318 , -0.5724737 ,\n",
      "         0.4666284 , -2.1032453 ],\n",
      "       [-0.2929162 , -1.2114099 ,  2.0441704 ,  0.45312417,  1.0695592 ,\n",
      "        -0.82200855,  0.21303046],\n",
      "       [-1.6863183 ,  0.36946136, -1.2594513 , -0.10150261,  0.818794  ,\n",
      "        -1.3609421 , -0.08047116],\n",
      "       [ 0.5474972 ,  1.3945917 , -1.3785675 , -0.8446037 , -1.0568622 ,\n",
      "        -1.3460897 , -1.7927108 ],\n",
      "       [-1.2714095 , -0.47532716,  0.7410029 ,  2.982888  ,  0.4892893 ,\n",
      "         1.0647651 ,  0.34239215]], dtype=float32), array([[ 0.3314494 ,  1.1809064 ,  0.6572529 , -0.28376994, -0.13274318,\n",
      "         0.59047407,  0.05326637],\n",
      "       [-0.07542367,  1.0225309 , -0.95157254,  0.70422274, -0.8673448 ,\n",
      "         0.53334415,  0.7610399 ],\n",
      "       [ 1.6621693 , -0.84247416, -0.13375315,  1.2547222 , -0.30256116,\n",
      "         0.46179068, -1.7983106 ],\n",
      "       [-1.6973338 , -1.5615891 ,  0.08100211, -0.04967355,  1.4079592 ,\n",
      "        -0.6233447 ,  0.38721344],\n",
      "       [-1.6178356 , -0.33119765, -0.5900443 , -0.00487586, -0.00832338,\n",
      "         0.82351   ,  1.3527529 ],\n",
      "       [ 0.6169791 ,  1.3289845 , -1.3083317 ,  0.26320145, -1.1318619 ,\n",
      "        -0.04965162, -0.69207305],\n",
      "       [ 0.12010676,  1.0644001 , -1.1663275 , -2.0197344 , -0.330102  ,\n",
      "        -0.30621535, -0.06790314]], dtype=float32)] \n",
      "bias :\n",
      " [array([-0.10452357, -1.6161325 , -0.1905173 , -0.72282434, -0.64844376,\n",
      "        1.0566818 , -0.91563016], dtype=float32), array([ 1.112066  , -0.07239025, -0.88968015,  1.5767602 , -0.82817197,\n",
      "        1.3232939 , -2.473328  ], dtype=float32), array([ 0.78926396, -0.7514565 ,  0.8915981 , -0.6009613 ,  0.25674152,\n",
      "       -0.5602934 , -0.49592507], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.52067405 0.49982232 0.52355206 0.4921104  0.514822   0.4983733\n",
      "  0.46028516]\n",
      " [0.48493132 0.47615036 0.4747068  0.5210364  0.5027339  0.5097353\n",
      "  0.48960912]\n",
      " [0.5322828  0.5491293  0.53106654 0.47835457 0.48492733 0.4985282\n",
      "  0.51226574]\n",
      " [0.46525645 0.48369035 0.47172934 0.50872654 0.4942034  0.49539632\n",
      "  0.54394853]] \n",
      "Correct:\n",
      "  [[1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]] \n",
      "Accuracy:  0.5\n",
      "step : 3000 \n",
      "cost : 0.6866953 \n",
      "Weight :\n",
      " [array([[ 9.9284136e-01,  1.4110280e-03,  1.9959162e+00, -4.2677781e-01,\n",
      "         1.4782344e+00,  1.1606576e+00,  3.8103366e-01],\n",
      "       [-2.2855382e+00,  7.3720807e-01,  5.0873673e-01, -3.4685656e-01,\n",
      "         3.3626080e-02,  6.6376072e-01,  1.6677481e-01]], dtype=float32), array([[ 1.5231469 , -0.39146024, -0.3131832 , -0.7568545 , -1.1294174 ,\n",
      "        -0.30488032, -0.851287  ],\n",
      "       [ 0.77677387, -0.12562789,  2.102632  ,  0.0057962 ,  1.35791   ,\n",
      "        -0.61009073,  1.0887073 ],\n",
      "       [-0.357949  ,  0.33216587,  0.02540628, -1.2368563 , -0.58473605,\n",
      "         0.44926307, -2.1032326 ],\n",
      "       [-0.28560418, -1.2152835 ,  2.0354843 ,  0.4572138 ,  1.0734663 ,\n",
      "        -0.81879795,  0.21450575],\n",
      "       [-1.7118797 ,  0.37235156, -1.256136  , -0.10827813,  0.8158917 ,\n",
      "        -1.3621813 , -0.0790512 ],\n",
      "       [ 0.57571065,  1.4097329 , -1.3833026 , -0.87182516, -1.0676277 ,\n",
      "        -1.3596494 , -1.7922198 ],\n",
      "       [-1.2758065 , -0.47454286,  0.7392032 ,  2.9821277 ,  0.4864215 ,\n",
      "         1.0652535 ,  0.34291366]], dtype=float32), array([[ 0.36851543,  1.218473  ,  0.6986839 , -0.224641  , -0.07614474,\n",
      "         0.64119494,  0.11790608],\n",
      "       [-0.04939738,  1.035563  , -0.9223247 ,  0.7259681 , -0.83506984,\n",
      "         0.554634  ,  0.7652421 ],\n",
      "       [ 1.6562021 , -0.84446305, -0.13765216,  1.244309  , -0.31155473,\n",
      "         0.4530465 , -1.7980684 ],\n",
      "       [-1.750009  , -1.6152326 ,  0.03254876, -0.10792857,  1.3557051 ,\n",
      "        -0.68042374,  0.33467445],\n",
      "       [-1.6355363 , -0.34919372, -0.6061136 , -0.03410277, -0.03246435,\n",
      "         0.7980348 ,  1.3266994 ],\n",
      "       [ 0.60047597,  1.3133689 , -1.3218507 ,  0.2454076 , -1.1468831 ,\n",
      "        -0.06737259, -0.7034257 ],\n",
      "       [ 0.11944377,  1.0639901 , -1.1669104 , -2.0205534 , -0.33091855,\n",
      "        -0.3069649 , -0.06813478]], dtype=float32)] \n",
      "bias :\n",
      " [array([-0.22684057, -1.622967  , -0.18790677, -0.73489386, -0.6566471 ,\n",
      "        1.0392015 , -0.9318648 ], dtype=float32), array([ 1.1300687 , -0.0707033 , -0.90483975,  1.5718042 , -0.8314376 ,\n",
      "        1.3229854 , -2.4710014 ], dtype=float32), array([ 0.7826243 , -0.76823694,  0.8899065 , -0.60151845,  0.2638426 ,\n",
      "       -0.56491226, -0.50705224], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.5192167  0.49935186 0.5230408  0.49231508 0.51460683 0.49999383\n",
      "  0.46213746]\n",
      " [0.48477888 0.4769774  0.47369486 0.5190108  0.50085366 0.507133\n",
      "  0.48752666]\n",
      " [0.53783286 0.5545503  0.5349401  0.48114485 0.48515043 0.5042199\n",
      "  0.51529354]\n",
      " [0.46253115 0.47917745 0.469159   0.50792426 0.49468055 0.4918312\n",
      "  0.5413971 ]] \n",
      "Correct:\n",
      "  [[1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]] \n",
      "Accuracy:  0.5\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step : 3500 \n",
      "cost : 0.68315846 \n",
      "Weight :\n",
      " [array([[ 1.0682366 , -0.03941236,  2.0193923 , -0.43255156,  1.5140363 ,\n",
      "         1.2163426 ,  0.4325249 ],\n",
      "       [-2.393019  ,  0.72374177,  0.58944833, -0.37764144,  0.01522263,\n",
      "         0.794179  ,  0.23250963]], dtype=float32), array([[ 1.6006407 , -0.36942452, -0.32109675, -0.83852506, -1.1115116 ,\n",
      "        -0.34078565, -0.846293  ],\n",
      "       [ 0.77817607, -0.12209892,  2.1026511 ,  0.00493295,  1.3504419 ,\n",
      "        -0.6107816 ,  1.0879042 ],\n",
      "       [-0.34788975,  0.3562661 ,  0.03067161, -1.2861384 , -0.59352845,\n",
      "         0.4284013 , -2.102825  ],\n",
      "       [-0.27900267, -1.2222117 ,  2.027099  ,  0.46294236,  1.0796702 ,\n",
      "        -0.81448495,  0.2164469 ],\n",
      "       [-1.7468244 ,  0.3751158 , -1.2531193 , -0.11739378,  0.81922513,\n",
      "        -1.3617039 , -0.07712205],\n",
      "       [ 0.6085302 ,  1.4272151 , -1.3882133 , -0.9120284 , -1.0748887 ,\n",
      "        -1.3766649 , -1.7909484 ],\n",
      "       [-1.285872  , -0.4743617 ,  0.7377885 ,  2.981493  ,  0.48575744,\n",
      "         1.0668678 ,  0.3437081 ]], dtype=float32), array([[ 0.4149259 ,  1.264981  ,  0.7516285 , -0.15305352, -0.00465091,\n",
      "         0.7014937 ,  0.19466783],\n",
      "       [-0.02134901,  1.0507696 , -0.8886197 ,  0.7515347 , -0.7966443 ,\n",
      "         0.5787362 ,  0.7733859 ],\n",
      "       [ 1.647134  , -0.8497963 , -0.14444418,  1.2312776 , -0.3230939 ,\n",
      "         0.4414124 , -1.8006508 ],\n",
      "       [-1.8164082 , -1.6825722 , -0.02817002, -0.18086717,  1.2906082 ,\n",
      "        -0.7522537 ,  0.26777294],\n",
      "       [-1.6608543 , -0.37471688, -0.6295105 , -0.06997264, -0.06349886,\n",
      "         0.7658272 ,  1.2940828 ],\n",
      "       [ 0.5788608 ,  1.2925044 , -1.339485  ,  0.22208439, -1.1661342 ,\n",
      "        -0.09087191, -0.7201841 ],\n",
      "       [ 0.11823197,  1.063021  , -1.1680465 , -2.0218825 , -0.33226427,\n",
      "        -0.3082442 , -0.06889188]], dtype=float32)] \n",
      "bias :\n",
      " [array([-0.36710125, -1.6293224 , -0.18354672, -0.74396163, -0.6626378 ,\n",
      "        1.0037634 , -0.9549012 ], dtype=float32), array([ 1.1447405 , -0.07336594, -0.9200298 ,  1.5647073 , -0.8275052 ,\n",
      "        1.3240731 , -2.4673011 ], dtype=float32), array([ 0.773431  , -0.78760296,  0.8886588 , -0.6023879 ,  0.27384067,\n",
      "       -0.5718257 , -0.51865643], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.5171732  0.49785432 0.5221738  0.49253532 0.5147009  0.50134134\n",
      "  0.4635351 ]\n",
      " [0.48413092 0.4775795  0.47214213 0.5166723  0.498559   0.5040698\n",
      "  0.48522496]\n",
      " [0.5464356  0.56299037 0.54072624 0.48512924 0.48557892 0.5120213\n",
      "  0.51942235]\n",
      " [0.4582863  0.4732887  0.46549997 0.5062555  0.49457097 0.48720872\n",
      "  0.5384798 ]] \n",
      "Correct:\n",
      "  [[1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]] \n",
      "Accuracy:  0.5\n",
      "step : 4000 \n",
      "cost : 0.677265 \n",
      "Weight :\n",
      " [array([[ 1.1961470e+00, -8.3301283e-02,  2.0527413e+00, -4.4254014e-01,\n",
      "         1.5626515e+00,  1.2922935e+00,  5.0773245e-01],\n",
      "       [-2.5284545e+00,  7.1022767e-01,  7.0404267e-01, -4.1906625e-01,\n",
      "        -1.2681608e-03,  9.5195973e-01,  3.0035993e-01]], dtype=float32), array([[ 1.7027675e+00, -3.4231436e-01, -3.2733205e-01, -9.4998205e-01,\n",
      "        -1.0944886e+00, -3.8723278e-01, -8.4138942e-01],\n",
      "       [ 7.8134048e-01, -1.1770148e-01,  2.1019351e+00,  4.9099390e-04,\n",
      "         1.3441429e+00, -6.1264640e-01,  1.0874852e+00],\n",
      "       [-3.3294663e-01,  3.8659137e-01,  3.4864832e-02, -1.3555335e+00,\n",
      "        -5.9866661e-01,  4.0188116e-01, -2.1018748e+00],\n",
      "       [-2.7440766e-01, -1.2333369e+00,  2.0191147e+00,  4.7184554e-01,\n",
      "         1.0896424e+00, -8.0826026e-01,  2.1900523e-01],\n",
      "       [-1.7956012e+00,  3.7684688e-01, -1.2501215e+00, -1.2567025e-01,\n",
      "         8.3115911e-01, -1.3583628e+00, -7.4541278e-02],\n",
      "       [ 6.4725423e-01,  1.4474895e+00, -1.3935331e+00, -9.7044808e-01,\n",
      "        -1.0775456e+00, -1.3986475e+00, -1.7886268e+00],\n",
      "       [-1.3051049e+00, -4.7507071e-01,  7.3683840e-01,  2.9822190e+00,\n",
      "         4.8880619e-01,  1.0703138e+00,  3.4490114e-01]], dtype=float32), array([[ 0.4732683 ,  1.3231374 ,  0.8196535 , -0.06520797,  0.08644649,\n",
      "         0.77435476,  0.2874811 ],\n",
      "       [ 0.00964572,  1.0689758 , -0.8485835 ,  0.78247064, -0.7494423 ,\n",
      "         0.60664475,  0.7867407 ],\n",
      "       [ 1.6338133 , -0.859539  , -0.15523937,  1.2144423 , -0.33835238,\n",
      "         0.42567328, -1.8071159 ],\n",
      "       [-1.9022883 , -1.7690593 , -0.10676751, -0.27495426,  1.2063144 ,\n",
      "        -0.8449784 ,  0.18040277],\n",
      "       [-1.6963241 , -0.41030833, -0.66269916, -0.11518537, -0.10397165,\n",
      "         0.72411364,  1.2521344 ],\n",
      "       [ 0.5504872 ,  1.2648836 , -1.3626248 ,  0.19141585, -1.1912135 ,\n",
      "        -0.12190502, -0.7439482 ],\n",
      "       [ 0.11631428,  1.0613422 , -1.1698987 , -2.023884  , -0.3343051 ,\n",
      "        -0.31021607, -0.07032873]], dtype=float32)] \n",
      "bias :\n",
      " [array([-0.5338127 , -1.6347536 , -0.17624757, -0.7482279 , -0.665328  ,\n",
      "        0.939249  , -0.98894376], dtype=float32), array([ 1.1526893 , -0.08261371, -0.93514013,  1.5568701 , -0.8125811 ,\n",
      "        1.3278011 , -2.461771  ], dtype=float32), array([ 0.7608014 , -0.810367  ,  0.88807964, -0.60371256,  0.2877643 ,\n",
      "       -0.5818334 , -0.5309825 ], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.5134782  0.4941251  0.5202529  0.49241754 0.51509863 0.5018111\n",
      "  0.46404672]\n",
      " [0.48390856 0.47903067 0.47018054 0.51400316 0.4951462  0.50088495\n",
      "  0.48260444]\n",
      " [0.55902106 0.5753595  0.549449   0.49124002 0.4871693  0.5229448\n",
      "  0.52562046]\n",
      " [0.45179248 0.46535695 0.4601758  0.5032642  0.49345645 0.4810583\n",
      "  0.5349333 ]] \n",
      "Correct:\n",
      "  [[1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]] \n",
      "Accuracy:  0.5\n",
      "step : 4500 \n",
      "cost : 0.66664416 \n",
      "Weight :\n",
      " [array([[ 1.3965714 , -0.13071877,  2.1004772 , -0.45781377,  1.6268282 ,\n",
      "         1.3971139 ,  0.6228839 ],\n",
      "       [-2.7030072 ,  0.69744426,  0.87329656, -0.47606483, -0.01890871,\n",
      "         1.1504341 ,  0.3608926 ]], dtype=float32), array([[ 1.8393847 , -0.30580384, -0.3318641 , -1.1023512 , -1.0815032 ,\n",
      "        -0.44897118, -0.8366368 ],\n",
      "       [ 0.7871532 , -0.11285987,  2.1002178 , -0.01024135,  1.3394601 ,\n",
      "        -0.61628675,  1.087583  ],\n",
      "       [-0.3065223 ,  0.4254053 ,  0.03721077, -1.453978  , -0.60026854,\n",
      "         0.36600262, -2.1001108 ],\n",
      "       [-0.27476647, -1.2505513 ,  2.011883  ,  0.4867503 ,  1.1061008 ,\n",
      "        -0.79860926,  0.22243193],\n",
      "       [-1.8649075 ,  0.37607676, -1.2465893 , -0.12435839,  0.85589004,\n",
      "        -1.3494825 , -0.07104879],\n",
      "       [ 0.6943329 ,  1.4714754 , -1.3996991 , -1.0557078 , -1.073872  ,\n",
      "        -1.428195  , -1.7848519 ],\n",
      "       [-1.3392193 , -0.47730902,  0.73652333,  2.987545  ,  0.4985716 ,\n",
      "         1.0769845 ,  0.34670752]], dtype=float32), array([[ 0.5485854 ,  1.3980399 ,  0.9089768 ,  0.04507663,  0.20457433,\n",
      "         0.8648484 ,  0.40266776],\n",
      "       [ 0.04574677,  1.0919944 , -0.79887027,  0.8213671 , -0.6892868 ,\n",
      "         0.6400936 ,  0.80734587],\n",
      "       [ 1.6142756 , -0.8755435 , -0.17187242,  1.191848  , -0.35919863,\n",
      "         0.40374178, -1.8192449 ],\n",
      "       [-2.01703   , -1.8838226 , -0.21277137, -0.4006915 ,  1.0922042 ,\n",
      "        -0.9688251 ,  0.06222584],\n",
      "       [-1.7465433 , -0.46056935, -0.7101107 , -0.17454459, -0.1583975 ,\n",
      "         0.6678913 ,  1.195953  ],\n",
      "       [ 0.51256126,  1.2278221 , -1.3937646 ,  0.15026039, -1.2249522 ,\n",
      "        -0.16365668, -0.77764314],\n",
      "       [ 0.11343606,  1.0587116 , -1.1727272 , -2.0268164 , -0.3373121 ,\n",
      "        -0.31314757, -0.07269564]], dtype=float32)] \n",
      "bias :\n",
      " [array([-0.7396744 , -1.638323  , -0.16523053, -0.7441279 , -0.66208816,\n",
      "        0.8255763 , -1.0403901 ], dtype=float32), array([ 1.1471081 , -0.10223193, -0.94977903,  1.5517902 , -0.77955574,\n",
      "        1.3366213 , -2.4536548 ], dtype=float32), array([ 0.74406374, -0.83731765,  0.8887263 , -0.60583425,  0.30685467,\n",
      "       -0.5962812 , -0.5447067 ], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.50565064 0.4853241  0.5155527  0.49083906 0.5154576  0.4997333\n",
      "  0.46236354]\n",
      " [0.48660958 0.4840472  0.4686566  0.51151764 0.48966298 0.49893478\n",
      "  0.48003244]\n",
      " [0.5765242  0.592664   0.56269276 0.5010353  0.4919252  0.53839916\n",
      "  0.53557724]\n",
      " [0.44167846 0.4542457  0.45218378 0.4980954  0.4905978  0.47257823\n",
      "  0.5303126 ]] \n",
      "Correct:\n",
      "  [[1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]] \n",
      "Accuracy:  0.5\n",
      "step : 5000 \n",
      "cost : 0.64581954 \n",
      "Weight :\n",
      " [array([[ 1.696527  , -0.18205191,  2.170005  , -0.48070377,  1.7089443 ,\n",
      "         1.5462413 ,  0.80493593],\n",
      "       [-2.933203  ,  0.68729794,  1.1271838 , -0.5563286 , -0.04431127,\n",
      "         1.4132109 ,  0.40220687]], dtype=float32), array([[ 2.027881  , -0.25184307, -0.334973  , -1.3123767 , -1.081312  ,\n",
      "        -0.53305393, -0.8321189 ],\n",
      "       [ 0.7963315 , -0.10846   ,  2.0971045 , -0.03139375,  1.3375219 ,\n",
      "        -0.62265164,  1.0884238 ],\n",
      "       [-0.25438708,  0.476532  ,  0.03608282, -1.5966275 , -0.59999496,\n",
      "         0.31430992, -2.0969977 ],\n",
      "       [-0.2865024 , -1.2770219 ,  2.0063448 ,  0.51315904,  1.1339897 ,\n",
      "        -0.78251505,  0.22716928],\n",
      "       [-1.9645033 ,  0.37040877, -1.2412279 , -0.09312471,  0.9007229 ,\n",
      "        -1.329035  , -0.06616639],\n",
      "       [ 0.7561709 ,  1.5018852 , -1.4074656 , -1.182206  , -1.0628701 ,\n",
      "        -1.4703261 , -1.779075  ],\n",
      "       [-1.3975402 , -0.48234308,  0.73742694,  3.007071  ,  0.5208438 ,\n",
      "         1.0901259 ,  0.34946933]], dtype=float32), array([[ 0.65151227,  1.5002025 ,  1.0308887 ,  0.18858145,  0.36156198,\n",
      "         0.9825282 ,  0.5510561 ],\n",
      "       [ 0.09297365,  1.1248131 , -0.7328589 ,  0.8734096 , -0.6093352 ,\n",
      "         0.68315226,  0.8390967 ],\n",
      "       [ 1.5853637 , -0.900724  , -0.19743854,  1.1601701 , -0.38895848,\n",
      "         0.372064  , -1.8400718 ],\n",
      "       [-2.1757267 , -2.0417194 , -0.36270213, -0.5754664 ,  0.9296345 ,\n",
      "        -1.1409348 , -0.10451874],\n",
      "       [-1.8191884 , -0.53314346, -0.7794879 , -0.25655884, -0.23508601,\n",
      "         0.58835244,  1.1168224 ],\n",
      "       [ 0.4604053 ,  1.1767436 , -1.4376509 ,  0.09291636, -1.273     ,\n",
      "        -0.22197776, -0.8268183 ],\n",
      "       [ 0.10920417,  1.0547675 , -1.1769509 , -2.0311093 , -0.34174547,\n",
      "        -0.31746778, -0.07639455]], dtype=float32)] \n",
      "bias :\n",
      " [array([-0.9995452 , -1.6382875 , -0.15568955, -0.72456104, -0.64643216,\n",
      "        0.62648624, -1.1160225 ], dtype=float32), array([ 1.1147101 , -0.13852258, -0.9625613 ,  1.5584147 , -0.7158185 ,\n",
      "        1.3556943 , -2.4416628 ], dtype=float32), array([ 0.72483903, -0.86742485,  0.8922361 , -0.6089219 ,  0.33200565,\n",
      "       -0.6164968 , -0.56095237], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.48763424 0.46451205 0.5035424  0.48427784 0.51393825 0.49047947\n",
      "  0.45457432]\n",
      " [0.49805412 0.49872684 0.47053936 0.51156753 0.48187864 0.5021383\n",
      "  0.4795659 ]\n",
      " [0.59955317 0.61585134 0.5829357  0.5169696  0.5037236  0.56021225\n",
      "  0.55215156]\n",
      " [0.424901   0.43756232 0.43950224 0.48897478 0.48470736 0.45999256\n",
      "  0.5236427 ]] \n",
      "Correct:\n",
      "  [[1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]] \n",
      "Accuracy:  0.5\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step : 5500 \n",
      "cost : 0.60245126 \n",
      "Weight :\n",
      " [array([[ 2.1273057 , -0.23763128,  2.2744794 , -0.5175283 ,  1.8135729 ,\n",
      "         1.7706782 ,  1.0872133 ],\n",
      "       [-3.2416086 ,  0.6833048 ,  1.4908121 , -0.6708607 , -0.09557356,\n",
      "         1.7805876 ,  0.42463338]], dtype=float32), array([[ 2.2977066 , -0.16631468, -0.33805466, -1.607218  , -1.11622   ,\n",
      "        -0.6503833 , -0.8278993 ],\n",
      "       [ 0.80896974, -0.10572739,  2.0923104 , -0.06529105,  1.3396993 ,\n",
      "        -0.63277066,  1.0903872 ],\n",
      "       [-0.15145995,  0.54671097,  0.02880654, -1.8011253 , -0.60623044,\n",
      "         0.23717253, -2.0915802 ],\n",
      "       [-0.32239756, -1.3175938 ,  2.0048816 ,  0.5608726 ,  1.1806942 ,\n",
      "        -0.7542906 ,  0.23406331],\n",
      "       [-2.1081386 ,  0.3562507 , -1.2308273 ,  0.00661455,  0.9763407 ,\n",
      "        -1.284245  , -0.05896898],\n",
      "       [ 0.8530685 ,  1.5485607 , -1.4183438 , -1.3702098 , -1.0534554 ,\n",
      "        -1.5359107 , -1.7707599 ],\n",
      "       [-1.494066  , -0.49159583,  0.74150705,  3.067508  ,  0.5647493 ,\n",
      "         1.1178763 ,  0.35368538]], dtype=float32), array([[ 0.8054032 ,  1.6524986 ,  1.2068473 ,  0.38617936,  0.5772362 ,\n",
      "         1.1478368 ,  0.7532434 ],\n",
      "       [ 0.167728  ,  1.1812258 , -0.6369832 ,  0.95038724, -0.4983553 ,\n",
      "         0.7472412 ,  0.8908859 ],\n",
      "       [ 1.5434973 , -0.9379191 , -0.2364372 ,  1.1143851 , -0.43370277,\n",
      "         0.32573038, -1.8740137 ],\n",
      "       [-2.3978329 , -2.2613716 , -0.58205914, -0.8256127 ,  0.68668836,\n",
      "        -1.3860832 , -0.3473904 ],\n",
      "       [-1.9241511 , -0.6376186 , -0.8828553 , -0.37499437, -0.3493172 ,\n",
      "         0.4720424 ,  1.0005746 ],\n",
      "       [ 0.38822138,  1.1062443 , -1.5024644 ,  0.00980185, -1.347015  ,\n",
      "        -0.30590487, -0.9009912 ],\n",
      "       [ 0.10307977,  1.0490592 , -1.1832211 , -2.0374527 , -0.34843   ,\n",
      "        -0.3238336 , -0.08204879]], dtype=float32)] \n",
      "bias :\n",
      " [array([-1.319029  , -1.6324239 , -0.17554007, -0.67691886, -0.60231876,\n",
      "        0.28935084, -1.217925  ], dtype=float32), array([ 1.0325118 , -0.19974029, -0.96929836,  1.5996147 , -0.60520583,\n",
      "        1.3953072 , -2.4235332 ], dtype=float32), array([ 0.7142288 , -0.89098716,  0.9040283 , -0.61020094,  0.36254936,\n",
      "       -0.63923824, -0.5790941 ], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.44539076 0.41589835 0.4724735  0.46227047 0.50303775 0.46173877\n",
      "  0.42969462]\n",
      " [0.5282883  0.5333251  0.48387936 0.5208846  0.47654653 0.5187321\n",
      "  0.48761317]\n",
      " [0.6304152  0.6479428  0.6149452  0.5436138  0.52901405 0.5919755\n",
      "  0.5804317 ]\n",
      " [0.39503118 0.4100752  0.41780257 0.47177395 0.4730652  0.4385697\n",
      "  0.5118122 ]] \n",
      "Correct:\n",
      "  [[1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]] \n",
      "Accuracy:  0.5\n",
      "step : 6000 \n",
      "cost : 0.5152294 \n",
      "Weight :\n",
      " [array([[ 2.695859  , -0.29812786,  2.4334397 , -0.5813535 ,  1.9633875 ,\n",
      "         2.1215715 ,  1.4887261 ],\n",
      "       [-3.6523864 ,  0.6891105 ,  1.9520458 , -0.83017844, -0.21479404,\n",
      "         2.2994876 ,  0.45553058]], dtype=float32), array([[ 2.6850462 , -0.03136826, -0.34514266, -2.02529   , -1.2274928 ,\n",
      "        -0.8146247 , -0.8239971 ],\n",
      "       [ 0.8240904 , -0.10516144,  2.085959  , -0.10634845,  1.3445432 ,\n",
      "        -0.6475116 ,  1.0940365 ],\n",
      "       [ 0.03032288,  0.64585084,  0.01177746, -2.0615797 , -0.6430432 ,\n",
      "         0.12585428, -2.0826306 ],\n",
      "       [-0.40234298, -1.3772613 ,  2.0116878 ,  0.63370395,  1.249562  ,\n",
      "        -0.70749295,  0.24458759],\n",
      "       [-2.3186774 ,  0.32710847, -1.2093817 ,  0.22676381,  1.0932981 ,\n",
      "        -1.192113  , -0.04773518],\n",
      "       [ 1.0343711 ,  1.6357771 , -1.4375355 , -1.6362491 , -1.0841366 ,\n",
      "        -1.6462545 , -1.7600859 ],\n",
      "       [-1.6461868 , -0.50547665,  0.75270844,  3.2211325 ,  0.6397003 ,\n",
      "         1.1774367 ,  0.35989997]], dtype=float32), array([[ 1.0462772 ,  1.8899679 ,  1.4704463 ,  0.6742011 ,  0.8856973 ,\n",
      "         1.3979653 ,  1.0451757 ],\n",
      "       [ 0.29527533,  1.2823238 , -0.4923815 ,  1.0730203 , -0.3395746 ,\n",
      "         0.85510516,  0.97931075],\n",
      "       [ 1.4893304 , -0.98450524, -0.29139653,  1.0512372 , -0.5005305 ,\n",
      "         0.26306212, -1.9232683 ],\n",
      "       [-2.6935325 , -2.5498114 , -0.89515644, -1.1773753 ,  0.3228349 ,\n",
      "        -1.7238568 , -0.6943835 ],\n",
      "       [-2.065639  , -0.77649975, -1.0321082 , -0.5444806 , -0.52303886,\n",
      "         0.3076907 ,  0.8321964 ],\n",
      "       [ 0.2940034 ,  1.0162029 , -1.5971663 , -0.10921052, -1.464459  ,\n",
      "        -0.42205366, -1.0101191 ],\n",
      "       [ 0.09460513,  1.0413725 , -1.192325  , -2.0467534 , -0.35868183,\n",
      "        -0.3329879 , -0.09040176]], dtype=float32)] \n",
      "bias :\n",
      " [array([-1.6728334 , -1.6217195 , -0.27115855, -0.5905017 , -0.4898843 ,\n",
      "       -0.1838674 , -1.3599966 ], dtype=float32), array([ 0.8705822 , -0.29023758, -0.96274996,  1.703439  , -0.44850808,\n",
      "        1.4671557 , -2.3958507 ], dtype=float32), array([ 0.73600125, -0.88510656,  0.9348729 , -0.59859264,  0.39799106,\n",
      "       -0.6479474 , -0.5903925 ], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.35827738 0.31939244 0.40002948 0.40194932 0.46021914 0.3904746\n",
      "  0.36683977]\n",
      " [0.59288114 0.6026243  0.5272535  0.5547979  0.49098152 0.56389624\n",
      "  0.5193505 ]\n",
      " [0.68086135 0.7000629  0.6691967  0.59265935 0.5784058  0.6441196\n",
      "  0.6303755 ]\n",
      " [0.3436079  0.36315688 0.37943566 0.43770245 0.44859636 0.3981269\n",
      "  0.48515248]] \n",
      "Correct:\n",
      "  [[1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]] \n",
      "Accuracy:  0.5\n",
      "step : 6500 \n",
      "cost : 0.3765629 \n",
      "Weight :\n",
      " [array([[ 3.314224  , -0.36174715,  2.65059   , -0.6805376 ,  2.2145417 ,\n",
      "         2.5983386 ,  1.9750103 ],\n",
      "       [-4.151422  ,  0.7047174 ,  2.4384532 , -1.0239779 , -0.45867044,\n",
      "         2.9252944 ,  0.5399653 ]], dtype=float32), array([[ 3.1870563 ,  0.14865606, -0.3606245 , -2.5629492 , -1.4379995 ,\n",
      "        -1.0215521 , -0.82075745],\n",
      "       [ 0.8402061 , -0.10693803,  2.0783408 , -0.14530373,  1.3464887 ,\n",
      "        -0.66657573,  1.0993924 ],\n",
      "       [ 0.29116508,  0.7665576 , -0.01728174, -2.322715  , -0.72617227,\n",
      "        -0.00661892, -2.0706832 ],\n",
      "       [-0.53250104, -1.4534223 ,  2.0283122 ,  0.70097846,  1.3239446 ,\n",
      "        -0.6464629 ,  0.2591668 ],\n",
      "       [-2.623448  ,  0.26631692, -1.1712121 ,  0.58793944,  1.2596596 ,\n",
      "        -1.0215096 , -0.03107809],\n",
      "       [ 1.3416225 ,  1.7712795 , -1.4729776 , -1.945947  , -1.1884606 ,\n",
      "        -1.8041847 , -1.7492021 ],\n",
      "       [-1.8607627 , -0.5289357 ,  0.77400255,  3.5128608 ,  0.75482756,\n",
      "         1.2957126 ,  0.36752322]], dtype=float32), array([[ 1.3767755 ,  2.2117646 ,  1.8351855 ,  1.0757375 ,  1.3195585 ,\n",
      "         1.7532824 ,  1.4509658 ],\n",
      "       [ 0.4684074 ,  1.4180537 , -0.30521032,  1.2448785 , -0.12948982,\n",
      "         1.0120927 ,  1.1084069 ],\n",
      "       [ 1.4351187 , -1.0272491 , -0.3518405 ,  0.98159105, -0.5820305 ,\n",
      "         0.19674173, -1.9776186 ],\n",
      "       [-3.0342917 , -2.8771665 , -1.2862263 , -1.6185791 , -0.16564465,\n",
      "        -2.1319363 , -1.1385926 ],\n",
      "       [-2.2287073 , -0.9327771 , -1.2208519 , -0.7600495 , -0.7625417 ,\n",
      "         0.10664377,  0.6155036 ],\n",
      "       [ 0.18698336,  0.91691995, -1.7176702 , -0.25878578, -1.6278018 ,\n",
      "        -0.56032556, -1.1507038 ],\n",
      "       [ 0.08471901,  1.0329068 , -1.2036793 , -2.058594  , -0.37267023,\n",
      "        -0.34427145, -0.10097212]], dtype=float32)] \n",
      "bias :\n",
      " [array([-1.9964025 , -1.6131711 , -0.42716324, -0.4866737 , -0.2532632 ,\n",
      "       -0.62732935, -1.6108043 ], dtype=float32), array([ 0.6311457 , -0.4044146 , -0.94205517,  1.8451566 , -0.2866968 ,\n",
      "        1.5695916 , -2.3587236 ], dtype=float32), array([ 0.7962419 , -0.84388924,  0.98823833, -0.56257266,  0.44263366,\n",
      "       -0.6248148 , -0.5824263 ], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.2348153  0.19475132 0.27977496 0.2901305  0.35701615 0.2724873\n",
      "  0.26086625]\n",
      " [0.70229626 0.713314   0.6235986  0.6348746  0.5561361  0.6556062\n",
      "  0.59633267]\n",
      " [0.76076996 0.7782407  0.7517756  0.67794955 0.6644393  0.7265229\n",
      "  0.710042  ]\n",
      " [0.26215512 0.28569984 0.31028622 0.37024218 0.3934899  0.323986\n",
      "  0.42194992]] \n",
      "Correct:\n",
      "  [[1. 0. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]] \n",
      "Accuracy:  0.53571427\n",
      "step : 7000 \n",
      "cost : 0.23526219 \n",
      "Weight :\n",
      " [array([[ 3.8187008 , -0.41781116,  2.8737912 , -0.79584104,  2.5700805 ,\n",
      "         3.0543888 ,  2.4114559 ],\n",
      "       [-4.6252117 ,  0.72250825,  2.8379114 , -1.2066281 , -0.82145995,\n",
      "         3.4657516 ,  0.720421  ]], dtype=float32), array([[ 3.6940517 ,  0.32728854, -0.38050386, -3.0919027 , -1.6925504 ,\n",
      "        -1.2321904 , -0.8187475 ],\n",
      "       [ 0.8570781 , -0.11097464,  2.0699565 , -0.17869876,  1.3430902 ,\n",
      "        -0.68690044,  1.104758  ],\n",
      "       [ 0.56006277,  0.86859936, -0.05167984, -2.526501  , -0.8190675 ,\n",
      "        -0.11922581, -2.0597286 ],\n",
      "       [-0.66371626, -1.5264103 ,  2.046884  ,  0.7304263 ,  1.3746027 ,\n",
      "        -0.5944012 ,  0.27379858],\n",
      "       [-2.991995  ,  0.16135785, -1.1211464 ,  1.00072   ,  1.465943  ,\n",
      "        -0.7776928 , -0.01199582],\n",
      "       [ 1.6909723 ,  1.904158  , -1.5174724 , -2.2135565 , -1.3176664 ,\n",
      "        -1.9573786 , -1.7410239 ],\n",
      "       [-2.1051302 , -0.5738297 ,  0.80167174,  3.8777375 ,  0.9111109 ,\n",
      "         1.4760053 ,  0.3738995 ]], dtype=float32), array([[ 1.7183154 ,  2.5385213 ,  2.2342455 ,  1.5272692 ,  1.8287668 ,\n",
      "         2.1476724 ,  1.9135259 ],\n",
      "       [ 0.63287413,  1.5393344 , -0.12265775,  1.4223553 ,  0.09015805,\n",
      "         1.1742066 ,  1.2475919 ],\n",
      "       [ 1.3963188 , -1.0549111 , -0.39692676,  0.9288477 , -0.6487413 ,\n",
      "         0.14767906, -2.01756   ],\n",
      "       [-3.3452485 , -3.1787777 , -1.6674792 , -2.0607774 , -0.67976826,\n",
      "        -2.525372  , -1.5991557 ],\n",
      "       [-2.3806086 , -1.0781614 , -1.409225  , -0.98008096, -1.0220242 ,\n",
      "        -0.0906716 ,  0.38900232],\n",
      "       [ 0.08774987,  0.82324207, -1.8367107 , -0.40825272, -1.8001964 ,\n",
      "        -0.6927803 , -1.2972598 ],\n",
      "       [ 0.07621641,  1.0260984 , -1.2139835 , -2.069577  , -0.38653356,\n",
      "        -0.35447183, -0.11075234]], dtype=float32)] \n",
      "bias :\n",
      " [array([-2.22486   , -1.6098841 , -0.5683183 , -0.41666394,  0.05516762,\n",
      "       -0.9141759 , -2.0065765 ], dtype=float32), array([ 0.4051865 , -0.5212005 , -0.9212327 ,  1.9544623 , -0.16570656,\n",
      "        1.6735777 , -2.3227668 ], dtype=float32), array([ 0.8666277, -0.7963628,  1.0527496, -0.5087114,  0.5009389,\n",
      "       -0.5797641, -0.5537159], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.1319988  0.10211524 0.16325513 0.1714589  0.22347608 0.15907261\n",
      "  0.15409833]\n",
      " [0.81540847 0.8218373  0.7469914  0.745392   0.67336464 0.7682793\n",
      "  0.70686805]\n",
      " [0.84512323 0.8565011  0.83830106 0.7804823  0.7716066  0.8178234\n",
      "  0.8013077 ]\n",
      " [0.17101604 0.19591811 0.21555266 0.27107963 0.2964763  0.22808951\n",
      "  0.31750113]] \n",
      "Correct:\n",
      "  [[0. 0. 0. 0. 1. 0. 0.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]\n",
      " [0. 0. 1. 1. 1. 1. 1.]] \n",
      "Accuracy:  0.78571427\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step : 7500 \n",
      "cost : 0.14252377 \n",
      "Weight :\n",
      " [array([[ 4.144358  , -0.4564555 ,  3.0434296 , -0.894068  ,  2.9150593 ,\n",
      "         3.3746796 ,  2.707409  ],\n",
      "       [-4.9706903 ,  0.735266  ,  3.1052983 , -1.3427631 , -1.1813164 ,\n",
      "         3.8245397 ,  0.95888263]], dtype=float32), array([[ 4.08334   ,  0.46997368, -0.39702883, -3.478052  , -1.916189  ,\n",
      "        -1.4080348 , -0.8177634 ],\n",
      "       [ 0.8722734 , -0.11517682,  2.0620565 , -0.20600021,  1.3364675 ,\n",
      "        -0.7067257 ,  1.1086845 ],\n",
      "       [ 0.7575827 ,  0.9314507 , -0.08139843, -2.6656976 , -0.88953525,\n",
      "        -0.20131545, -2.0522187 ],\n",
      "       [-0.7493051 , -1.5782537 ,  2.0598018 ,  0.738722  ,  1.3967907 ,\n",
      "        -0.56508285,  0.2846022 ],\n",
      "       [-3.324923  ,  0.0361498 , -1.0742785 ,  1.3482342 ,  1.6676135 ,\n",
      "        -0.53326875,  0.00420937],\n",
      "       [ 1.9560039 ,  1.9948925 , -1.5557474 , -2.4028826 , -1.4195144 ,\n",
      "        -2.0745635 , -1.7360036 ],\n",
      "       [-2.3285806 , -0.639566  ,  0.8277651 ,  4.1938233 ,  1.0789526 ,\n",
      "         1.6665566 ,  0.37786296]], dtype=float32), array([[ 1.994013  ,  2.8029838 ,  2.5712433 ,  1.9195085 ,  2.2828822 ,\n",
      "         2.4855163 ,  2.3254077 ],\n",
      "       [ 0.7565965 ,  1.626731  ,  0.02078117,  1.5653042 ,  0.2703556 ,\n",
      "         1.3035669 ,  1.3669574 ],\n",
      "       [ 1.3729146 , -1.070177  , -0.4233254 ,  0.898569  , -0.68838316,\n",
      "         0.11893892, -2.0389884 ],\n",
      "       [-3.5811381 , -3.4147925 , -1.9651958 , -2.416898  , -1.0997137 ,\n",
      "        -2.8359394 , -1.9822165 ],\n",
      "       [-2.5016606 , -1.1970096 , -1.56273   , -1.1633922 , -1.2419182 ,\n",
      "        -0.25237536,  0.19480588],\n",
      "       [ 0.0073885 ,  0.74340403, -1.9346597 , -0.5331311 , -1.9451858 ,\n",
      "        -0.8017257 , -1.4253465 ],\n",
      "       [ 0.07027779,  1.02159   , -1.2212934 , -2.0773213 , -0.39668417,\n",
      "        -0.36168185, -0.11766872]], dtype=float32)] \n",
      "bias :\n",
      " [array([-2.358925  , -1.6087583 , -0.6632088 , -0.39168718,  0.297989  ,\n",
      "       -1.0723662 , -2.4295812 ], dtype=float32), array([ 0.2604916 , -0.61631626, -0.9104067 ,  2.0145888 , -0.09401182,\n",
      "        1.7432829 , -2.2966588 ], dtype=float32), array([ 0.92331547, -0.7597561 ,  1.1115121 , -0.454541  ,  0.56174505,\n",
      "       -0.53426176, -0.5147437 ], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.0762282  0.05613703 0.09429953 0.09656656 0.12875524 0.0910435\n",
      "  0.08686867]\n",
      " [0.8869704  0.88823926 0.8396491  0.8339577  0.7841859  0.85059655\n",
      "  0.80202514]\n",
      " [0.90211535 0.90780044 0.89855397 0.8587712  0.85654294 0.8833585\n",
      "  0.87161046]\n",
      " [0.1074923  0.1298475  0.13827115 0.18224943 0.19878489 0.15128288\n",
      "  0.21711141]] \n",
      "Correct:\n",
      "  [[0. 0. 0. 0. 0. 0. 0.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]\n",
      " [0. 0. 0. 0. 0. 0. 1.]] \n",
      "Accuracy:  0.96428573\n",
      "step : 8000 \n",
      "cost : 0.092464276 \n",
      "Weight :\n",
      " [array([[ 4.3436294 , -0.4796036 ,  3.1574438 , -0.9664433 ,  3.1824467 ,\n",
      "         3.579034  ,  2.894377  ],\n",
      "       [-5.197512  ,  0.74384224,  3.2758143 , -1.4360069 , -1.4618231 ,\n",
      "         4.0490294 ,  1.180014  ]], dtype=float32), array([[ 4.348173  ,  0.57857233, -0.40851927, -3.724979  , -2.088753  ,\n",
      "        -1.5403913 , -0.81727624],\n",
      "       [ 0.8838709 , -0.11873764,  2.0556157 , -0.22725435,  1.3289146 ,\n",
      "        -0.72485983,  1.1113158 ],\n",
      "       [ 0.88560474,  0.96472156, -0.10355926, -2.759402  , -0.9410668 ,\n",
      "        -0.26471183, -2.0473905 ],\n",
      "       [-0.79840493, -1.6107352 ,  2.0676255 ,  0.74331427,  1.4043633 ,\n",
      "        -0.5503744 ,  0.29185438],\n",
      "       [-3.5750396 , -0.08332489, -1.0374537 ,  1.6043427 ,  1.8339425 ,\n",
      "        -0.3343238 ,  0.01623518],\n",
      "       [ 2.1288116 ,  2.0485673 , -1.5837585 , -2.5303762 , -1.4936651 ,\n",
      "        -2.1632671 , -1.7329462 ],\n",
      "       [-2.5060048 , -0.7148367 ,  0.8488632 ,  4.427037  ,  1.2282469 ,\n",
      "         1.8278477 ,  0.38026986]], dtype=float32), array([[ 2.1994607 ,  3.004768  ,  2.823842  ,  2.2196257 ,  2.6270807 ,\n",
      "         2.744712  ,  2.645919  ],\n",
      "       [ 0.8468787 ,  1.6922351 ,  0.12623382,  1.6732539 ,  0.40342546,\n",
      "         1.4011894 ,  1.4618933 ],\n",
      "       [ 1.3581042 , -1.0789782 , -0.43939126,  0.8816281 , -0.7109865 ,\n",
      "         0.102134  , -2.0498989 ],\n",
      "       [-3.7522197 , -3.5906918 , -2.1808677 , -2.677832  , -1.4041886 ,\n",
      "        -3.0640693 , -2.267983  ],\n",
      "       [-2.5946746 , -1.2904676 , -1.6803228 , -1.3038893 , -1.4090859 ,\n",
      "        -0.37689438,  0.04294967],\n",
      "       [-0.05624869,  0.67806   , -2.012225  , -0.6311184 , -2.0578563 ,\n",
      "        -0.8876557 , -1.5288048 ],\n",
      "       [ 0.06618766,  1.0186019 , -1.2262753 , -2.0824068 , -0.40342185,\n",
      "        -0.36652324, -0.12220052]], dtype=float32)] \n",
      "bias :\n",
      " [array([-2.4374266 , -1.6079239 , -0.7236121 , -0.38879478,  0.455931  ,\n",
      "       -1.162537  , -2.7776985 ], dtype=float32), array([ 0.17790787, -0.68818635, -0.9064174 ,  2.0461373 , -0.05573883,\n",
      "        1.7794006 , -2.279158  ], dtype=float32), array([ 0.9654255 , -0.7303016 ,  1.1568851 , -0.4077257 ,  0.61240983,\n",
      "       -0.49535564, -0.47604987], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.04924548 0.03510374 0.0599055  0.05883437 0.07860321 0.05689174\n",
      "  0.0526492 ]\n",
      " [0.924604   0.92306006 0.89336324 0.887625   0.8563331  0.89814603\n",
      "  0.8635917 ]\n",
      " [0.9336392  0.936069   0.9326779  0.9052776  0.90707326 0.9210594\n",
      "  0.91411257]\n",
      " [0.07206059 0.09043986 0.09219936 0.12423027 0.13296783 0.10394654\n",
      "  0.14899147]] \n",
      "Correct:\n",
      "  [[0. 0. 0. 0. 0. 0. 0.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]\n",
      " [0. 0. 0. 0. 0. 0. 0.]] \n",
      "Accuracy:  1.0\n",
      "step : 8500 \n",
      "cost : 0.06512736 \n",
      "Weight :\n",
      " [array([[ 4.473006  , -0.49337253,  3.2355552 , -1.019607  ,  3.380333  ,\n",
      "         3.7147334 ,  3.0203135 ],\n",
      "       [-5.3499274 ,  0.75023675,  3.390059  , -1.5013485 , -1.6691927 ,\n",
      "         4.197186  ,  1.3601213 ]], dtype=float32), array([[ 4.530087  ,  0.6645632 , -0.41648918, -3.8852475 , -2.220476  ,\n",
      "        -1.639146  , -0.8170016 ],\n",
      "       [ 0.89243555, -0.12186106,  2.0506089 , -0.24366868,  1.3216693 ,\n",
      "        -0.7405215 ,  1.1131506 ],\n",
      "       [ 0.9714162 ,  0.9806989 , -0.11982674, -2.825697  , -0.98135924,\n",
      "        -0.3160929 , -2.0441172 ],\n",
      "       [-0.82848287, -1.631027  ,  2.0725946 ,  0.74766135,  1.4065287 ,\n",
      "        -0.5420549 ,  0.29689416],\n",
      "       [-3.7563016 , -0.19010022, -1.0093966 ,  1.7906871 ,  1.9648283 ,\n",
      "        -0.17987067,  0.02515302],\n",
      "       [ 2.2443001 ,  2.0793865 , -1.6040195 , -2.6196349 , -1.5503206 ,\n",
      "        -2.232899  , -1.7309302 ],\n",
      "       [-2.6413665 , -0.7918232 ,  0.86537975,  4.5958223 ,  1.3521925 ,\n",
      "         1.9563177 ,  0.38187245]], dtype=float32), array([[ 2.3557835 ,  3.1626163 ,  3.012973  ,  2.447041  ,  2.8814075 ,\n",
      "         2.9436061 ,  2.8902578 ],\n",
      "       [ 0.9162476 ,  1.7458464 ,  0.20563552,  1.7574205 ,  0.5025984 ,\n",
      "         1.4777222 ,  1.5383215 ],\n",
      "       [ 1.3477311 , -1.084588  , -0.45040852,  0.8712065 , -0.7252181 ,\n",
      "         0.0913503 , -2.056027  ],\n",
      "       [-3.8804276 , -3.7246382 , -2.3404171 , -2.8697097 , -1.6243262 ,\n",
      "        -3.2341588 , -2.479559  ],\n",
      "       [-2.6680362 , -1.3650764 , -1.7720495 , -1.411842  , -1.5357616 ,\n",
      "        -0.4739307 , -0.07490217],\n",
      "       [-0.10788679,  0.6244394 , -2.0748973 , -0.70823866, -2.1456916 ,\n",
      "        -0.9562994 , -1.6114396 ],\n",
      "       [ 0.063191  ,  1.0164745 , -1.2298577 , -2.0859017 , -0.40804884,\n",
      "        -0.36993566, -0.12529238]], dtype=float32)] \n",
      "bias :\n",
      " [array([-2.487381  , -1.6070894 , -0.7640991 , -0.39350766,  0.56149966,\n",
      "       -1.219423  , -3.0431209 ], dtype=float32), array([ 0.1285153 , -0.7441375 , -0.9052855 ,  2.0636382 , -0.03555185,\n",
      "        1.7967334 , -2.2669473 ], dtype=float32), array([ 0.9978326 , -0.7043508 ,  1.1908585 , -0.36819237,  0.65194046,\n",
      "       -0.46245512, -0.44133043], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.0351226  0.0244998  0.04183713 0.03950381 0.05250424 0.03909135\n",
      "  0.03505883]\n",
      " [0.9451871  0.9424704  0.92382044 0.91895676 0.8988768  0.9255488\n",
      "  0.90099233]\n",
      " [0.9513289  0.952143   0.951821   0.9320153  0.9354292  0.9425568\n",
      "  0.93868774]\n",
      " [0.05220601 0.0670501  0.06598595 0.08912078 0.09365451 0.0757682\n",
      "  0.10702357]] \n",
      "Correct:\n",
      "  [[0. 0. 0. 0. 0. 0. 0.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]\n",
      " [0. 0. 0. 0. 0. 0. 0.]] \n",
      "Accuracy:  1.0\n",
      "step : 9000 \n",
      "cost : 0.048985116 \n",
      "Weight :\n",
      " [array([[ 4.563725  , -0.501935  ,  3.2922244 , -1.0603005 ,  3.5299892 ,\n",
      "         3.8112295 ,  3.1118853 ],\n",
      "       [-5.4584813 ,  0.75540453,  3.4718258 , -1.5495132 , -1.8256904 ,\n",
      "         4.302113  ,  1.5039808 ]], dtype=float32), array([[ 4.661333  ,  0.73624206, -0.42230132, -3.9956803 , -2.3237205 ,\n",
      "        -1.7151251 , -0.8168268 ],\n",
      "       [ 0.89892447, -0.12469868,  2.046676  , -0.25655973,  1.3151416 ,\n",
      "        -0.75378346,  1.1145108 ],\n",
      "       [ 1.032942  ,  0.9870261 , -0.13216111, -2.875384  , -1.0144944 ,\n",
      "        -0.35876837, -2.0417395 ],\n",
      "       [-0.84877914, -1.6439965 ,  2.076024  ,  0.75190866,  1.4068627 ,\n",
      "        -0.5365215 ,  0.30061117],\n",
      "       [-3.8910422 , -0.28491   , -0.9875658 ,  1.9303132 ,  2.0687675 ,\n",
      "        -0.05817122,  0.03202373],\n",
      "       [ 2.3266366 ,  2.0969713 , -1.619225  , -2.6857426 , -1.5958216 ,\n",
      "        -2.289316  , -1.7294908 ],\n",
      "       [-2.7459197 , -0.8672343 ,  0.8784858 ,  4.7214646 ,  1.4543657 ,\n",
      "         2.0592191 ,  0.38303444]], dtype=float32), array([[ 2.4797308 ,  3.2907393 ,  3.1597002 ,  2.6245086 ,  3.0747716 ,\n",
      "         3.101114  ,  3.0809398 ],\n",
      "       [ 0.97250724,  1.7922485 ,  0.26828042,  1.8261794 ,  0.57988596,\n",
      "         1.5406827 ,  1.6020179 ],\n",
      "       [ 1.3398657 , -1.0884981 , -0.4586717 ,  0.8641329 , -0.7351327 ,\n",
      "         0.08378313, -2.0598917 ],\n",
      "       [-3.980943  , -3.830452  , -2.463656  , -3.0157723 , -1.789542  ,\n",
      "        -3.3657784 , -2.640832  ],\n",
      "       [-2.727995  , -1.4263241 , -1.8460851 , -1.4971555 , -1.6347338 ,\n",
      "        -0.55185664, -0.16841166],\n",
      "       [-0.1510636 ,  0.57958907, -2.1269848 , -0.77035946, -2.2160394 ,\n",
      "        -1.0125458 , -1.6784776 ],\n",
      "       [ 0.06085873,  1.0148536 , -1.2325921 , -2.0884645 , -0.41142777,\n",
      "        -0.37249178, -0.12753929]], dtype=float32)] \n",
      "bias :\n",
      " [array([-2.5219522 , -1.6062398 , -0.7931216 , -0.40064114,  0.63730866,\n",
      "       -1.2587374 , -3.2469916 ], dtype=float32), array([ 0.09656407, -0.7895534 , -0.9052514 ,  2.0740492 , -0.02474749,\n",
      "        1.8048419 , -2.2578938 ], dtype=float32), array([ 1.0240115 , -0.6806457 ,  1.2170087 , -0.33429918,  0.68317235,\n",
      "       -0.43404627, -0.41072112], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.02687904 0.01848182 0.03136131 0.02869377 0.03785285 0.02892128\n",
      "  0.0252457 ]\n",
      " [0.9575282  0.95442647 0.9421765  0.93821216 0.92465055 0.9424453\n",
      "  0.9244598 ]\n",
      " [0.9620708  0.96209455 0.96328676 0.94824207 0.9521174  0.9556546\n",
      "  0.95357895]\n",
      " [0.04017571 0.05224267 0.05019137 0.06716719 0.06970772 0.05809212\n",
      "  0.080607  ]] \n",
      "Correct:\n",
      "  [[0. 0. 0. 0. 0. 0. 0.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]\n",
      " [0. 0. 0. 0. 0. 0. 0.]] \n",
      "Accuracy:  1.0\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step : 9500 \n",
      "cost : 0.03866991 \n",
      "Weight :\n",
      " [array([[ 4.63152   , -0.50752497,  3.335587  , -1.0928184 ,  3.6470993 ,\n",
      "         3.8840423 ,  3.1824121 ],\n",
      "       [-5.540094  ,  0.7597736 ,  3.5337048 , -1.5867559 , -1.9479879 ,\n",
      "         4.3809314 ,  1.6205211 ]], dtype=float32), array([[ 4.760727  ,  0.79843557, -0.42676044, -4.076307  , -2.4071338 ,\n",
      "        -1.775692  , -0.8167027 ],\n",
      "       [ 0.904011  , -0.12726317,  2.043514  , -0.26692447,  1.3093715 ,\n",
      "        -0.76503795,  1.115573  ],\n",
      "       [ 1.0797167 ,  0.98814315, -0.14188392, -2.9144228 , -1.0426313 ,\n",
      "        -0.3949265 , -2.0399125 ],\n",
      "       [-0.8636228 , -1.6524043 ,  2.0785658 ,  0.7559583 ,  1.4066422 ,\n",
      "        -0.5323362 ,  0.3034982 ],\n",
      "       [-3.9949362 , -0.36956933, -0.9700634 ,  2.0387375 ,  2.1532032 ,\n",
      "         0.04033   ,  0.03752951],\n",
      "       [ 2.3888502 ,  2.1070058 , -1.6311231 , -2.7371356 , -1.6337125 ,\n",
      "        -2.336275  , -1.7283993 ],\n",
      "       [-2.8287876 , -0.93971926,  0.88913035,  4.818363  ,  1.5395883 ,\n",
      "         2.1433933 ,  0.3839294 ]], dtype=float32), array([[ 2.5816495 ,  3.398008  ,  3.2778206 ,  2.7676785 ,  3.2273095 ,\n",
      "         3.229938  ,  3.2343822 ],\n",
      "       [ 1.0200694 ,  1.8337398 ,  0.3198638 ,  1.8845598 ,  0.64282906,\n",
      "         1.5945001 ,  1.6568401 ],\n",
      "       [ 1.3335674 , -1.0914171 , -0.4652415 ,  0.8589524 , -0.7425744 ,\n",
      "         0.07809984, -2.0625675 ],\n",
      "       [-4.0627894 , -3.9168    , -2.562662  , -3.130999  , -1.9186502 ,\n",
      "        -3.4712543 , -2.7679517 ],\n",
      "       [-2.7784765 , -1.4778804 , -1.9077    , -1.5665662 , -1.7146702 ,\n",
      "        -0.6162304 , -0.24457544],\n",
      "       [-0.1880697 ,  0.5413238 , -2.17135   , -0.8216448 , -2.274013  ,\n",
      "        -1.0597469 , -1.7340164 ],\n",
      "       [ 0.05895874,  1.0135535 , -1.2347786 , -2.0904481 , -0.41403157,\n",
      "        -0.37450537, -0.12926477]], dtype=float32)] \n",
      "bias :\n",
      " [array([-2.5475314 , -1.6054053 , -0.81518686, -0.40842256,  0.6952545 ,\n",
      "       -1.2878875 , -3.4080985 ], dtype=float32), array([ 0.07438785, -0.82738495, -0.9056396 ,  2.0806692 , -0.01896052,\n",
      "        1.8083661 , -2.2508273 ], dtype=float32), array([ 1.0460206 , -0.65868294,  1.2379193 , -0.3046292 ,  0.70861137,\n",
      "       -0.4089685 , -0.38355425], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.02160963 0.01472223 0.02473211 0.02210277 0.02891144 0.02259409\n",
      "  0.01929116]\n",
      " [0.965569   0.962435   0.95404035 0.95082897 0.9411837  0.95361906\n",
      "  0.9399942 ]\n",
      " [0.96912056 0.9687587  0.970675   0.9587775  0.96263945 0.9642335\n",
      "  0.9632072 ]\n",
      " [0.0322898  0.04221854 0.03997308 0.05265939 0.05429527 0.04628602\n",
      "  0.06313187]] \n",
      "Correct:\n",
      "  [[0. 0. 0. 0. 0. 0. 0.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]\n",
      " [0. 0. 0. 0. 0. 0. 0.]] \n",
      "Accuracy:  1.0\n",
      "step : 10000 \n",
      "cost : 0.03163675 \n",
      "Weight :\n",
      " [array([[ 4.6846833, -0.5113278,  3.3701909, -1.1197423,  3.7416697,\n",
      "         3.9415472,  3.2390163],\n",
      "       [-5.6041527,  0.7635643,  3.5825908, -1.6167018, -2.0467224,\n",
      "         4.4428587,  1.7169263]], dtype=float32), array([[ 4.839032  ,  0.8539025 , -0.43032357, -4.1379833 , -2.4763014 ,\n",
      "        -1.8254635 , -0.8166133 ],\n",
      "       [ 0.9081191 , -0.12951472,  2.0409055 , -0.27544746,  1.3042855 ,\n",
      "        -0.7746815 ,  1.1164372 ],\n",
      "       [ 1.1168997 ,  0.9867177 , -0.14981036, -2.946207  , -1.0670437 ,\n",
      "        -0.42609933, -2.0384545 ],\n",
      "       [-0.87515926, -1.65785   ,  2.0805595 ,  0.75977665,  1.4063442 ,\n",
      "        -0.5288781 ,  0.30583343],\n",
      "       [-4.07779   , -0.44556135, -0.955638  ,  2.1256719 ,  2.2233863 ,\n",
      "         0.12210748,  0.04208824],\n",
      "       [ 2.4380243 ,  2.1129024 , -1.6407702 , -2.7786117 , -1.6660872 ,\n",
      "        -2.3762426 , -1.7275335 ],\n",
      "       [-2.8961787 , -1.0086212 ,  0.897972  ,  4.895509  ,  1.6117839 ,\n",
      "         2.2137542 ,  0.38464844]], dtype=float32), array([[ 2.6678762 ,  3.4899764 ,  3.3758876 ,  2.886501  ,  3.3516302 ,\n",
      "         3.3381517 ,  3.3612952 ],\n",
      "       [ 1.0615056 ,  1.8715713 ,  0.36379915,  1.9355407 ,  0.6959325 ,\n",
      "         1.6417819 ,  1.705189  ],\n",
      "       [ 1.3283284 , -1.0937145 , -0.47067314,  0.8549355 , -0.7484627 ,\n",
      "         0.07360963, -2.0645642 ],\n",
      "       [-4.1314063 , -3.9891138 , -2.6447258 , -3.2246923 , -2.02305   ,\n",
      "        -3.5582368 , -2.8711436 ],\n",
      "       [-2.8219645 , -1.5221698 , -1.9602479 , -1.6244583 , -1.7810847 ,\n",
      "        -0.6706614 , -0.30808473],\n",
      "       [-0.22040279,  0.5081144 , -2.2098918 , -0.8649086 , -2.322968  ,\n",
      "        -1.1001583 , -1.7809477 ],\n",
      "       [ 0.05735826,  1.0124702 , -1.23659   , -2.0920522 , -0.41612414,\n",
      "        -0.3761543 , -0.13064885]], dtype=float32)] \n",
      "bias :\n",
      " [array([-2.5674498 , -1.6046046 , -0.83278424, -0.4161905 ,  0.74169105,\n",
      "       -1.3107039 , -3.539169  ], dtype=float32), array([ 0.05808429, -0.85923606, -0.906181  ,  2.085151  , -0.01596162,\n",
      "        1.8095319 , -2.2450848 ], dtype=float32), array([ 1.0650831 , -0.6382021 ,  1.255226  , -0.2782059 ,  0.72995204,\n",
      "       -0.38645583, -0.3591867 ], dtype=float32)]\n",
      "Hypothesis:\n",
      " [[0.01799995 0.01219648 0.02023846 0.0177888  0.02305454 0.01837891\n",
      "  0.0154143 ]\n",
      " [0.97116256 0.968151   0.9621829  0.95957744 0.9523983  0.9614513\n",
      "  0.9508137 ]\n",
      " [0.97404873 0.9735073  0.97574157 0.9660389  0.96970415 0.9702073\n",
      "  0.9698117 ]\n",
      " [0.02678439 0.03506058 0.03294206 0.04257685 0.04381442 0.03797334\n",
      "  0.05100262]] \n",
      "Correct:\n",
      "  [[0. 0. 0. 0. 0. 0. 0.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]\n",
      " [1. 1. 1. 1. 1. 1. 1.]\n",
      " [0. 0. 0. 0. 0. 0. 0.]] \n",
      "Accuracy:  1.0\n"
     ]
    }
   ],
   "source": [
    "#XOR 게이트\n",
    "x_data = np.array([[0, 0], [0, 1], [1, 0], [1, 1]], dtype=np.float32)\n",
    "y_data = np.array([[0], [1], [1], [0]], dtype=np.float32)\n",
    "X = tf.placeholder(tf.float32)\n",
    "Y = tf.placeholder(tf.float32)\n",
    "W1 = tf.Variable(tf.random_normal([2, 7]), name='weight1')\n",
    "b1 = tf.Variable(tf.random_normal([7]), name='bias1')\n",
    "layer1 = tf.sigmoid(tf.matmul(X, W1) + b1)\n",
    "\n",
    "W2 = tf.Variable(tf.random_normal([7, 7]), name='weight2')\n",
    "b2 = tf.Variable(tf.random_normal([7]), name='bias2')\n",
    "layer2 = tf.sigmoid(tf.matmul(layer1, W2) + b2)\n",
    "\n",
    "W3 = tf.Variable(tf.random_normal([7, 7]), name='weight3')\n",
    "b3 = tf.Variable(tf.random_normal([7]), name='bias3')\n",
    "hypothesis = tf.sigmoid(tf.matmul(layer2, W3) + b3)\n",
    "\n",
    "# cost/loss function\n",
    "cost = -tf.reduce_mean(Y * tf.log(hypothesis) + (1 - Y) * tf.log(1 - hypothesis))\n",
    "train = tf.train.GradientDescentOptimizer(learning_rate=0.1).minimize(cost)\n",
    "# Accuracy computation\n",
    "# True if hypothesis>0.2 else False\n",
    "predicted = tf.cast(hypothesis > 0.2, dtype=tf.float32)\n",
    "accuracy = tf.reduce_mean(tf.cast(tf.equal(predicted, Y), dtype=tf.float32))\n",
    "# Launch graph\n",
    "with tf.Session() as sess:\n",
    "    sess.run(tf.global_variables_initializer())\n",
    "    for step in range(10001):\n",
    "        sess.run(train, feed_dict={X: x_data, Y: y_data})\n",
    "        if step % 500 == 0:\n",
    "            print(\"step :\",step, \"\\ncost :\", sess.run(cost, feed_dict={X: x_data, Y: y_data}), \n",
    "                  \"\\nWeight :\\n\", sess.run([W1, W2, W3]), \"\\nbias :\\n\", sess.run([b1, b2, b3]))\n",
    "            h, c, a = sess.run([hypothesis, predicted, accuracy], feed_dict={X: x_data, Y: y_data})\n",
    "            print(\"Hypothesis:\\n\", h, \"\\nCorrect:\\n \", c, \"\\nAccuracy: \", a)\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "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.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
