텐서플로 1.8 버전으로 재실행 및 강화학습 녹화 영상 개선
@@ -12,11 +12,11 @@
|
||||
"CPython 3.5.5\n",
|
||||
"IPython 6.3.0\n",
|
||||
"\n",
|
||||
"numpy 1.14.2\n",
|
||||
"numpy 1.14.3\n",
|
||||
"sklearn 0.19.1\n",
|
||||
"scipy 1.0.1\n",
|
||||
"matplotlib 2.2.2\n",
|
||||
"tensorflow 1.7.0\n"
|
||||
"tensorflow 1.8.0\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -261,11 +261,11 @@
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"No more files to read\n",
|
||||
"[array([[ 4.0000000e+00, 5.0000000e+00],\n",
|
||||
" [ 1.0000000e+00, -3.9627734e+03]], dtype=float32), array([1, 0], dtype=int32)]\n",
|
||||
"더 이상 읽을 파일이 없습니다\n",
|
||||
"[array([[4.00000000e+00, 5.00000000e+00],\n",
|
||||
" [1.00000000e+00, 1.27106565e+36]], dtype=float32), array([1, 0], dtype=int32)]\n",
|
||||
"[array([[7., 8.]], dtype=float32), array([0], dtype=int32)]\n",
|
||||
"No more training instances\n"
|
||||
"더 이상 훈련 샘플이 없습니다\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -344,8 +344,8 @@
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"[array([[ 4.0000000e+00, 5.0000000e+00],\n",
|
||||
" [ 1.0000000e+00, -3.9627734e+03]], dtype=float32), array([1, 0], dtype=int32)]\n",
|
||||
"[array([[4.00000000e+00, 5.00000000e+00],\n",
|
||||
" [1.00000000e+00, 1.27106565e+36]], dtype=float32), array([1, 0], dtype=int32)]\n",
|
||||
"[array([[7., 8.]], dtype=float32), array([0], dtype=int32)]\n",
|
||||
"더 이상 훈련 샘플이 없습니다\n"
|
||||
]
|
||||
@@ -398,8 +398,8 @@
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"[array([[ 4.0000000e+00, 5.0000000e+00],\n",
|
||||
" [ 1.0000000e+00, -3.9627734e+03]], dtype=float32), array([1, 0], dtype=int32)]\n",
|
||||
"[array([[4.00000000e+00, 5.00000000e+00],\n",
|
||||
" [1.00000000e+00, 1.27106565e+36]], dtype=float32), array([1, 0], dtype=int32)]\n",
|
||||
"[array([[7., 8.]], dtype=float32), array([0], dtype=int32)]\n",
|
||||
"더 이상 훈련 샘플이 없습니다\n"
|
||||
]
|
||||
|
||||
@@ -12,11 +12,11 @@
|
||||
"CPython 3.5.5\n",
|
||||
"IPython 6.3.0\n",
|
||||
"\n",
|
||||
"numpy 1.14.2\n",
|
||||
"numpy 1.14.3\n",
|
||||
"sklearn 0.19.1\n",
|
||||
"scipy 1.0.1\n",
|
||||
"matplotlib 2.2.2\n",
|
||||
"tensorflow 1.7.0\n"
|
||||
"tensorflow 1.8.0\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -726,9 +726,6 @@
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"WARNING:tensorflow:From /home/haesun/anaconda3/envs/handson-ml/lib/python3.5/site-packages/tensorflow/contrib/learn/python/learn/datasets/base.py:198: retry (from tensorflow.contrib.learn.python.learn.datasets.base) is deprecated and will be removed in a future version.\n",
|
||||
"Instructions for updating:\n",
|
||||
"Use the retry module or similar alternatives.\n",
|
||||
"Extracting /tmp/data/train-images-idx3-ubyte.gz\n",
|
||||
"Extracting /tmp/data/train-labels-idx1-ubyte.gz\n",
|
||||
"Extracting /tmp/data/t10k-images-idx3-ubyte.gz\n",
|
||||
@@ -754,17 +751,17 @@
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"0 훈련 정확도: 0.98 검증 세트 정확도: 0.976\n",
|
||||
"1 훈련 정확도: 0.98 검증 세트 정확도: 0.9846\n",
|
||||
"2 훈련 정확도: 0.99 검증 세트 정확도: 0.9826\n",
|
||||
"3 훈련 정확도: 1.0 검증 세트 정확도: 0.9858\n",
|
||||
"4 훈련 정확도: 1.0 검증 세트 정확도: 0.9874\n",
|
||||
"5 훈련 정확도: 0.99 검증 세트 정확도: 0.9862\n",
|
||||
"6 훈련 정확도: 1.0 검증 세트 정확도: 0.9884\n",
|
||||
"7 훈련 정확도: 0.99 검증 세트 정확도: 0.9858\n",
|
||||
"8 훈련 정확도: 1.0 검증 세트 정확도: 0.9886\n",
|
||||
"9 훈련 정확도: 1.0 검증 세트 정확도: 0.9864\n",
|
||||
"테스트 세트에서 최종 정확도: 0.9868\n"
|
||||
"0 훈련 정확도: 0.99 검증 세트 정확도: 0.9784\n",
|
||||
"1 훈련 정확도: 0.96 검증 세트 정확도: 0.9812\n",
|
||||
"2 훈련 정확도: 0.99 검증 세트 정확도: 0.9856\n",
|
||||
"3 훈련 정확도: 1.0 검증 세트 정확도: 0.9864\n",
|
||||
"4 훈련 정확도: 1.0 검증 세트 정확도: 0.9868\n",
|
||||
"5 훈련 정확도: 0.99 검증 세트 정확도: 0.9884\n",
|
||||
"6 훈련 정확도: 1.0 검증 세트 정확도: 0.9878\n",
|
||||
"7 훈련 정확도: 0.99 검증 세트 정확도: 0.9898\n",
|
||||
"8 훈련 정확도: 0.99 검증 세트 정확도: 0.989\n",
|
||||
"9 훈련 정확도: 1.0 검증 세트 정확도: 0.9886\n",
|
||||
"테스트 세트에서 최종 정확도: 0.9875\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -975,20 +972,23 @@
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"에포크 0, 훈련 정확도: 100.0000%, 검증 세트 정확도: 98.4400%, 검증 세트에서 최선의 손실: 0.059448\n",
|
||||
"에포크 1, 훈련 정확도: 100.0000%, 검증 세트 정확도: 98.6000%, 검증 세트에서 최선의 손실: 0.043736\n",
|
||||
"에포크 2, 훈련 정확도: 98.0000%, 검증 세트 정확도: 98.7600%, 검증 세트에서 최선의 손실: 0.039157\n",
|
||||
"에포크 3, 훈련 정확도: 100.0000%, 검증 세트 정확도: 98.6600%, 검증 세트에서 최선의 손실: 0.039157\n",
|
||||
"에포크 4, 훈련 정확도: 100.0000%, 검증 세트 정확도: 99.1600%, 검증 세트에서 최선의 손실: 0.032197\n",
|
||||
"에포크 5, 훈련 정확도: 98.0000%, 검증 세트 정확도: 99.1000%, 검증 세트에서 최선의 손실: 0.032197\n",
|
||||
"에포크 6, 훈련 정확도: 100.0000%, 검증 세트 정확도: 99.1000%, 검증 세트에서 최선의 손실: 0.032197\n",
|
||||
"에포크 7, 훈련 정확도: 100.0000%, 검증 세트 정확도: 99.1000%, 검증 세트에서 최선의 손실: 0.032197\n",
|
||||
"에포크 8, 훈련 정확도: 100.0000%, 검증 세트 정확도: 99.0000%, 검증 세트에서 최선의 손실: 0.032197\n",
|
||||
"에포크 9, 훈련 정확도: 100.0000%, 검증 세트 정확도: 99.2000%, 검증 세트에서 최선의 손실: 0.032197\n",
|
||||
"에포크 10, 훈련 정확도: 100.0000%, 검증 세트 정확도: 99.1000%, 검증 세트에서 최선의 손실: 0.032197\n",
|
||||
"에포크 11, 훈련 정확도: 100.0000%, 검증 세트 정확도: 98.9600%, 검증 세트에서 최선의 손실: 0.032197\n",
|
||||
"에포크 0, 훈련 정확도: 100.0000%, 검증 세트 정확도: 98.5600%, 검증 세트에서 최선의 손실: 0.061169\n",
|
||||
"에포크 1, 훈련 정확도: 100.0000%, 검증 세트 정확도: 98.6200%, 검증 세트에서 최선의 손실: 0.041548\n",
|
||||
"에포크 2, 훈련 정확도: 100.0000%, 검증 세트 정확도: 98.8600%, 검증 세트에서 최선의 손실: 0.041548\n",
|
||||
"에포크 3, 훈련 정확도: 98.0000%, 검증 세트 정확도: 98.8600%, 검증 세트에서 최선의 손실: 0.037626\n",
|
||||
"에포크 4, 훈련 정확도: 100.0000%, 검증 세트 정확도: 98.8600%, 검증 세트에서 최선의 손실: 0.037626\n",
|
||||
"에포크 5, 훈련 정확도: 98.0000%, 검증 세트 정확도: 99.1400%, 검증 세트에서 최선의 손실: 0.037626\n",
|
||||
"에포크 6, 훈련 정확도: 100.0000%, 검증 세트 정확도: 99.1400%, 검증 세트에서 최선의 손실: 0.036044\n",
|
||||
"에포크 7, 훈련 정확도: 100.0000%, 검증 세트 정확도: 99.0200%, 검증 세트에서 최선의 손실: 0.034466\n",
|
||||
"에포크 8, 훈련 정확도: 100.0000%, 검증 세트 정확도: 99.1600%, 검증 세트에서 최선의 손실: 0.034466\n",
|
||||
"에포크 9, 훈련 정확도: 100.0000%, 검증 세트 정확도: 99.0200%, 검증 세트에서 최선의 손실: 0.034466\n",
|
||||
"에포크 10, 훈련 정확도: 100.0000%, 검증 세트 정확도: 99.1400%, 검증 세트에서 최선의 손실: 0.034466\n",
|
||||
"에포크 11, 훈련 정확도: 100.0000%, 검증 세트 정확도: 98.8000%, 검증 세트에서 최선의 손실: 0.034466\n",
|
||||
"에포크 12, 훈련 정확도: 100.0000%, 검증 세트 정확도: 98.9400%, 검증 세트에서 최선의 손실: 0.034466\n",
|
||||
"에포크 13, 훈련 정확도: 100.0000%, 검증 세트 정확도: 98.9800%, 검증 세트에서 최선의 손실: 0.034466\n",
|
||||
"에포크 14, 훈련 정확도: 100.0000%, 검증 세트 정확도: 98.9200%, 검증 세트에서 최선의 손실: 0.034466\n",
|
||||
"조기 종료!\n",
|
||||
"테스트 세트에서 최종 정확도: 0.9852\n"
|
||||
"테스트 세트에서 최종 정확도: 0.9892\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -1718,7 +1718,7 @@
|
||||
"name": "stderr",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"/home/haesun/anaconda3/envs/handson-ml/lib/python3.5/site-packages/ipykernel_launcher.py:35: DeprecationWarning: `imresize` is deprecated!\n",
|
||||
"/home/haesun/anaconda3/envs/handson-ml/lib/python3.5/site-packages/ipykernel_launcher.py:34: DeprecationWarning: `imresize` is deprecated!\n",
|
||||
"`imresize` is deprecated in SciPy 1.0.0, and will be removed in 1.2.0.\n",
|
||||
"Use ``skimage.transform.resize`` instead.\n"
|
||||
]
|
||||
@@ -1760,7 +1760,7 @@
|
||||
"name": "stderr",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"/home/haesun/anaconda3/envs/handson-ml/lib/python3.5/site-packages/ipykernel_launcher.py:35: DeprecationWarning: `imresize` is deprecated!\n",
|
||||
"/home/haesun/anaconda3/envs/handson-ml/lib/python3.5/site-packages/ipykernel_launcher.py:34: DeprecationWarning: `imresize` is deprecated!\n",
|
||||
"`imresize` is deprecated in SciPy 1.0.0, and will be removed in 1.2.0.\n",
|
||||
"Use ``skimage.transform.resize`` instead.\n"
|
||||
]
|
||||
@@ -2278,9 +2278,9 @@
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"[('datasets/flowers/flower_photos/daisy/19834392829_7d697871f6.jpg', 0),\n",
|
||||
" ('datasets/flowers/flower_photos/roses/7345657862_689366e79a.jpg', 2),\n",
|
||||
" ('datasets/flowers/flower_photos/dandelion/7719263062_3c8a307a5d.jpg', 1)]"
|
||||
"[('datasets/flowers/flower_photos/dandelion/16656127943_2f70926b6c.jpg', 1),\n",
|
||||
" ('datasets/flowers/flower_photos/tulips/3601085193_de1195d3d7_n.jpg', 4),\n",
|
||||
" ('datasets/flowers/flower_photos/daisy/5944315415_2be8abeb2f_m.jpg', 0)]"
|
||||
]
|
||||
},
|
||||
"execution_count": 68,
|
||||
@@ -2325,7 +2325,7 @@
|
||||
"name": "stderr",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"/home/haesun/anaconda3/envs/handson-ml/lib/python3.5/site-packages/ipykernel_launcher.py:35: DeprecationWarning: `imresize` is deprecated!\n",
|
||||
"/home/haesun/anaconda3/envs/handson-ml/lib/python3.5/site-packages/ipykernel_launcher.py:34: DeprecationWarning: `imresize` is deprecated!\n",
|
||||
"`imresize` is deprecated in SciPy 1.0.0, and will be removed in 1.2.0.\n",
|
||||
"Use ``skimage.transform.resize`` instead.\n"
|
||||
]
|
||||
@@ -2431,7 +2431,7 @@
|
||||
"name": "stderr",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"/home/haesun/anaconda3/envs/handson-ml/lib/python3.5/site-packages/ipykernel_launcher.py:35: DeprecationWarning: `imresize` is deprecated!\n",
|
||||
"/home/haesun/anaconda3/envs/handson-ml/lib/python3.5/site-packages/ipykernel_launcher.py:34: DeprecationWarning: `imresize` is deprecated!\n",
|
||||
"`imresize` is deprecated in SciPy 1.0.0, and will be removed in 1.2.0.\n",
|
||||
"Use ``skimage.transform.resize`` instead.\n"
|
||||
]
|
||||
@@ -2477,7 +2477,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 79,
|
||||
"execution_count": 77,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
@@ -2492,7 +2492,7 @@
|
||||
"name": "stderr",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"/home/haesun/anaconda3/envs/handson-ml/lib/python3.5/site-packages/ipykernel_launcher.py:35: DeprecationWarning: `imresize` is deprecated!\n",
|
||||
"/home/haesun/anaconda3/envs/handson-ml/lib/python3.5/site-packages/ipykernel_launcher.py:34: DeprecationWarning: `imresize` is deprecated!\n",
|
||||
"`imresize` is deprecated in SciPy 1.0.0, and will be removed in 1.2.0.\n",
|
||||
"Use ``skimage.transform.resize`` instead.\n"
|
||||
]
|
||||
@@ -2501,16 +2501,16 @@
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"........................................................................ 훈련 정확도: 0.575\n",
|
||||
"에포크 1......................................................................... 훈련 정확도: 0.525\n",
|
||||
"에포크 2......................................................................... 훈련 정확도: 0.65\n",
|
||||
"........................................................................ 훈련 정확도: 0.7\n",
|
||||
"에포크 1......................................................................... 훈련 정확도: 0.5\n",
|
||||
"에포크 2......................................................................... 훈련 정확도: 0.55\n",
|
||||
"에포크 3......................................................................... 훈련 정확도: 0.675\n",
|
||||
"에포크 4......................................................................... 훈련 정확도: 0.55\n",
|
||||
"에포크 5......................................................................... 훈련 정확도: 0.7\n",
|
||||
"에포크 6......................................................................... 훈련 정확도: 0.575\n",
|
||||
"에포크 7......................................................................... 훈련 정확도: 0.775\n",
|
||||
"에포크 8......................................................................... 훈련 정확도: 0.6\n",
|
||||
"에포크 9......................................................................... 훈련 정확도: 0.875\n"
|
||||
"에포크 4......................................................................... 훈련 정확도: 0.7\n",
|
||||
"에포크 5......................................................................... 훈련 정확도: 0.8\n",
|
||||
"에포크 6......................................................................... 훈련 정확도: 0.75\n",
|
||||
"에포크 7......................................................................... 훈련 정확도: 0.625\n",
|
||||
"에포크 8......................................................................... 훈련 정확도: 0.725\n",
|
||||
"에포크 9......................................................................... 훈련 정확도: 0.65\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -2538,7 +2538,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 80,
|
||||
"execution_count": 78,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
@@ -2547,7 +2547,7 @@
|
||||
"text": [
|
||||
"INFO:tensorflow:Restoring parameters from ./my_flowers_model\n",
|
||||
"테스트 세트에서 최종 정확도를 계산합니다 (시간이 좀 걸립니다)...\n",
|
||||
"테스트 정확도: 0.7084228\n"
|
||||
"테스트 정확도: 0.688023\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -2570,7 +2570,7 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"네 70.8% 정확도는 좋지 않습니다(사실 이는 나쁜 편입니다). 하지만 이는 출력층을 제외하고 모든 층을 동결하여 10번의 에포크만 실행한 것입니다. GPU를 가지고 있다면 더 오랫동안 훈련을 시켜보세요(가령, 조기 종료 기법을 사용해). 이미지 전처리 함수를 개선하여 이미지를 더 다양하게 변형시킬 수도 있습니다(가령, 명암이나 색조를 바꾸거나 이미지를 조금 회전시킵니다). 이렇게 하면 95% 정확도 이상을 달성할 수 있습니다. 조금 더 심각하게 파고들고 싶다면 96% 정확도를 달성한 [훌륭한 이 포스트](https://kwotsin.github.io/tech/2017/02/11/transfer-learning.html)에서 자세한 내용을 참고하세요."
|
||||
"네 68.8% 정확도는 좋지 않습니다(사실 이는 나쁜 편입니다). 하지만 이는 출력층을 제외하고 모든 층을 동결하여 10번의 에포크만 실행한 것입니다. GPU를 가지고 있다면 더 오랫동안 훈련을 시켜보세요(가령, 조기 종료 기법을 사용해). 이미지 전처리 함수를 개선하여 이미지를 더 다양하게 변형시킬 수도 있습니다(가령, 명암이나 색조를 바꾸거나 이미지를 조금 회전시킵니다). 이렇게 하면 95% 정확도 이상을 달성할 수 있습니다. 조금 더 심각하게 파고들고 싶다면 96% 정확도를 달성한 [훌륭한 이 포스트](https://kwotsin.github.io/tech/2017/02/11/transfer-learning.html)에서 자세한 내용을 참고하세요."
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
|
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 72 KiB |
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 61 KiB |
|
Before Width: | Height: | Size: 167 KiB After Width: | Height: | Size: 157 KiB |
|
Before Width: | Height: | Size: 82 KiB After Width: | Height: | Size: 82 KiB |