Files
yola/pailuan/master/.ipynb_checkpoints/ov_keras_visualy-checkpoint.ipynb
coco 85d885e008 a
2026-07-03 16:29:47 +08:00

1761 lines
193 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
" *14项潜血档机器学习算法验证*"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**import moudle**"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd \n",
"import seaborn as sns\n",
"from IPython.display import display\n",
"import matplotlib.pyplot as plt\n",
"from mpl_toolkits.mplot3d import Axes3D\n",
"\n",
"%matplotlib inline\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**load data**"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"load data successful !!!!!\n"
]
}
],
"source": [
"try :\n",
" data = pd.read_csv(\"20170912.pm.csv\")\n",
" \n",
" \n",
" print(\"load data successful !!!!!\")\n",
"except :\n",
" print(\"load data error !!!!!!!!!!\" )\n",
" "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**分析数据**"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>left_block_R</th>\n",
" <th>left_block_G</th>\n",
" <th>left_block_B</th>\n",
" <th>left_block_H</th>\n",
" <th>left_block_S</th>\n",
" <th>left_block_V</th>\n",
" <th>left_block_l</th>\n",
" <th>left_block_a</th>\n",
" <th>left_block_b</th>\n",
" <th>left_block_R_stddev</th>\n",
" <th>...</th>\n",
" <th>whiteBlock_G_max</th>\n",
" <th>whiteBlock_B_max</th>\n",
" <th>whiteBlock_H_max</th>\n",
" <th>whiteBlock_S_max</th>\n",
" <th>whiteBlock_V_max</th>\n",
" <th>whiteBlock_l_max</th>\n",
" <th>whiteBlock_a_max</th>\n",
" <th>whiteBlock_b_max</th>\n",
" <th>whiteBalance</th>\n",
" <th>index</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>182614.000000</td>\n",
" <td>182614.000000</td>\n",
" <td>182614.000000</td>\n",
" <td>182614.000000</td>\n",
" <td>182614.000000</td>\n",
" <td>182614.000000</td>\n",
" <td>182614.000000</td>\n",
" <td>182614.000000</td>\n",
" <td>182614.000000</td>\n",
" <td>182614.000000</td>\n",
" <td>...</td>\n",
" <td>182614.000000</td>\n",
" <td>182614.000000</td>\n",
" <td>182614.000000</td>\n",
" <td>182614.000000</td>\n",
" <td>182614.000000</td>\n",
" <td>182614.000000</td>\n",
" <td>182614.000000</td>\n",
" <td>182614.000000</td>\n",
" <td>182614.000000</td>\n",
" <td>182614.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>170.926183</td>\n",
" <td>139.894115</td>\n",
" <td>153.300968</td>\n",
" <td>220.699908</td>\n",
" <td>50.779913</td>\n",
" <td>172.814927</td>\n",
" <td>156.436763</td>\n",
" <td>141.789014</td>\n",
" <td>124.985631</td>\n",
" <td>11.141008</td>\n",
" <td>...</td>\n",
" <td>191.204426</td>\n",
" <td>190.731275</td>\n",
" <td>159.347180</td>\n",
" <td>19.249099</td>\n",
" <td>200.011428</td>\n",
" <td>198.833337</td>\n",
" <td>132.275987</td>\n",
" <td>130.297327</td>\n",
" <td>0.500000</td>\n",
" <td>5.122608</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>20.868086</td>\n",
" <td>23.527475</td>\n",
" <td>24.005918</td>\n",
" <td>31.856354</td>\n",
" <td>17.093610</td>\n",
" <td>21.185483</td>\n",
" <td>21.721999</td>\n",
" <td>3.755468</td>\n",
" <td>5.669119</td>\n",
" <td>4.711361</td>\n",
" <td>...</td>\n",
" <td>19.078441</td>\n",
" <td>18.532444</td>\n",
" <td>103.719638</td>\n",
" <td>10.758886</td>\n",
" <td>17.712727</td>\n",
" <td>17.382087</td>\n",
" <td>2.715462</td>\n",
" <td>3.511157</td>\n",
" <td>0.500001</td>\n",
" <td>2.051263</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>46.000000</td>\n",
" <td>67.000000</td>\n",
" <td>80.000000</td>\n",
" <td>7.000000</td>\n",
" <td>5.000000</td>\n",
" <td>100.000000</td>\n",
" <td>84.000000</td>\n",
" <td>126.000000</td>\n",
" <td>58.000000</td>\n",
" <td>1.000000</td>\n",
" <td>...</td>\n",
" <td>114.000000</td>\n",
" <td>107.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>117.000000</td>\n",
" <td>125.000000</td>\n",
" <td>126.000000</td>\n",
" <td>109.000000</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>162.000000</td>\n",
" <td>129.000000</td>\n",
" <td>142.000000</td>\n",
" <td>220.000000</td>\n",
" <td>40.000000</td>\n",
" <td>163.000000</td>\n",
" <td>147.000000</td>\n",
" <td>140.000000</td>\n",
" <td>124.000000</td>\n",
" <td>8.000000</td>\n",
" <td>...</td>\n",
" <td>182.000000</td>\n",
" <td>182.000000</td>\n",
" <td>27.000000</td>\n",
" <td>11.000000</td>\n",
" <td>193.000000</td>\n",
" <td>191.000000</td>\n",
" <td>130.000000</td>\n",
" <td>128.000000</td>\n",
" <td>0.000000</td>\n",
" <td>4.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>173.000000</td>\n",
" <td>140.000000</td>\n",
" <td>154.000000</td>\n",
" <td>232.000000</td>\n",
" <td>49.000000</td>\n",
" <td>174.000000</td>\n",
" <td>157.000000</td>\n",
" <td>142.000000</td>\n",
" <td>125.000000</td>\n",
" <td>11.000000</td>\n",
" <td>...</td>\n",
" <td>194.000000</td>\n",
" <td>192.000000</td>\n",
" <td>228.000000</td>\n",
" <td>19.000000</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>132.000000</td>\n",
" <td>130.000000</td>\n",
" <td>0.500000</td>\n",
" <td>5.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>184.000000</td>\n",
" <td>156.000000</td>\n",
" <td>169.000000</td>\n",
" <td>238.000000</td>\n",
" <td>61.000000</td>\n",
" <td>185.000000</td>\n",
" <td>172.000000</td>\n",
" <td>145.000000</td>\n",
" <td>128.000000</td>\n",
" <td>14.000000</td>\n",
" <td>...</td>\n",
" <td>201.000000</td>\n",
" <td>201.000000</td>\n",
" <td>250.000000</td>\n",
" <td>26.000000</td>\n",
" <td>208.000000</td>\n",
" <td>207.000000</td>\n",
" <td>134.000000</td>\n",
" <td>133.000000</td>\n",
" <td>1.000000</td>\n",
" <td>7.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>246.000000</td>\n",
" <td>209.000000</td>\n",
" <td>255.000000</td>\n",
" <td>247.000000</td>\n",
" <td>208.000000</td>\n",
" <td>255.000000</td>\n",
" <td>216.000000</td>\n",
" <td>156.000000</td>\n",
" <td>141.000000</td>\n",
" <td>24.000000</td>\n",
" <td>...</td>\n",
" <td>255.000000</td>\n",
" <td>255.000000</td>\n",
" <td>255.000000</td>\n",
" <td>131.000000</td>\n",
" <td>255.000000</td>\n",
" <td>255.000000</td>\n",
" <td>157.000000</td>\n",
" <td>144.000000</td>\n",
" <td>1.000000</td>\n",
" <td>8.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>8 rows × 110 columns</p>\n",
"</div>"
],
"text/plain": [
" left_block_R left_block_G left_block_B left_block_H \\\n",
"count 182614.000000 182614.000000 182614.000000 182614.000000 \n",
"mean 170.926183 139.894115 153.300968 220.699908 \n",
"std 20.868086 23.527475 24.005918 31.856354 \n",
"min 46.000000 67.000000 80.000000 7.000000 \n",
"25% 162.000000 129.000000 142.000000 220.000000 \n",
"50% 173.000000 140.000000 154.000000 232.000000 \n",
"75% 184.000000 156.000000 169.000000 238.000000 \n",
"max 246.000000 209.000000 255.000000 247.000000 \n",
"\n",
" left_block_S left_block_V left_block_l left_block_a \\\n",
"count 182614.000000 182614.000000 182614.000000 182614.000000 \n",
"mean 50.779913 172.814927 156.436763 141.789014 \n",
"std 17.093610 21.185483 21.721999 3.755468 \n",
"min 5.000000 100.000000 84.000000 126.000000 \n",
"25% 40.000000 163.000000 147.000000 140.000000 \n",
"50% 49.000000 174.000000 157.000000 142.000000 \n",
"75% 61.000000 185.000000 172.000000 145.000000 \n",
"max 208.000000 255.000000 216.000000 156.000000 \n",
"\n",
" left_block_b left_block_R_stddev ... whiteBlock_G_max \\\n",
"count 182614.000000 182614.000000 ... 182614.000000 \n",
"mean 124.985631 11.141008 ... 191.204426 \n",
"std 5.669119 4.711361 ... 19.078441 \n",
"min 58.000000 1.000000 ... 114.000000 \n",
"25% 124.000000 8.000000 ... 182.000000 \n",
"50% 125.000000 11.000000 ... 194.000000 \n",
"75% 128.000000 14.000000 ... 201.000000 \n",
"max 141.000000 24.000000 ... 255.000000 \n",
"\n",
" whiteBlock_B_max whiteBlock_H_max whiteBlock_S_max whiteBlock_V_max \\\n",
"count 182614.000000 182614.000000 182614.000000 182614.000000 \n",
"mean 190.731275 159.347180 19.249099 200.011428 \n",
"std 18.532444 103.719638 10.758886 17.712727 \n",
"min 107.000000 0.000000 0.000000 117.000000 \n",
"25% 182.000000 27.000000 11.000000 193.000000 \n",
"50% 192.000000 228.000000 19.000000 201.000000 \n",
"75% 201.000000 250.000000 26.000000 208.000000 \n",
"max 255.000000 255.000000 131.000000 255.000000 \n",
"\n",
" whiteBlock_l_max whiteBlock_a_max whiteBlock_b_max whiteBalance \\\n",
"count 182614.000000 182614.000000 182614.000000 182614.000000 \n",
"mean 198.833337 132.275987 130.297327 0.500000 \n",
"std 17.382087 2.715462 3.511157 0.500001 \n",
"min 125.000000 126.000000 109.000000 0.000000 \n",
"25% 191.000000 130.000000 128.000000 0.000000 \n",
"50% 201.000000 132.000000 130.000000 0.500000 \n",
"75% 207.000000 134.000000 133.000000 1.000000 \n",
"max 255.000000 157.000000 144.000000 1.000000 \n",
"\n",
" index \n",
"count 182614.000000 \n",
"mean 5.122608 \n",
"std 2.051263 \n",
"min 1.000000 \n",
"25% 4.000000 \n",
"50% 5.000000 \n",
"75% 7.000000 \n",
"max 8.000000 \n",
"\n",
"[8 rows x 110 columns]"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.describe()\n"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>left_block_R</th>\n",
" <th>left_block_G</th>\n",
" <th>left_block_B</th>\n",
" <th>left_block_H</th>\n",
" <th>left_block_S</th>\n",
" <th>left_block_V</th>\n",
" <th>left_block_l</th>\n",
" <th>left_block_a</th>\n",
" <th>left_block_b</th>\n",
" <th>left_block_R_stddev</th>\n",
" <th>...</th>\n",
" <th>whiteBlock_G_max</th>\n",
" <th>whiteBlock_B_max</th>\n",
" <th>whiteBlock_H_max</th>\n",
" <th>whiteBlock_S_max</th>\n",
" <th>whiteBlock_V_max</th>\n",
" <th>whiteBlock_l_max</th>\n",
" <th>whiteBlock_a_max</th>\n",
" <th>whiteBlock_b_max</th>\n",
" <th>whiteBalance</th>\n",
" <th>index</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>91307.000000</td>\n",
" <td>91307.000000</td>\n",
" <td>91307.000000</td>\n",
" <td>91307.000000</td>\n",
" <td>91307.000000</td>\n",
" <td>91307.000000</td>\n",
" <td>91307.000000</td>\n",
" <td>91307.000000</td>\n",
" <td>91307.000000</td>\n",
" <td>91307.000000</td>\n",
" <td>...</td>\n",
" <td>91307.000000</td>\n",
" <td>91307.000000</td>\n",
" <td>91307.000000</td>\n",
" <td>91307.000000</td>\n",
" <td>91307.000000</td>\n",
" <td>91307.000000</td>\n",
" <td>91307.000000</td>\n",
" <td>91307.000000</td>\n",
" <td>91307.0</td>\n",
" <td>91307.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>173.157545</td>\n",
" <td>139.851424</td>\n",
" <td>151.288455</td>\n",
" <td>209.968622</td>\n",
" <td>54.063161</td>\n",
" <td>175.363028</td>\n",
" <td>156.833912</td>\n",
" <td>142.306055</td>\n",
" <td>126.373432</td>\n",
" <td>11.277076</td>\n",
" <td>...</td>\n",
" <td>191.148072</td>\n",
" <td>188.240628</td>\n",
" <td>94.254723</td>\n",
" <td>25.946959</td>\n",
" <td>203.247133</td>\n",
" <td>199.175014</td>\n",
" <td>132.787585</td>\n",
" <td>131.808558</td>\n",
" <td>0.0</td>\n",
" <td>5.122608</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>21.365308</td>\n",
" <td>23.708586</td>\n",
" <td>23.691182</td>\n",
" <td>40.589440</td>\n",
" <td>16.339365</td>\n",
" <td>21.119612</td>\n",
" <td>21.864877</td>\n",
" <td>3.789425</td>\n",
" <td>6.155595</td>\n",
" <td>4.761114</td>\n",
" <td>...</td>\n",
" <td>19.375895</td>\n",
" <td>18.358748</td>\n",
" <td>102.732356</td>\n",
" <td>9.087277</td>\n",
" <td>17.347484</td>\n",
" <td>17.590986</td>\n",
" <td>2.796748</td>\n",
" <td>4.300715</td>\n",
" <td>0.0</td>\n",
" <td>2.051268</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>48.000000</td>\n",
" <td>67.000000</td>\n",
" <td>87.000000</td>\n",
" <td>7.000000</td>\n",
" <td>11.000000</td>\n",
" <td>100.000000</td>\n",
" <td>84.000000</td>\n",
" <td>127.000000</td>\n",
" <td>58.000000</td>\n",
" <td>1.000000</td>\n",
" <td>...</td>\n",
" <td>114.000000</td>\n",
" <td>107.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>127.000000</td>\n",
" <td>125.000000</td>\n",
" <td>127.000000</td>\n",
" <td>109.000000</td>\n",
" <td>0.0</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>164.000000</td>\n",
" <td>129.000000</td>\n",
" <td>140.000000</td>\n",
" <td>191.000000</td>\n",
" <td>45.000000</td>\n",
" <td>166.000000</td>\n",
" <td>147.000000</td>\n",
" <td>140.000000</td>\n",
" <td>126.000000</td>\n",
" <td>8.000000</td>\n",
" <td>...</td>\n",
" <td>182.000000</td>\n",
" <td>179.000000</td>\n",
" <td>20.000000</td>\n",
" <td>20.000000</td>\n",
" <td>198.000000</td>\n",
" <td>191.000000</td>\n",
" <td>130.000000</td>\n",
" <td>131.000000</td>\n",
" <td>0.0</td>\n",
" <td>4.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>176.000000</td>\n",
" <td>140.000000</td>\n",
" <td>152.000000</td>\n",
" <td>225.000000</td>\n",
" <td>53.000000</td>\n",
" <td>176.000000</td>\n",
" <td>157.000000</td>\n",
" <td>142.000000</td>\n",
" <td>128.000000</td>\n",
" <td>11.000000</td>\n",
" <td>...</td>\n",
" <td>194.000000</td>\n",
" <td>190.000000</td>\n",
" <td>27.000000</td>\n",
" <td>25.000000</td>\n",
" <td>205.000000</td>\n",
" <td>202.000000</td>\n",
" <td>133.000000</td>\n",
" <td>133.000000</td>\n",
" <td>0.0</td>\n",
" <td>5.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>188.000000</td>\n",
" <td>157.000000</td>\n",
" <td>167.000000</td>\n",
" <td>240.000000</td>\n",
" <td>64.000000</td>\n",
" <td>189.000000</td>\n",
" <td>172.000000</td>\n",
" <td>145.000000</td>\n",
" <td>129.000000</td>\n",
" <td>15.000000</td>\n",
" <td>...</td>\n",
" <td>201.000000</td>\n",
" <td>197.000000</td>\n",
" <td>221.000000</td>\n",
" <td>30.000000</td>\n",
" <td>210.000000</td>\n",
" <td>208.000000</td>\n",
" <td>135.000000</td>\n",
" <td>134.000000</td>\n",
" <td>0.0</td>\n",
" <td>7.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>246.000000</td>\n",
" <td>209.000000</td>\n",
" <td>255.000000</td>\n",
" <td>247.000000</td>\n",
" <td>206.000000</td>\n",
" <td>255.000000</td>\n",
" <td>216.000000</td>\n",
" <td>156.000000</td>\n",
" <td>139.000000</td>\n",
" <td>24.000000</td>\n",
" <td>...</td>\n",
" <td>255.000000</td>\n",
" <td>255.000000</td>\n",
" <td>255.000000</td>\n",
" <td>131.000000</td>\n",
" <td>255.000000</td>\n",
" <td>255.000000</td>\n",
" <td>157.000000</td>\n",
" <td>144.000000</td>\n",
" <td>0.0</td>\n",
" <td>8.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>8 rows × 110 columns</p>\n",
"</div>"
],
"text/plain": [
" left_block_R left_block_G left_block_B left_block_H left_block_S \\\n",
"count 91307.000000 91307.000000 91307.000000 91307.000000 91307.000000 \n",
"mean 173.157545 139.851424 151.288455 209.968622 54.063161 \n",
"std 21.365308 23.708586 23.691182 40.589440 16.339365 \n",
"min 48.000000 67.000000 87.000000 7.000000 11.000000 \n",
"25% 164.000000 129.000000 140.000000 191.000000 45.000000 \n",
"50% 176.000000 140.000000 152.000000 225.000000 53.000000 \n",
"75% 188.000000 157.000000 167.000000 240.000000 64.000000 \n",
"max 246.000000 209.000000 255.000000 247.000000 206.000000 \n",
"\n",
" left_block_V left_block_l left_block_a left_block_b \\\n",
"count 91307.000000 91307.000000 91307.000000 91307.000000 \n",
"mean 175.363028 156.833912 142.306055 126.373432 \n",
"std 21.119612 21.864877 3.789425 6.155595 \n",
"min 100.000000 84.000000 127.000000 58.000000 \n",
"25% 166.000000 147.000000 140.000000 126.000000 \n",
"50% 176.000000 157.000000 142.000000 128.000000 \n",
"75% 189.000000 172.000000 145.000000 129.000000 \n",
"max 255.000000 216.000000 156.000000 139.000000 \n",
"\n",
" left_block_R_stddev ... whiteBlock_G_max whiteBlock_B_max \\\n",
"count 91307.000000 ... 91307.000000 91307.000000 \n",
"mean 11.277076 ... 191.148072 188.240628 \n",
"std 4.761114 ... 19.375895 18.358748 \n",
"min 1.000000 ... 114.000000 107.000000 \n",
"25% 8.000000 ... 182.000000 179.000000 \n",
"50% 11.000000 ... 194.000000 190.000000 \n",
"75% 15.000000 ... 201.000000 197.000000 \n",
"max 24.000000 ... 255.000000 255.000000 \n",
"\n",
" whiteBlock_H_max whiteBlock_S_max whiteBlock_V_max whiteBlock_l_max \\\n",
"count 91307.000000 91307.000000 91307.000000 91307.000000 \n",
"mean 94.254723 25.946959 203.247133 199.175014 \n",
"std 102.732356 9.087277 17.347484 17.590986 \n",
"min 0.000000 0.000000 127.000000 125.000000 \n",
"25% 20.000000 20.000000 198.000000 191.000000 \n",
"50% 27.000000 25.000000 205.000000 202.000000 \n",
"75% 221.000000 30.000000 210.000000 208.000000 \n",
"max 255.000000 131.000000 255.000000 255.000000 \n",
"\n",
" whiteBlock_a_max whiteBlock_b_max whiteBalance index \n",
"count 91307.000000 91307.000000 91307.0 91307.000000 \n",
"mean 132.787585 131.808558 0.0 5.122608 \n",
"std 2.796748 4.300715 0.0 2.051268 \n",
"min 127.000000 109.000000 0.0 1.000000 \n",
"25% 130.000000 131.000000 0.0 4.000000 \n",
"50% 133.000000 133.000000 0.0 5.000000 \n",
"75% 135.000000 134.000000 0.0 7.000000 \n",
"max 157.000000 144.000000 0.0 8.000000 \n",
"\n",
"[8 rows x 110 columns]"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data1 = data[data[\"whiteBalance\"] == 0 ]\n",
"\n",
"data1.describe()\n"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"train_data = data1\n",
"\n",
"# whiteBlock_R_zero = tain_data[tain_data[\"index\"] == 0 ][\"block_R\"]\n",
"# whiteBlock_G_zero = tain_data[tain_data[\"index\"] == 0 ][\"block_G\"]\n",
"# whiteBlock_B_zero = tain_data[tain_data[\"index\"] == 0 ][\"block_B\"]\n",
"\n",
"whiteBlock_R_one = train_data[train_data[\"index\"] == 1 ][\"left_block_R\"]\n",
"whiteBlock_G_one = train_data[train_data[\"index\"] == 1 ][\"left_block_G\"]\n",
"whiteBlock_B_one = train_data[train_data[\"index\"] == 1 ][\"left_block_B\"]\n",
"\n",
"whiteBlock_R_two = train_data[train_data[\"index\"] == 2 ][\"left_block_R\"]\n",
"whiteBlock_G_two = train_data[train_data[\"index\"] == 2 ][\"left_block_G\"]\n",
"whiteBlock_B_two = train_data[train_data[\"index\"] == 2 ][\"left_block_B\"]\n",
"\n",
"whiteBlock_R_three = train_data[train_data[\"index\"] == 3 ][\"left_block_R\"]\n",
"whiteBlock_G_three = train_data[train_data[\"index\"] == 3 ][\"left_block_G\"]\n",
"whiteBlock_B_three = train_data[train_data[\"index\"] == 3 ][\"left_block_B\"]\n",
"\n",
"whiteBlock_R_four = train_data[train_data[\"index\"] == 4 ][\"left_block_R\"]\n",
"whiteBlock_G_four = train_data[train_data[\"index\"] == 4 ][\"left_block_G\"]\n",
"whiteBlock_B_four = train_data[train_data[\"index\"] == 4 ][\"left_block_B\"]\n",
"\n",
"whiteBlock_R_five = train_data[train_data[\"index\"] == 5 ][\"left_block_R\"]\n",
"whiteBlock_G_five = train_data[train_data[\"index\"] == 5 ][\"left_block_G\"]\n",
"whiteBlock_B_five = train_data[train_data[\"index\"] == 5 ][\"left_block_B\"]\n",
"\n",
"whiteBlock_R_six = train_data[train_data[\"index\"] == 6 ][\"left_block_R\"]\n",
"whiteBlock_G_six = train_data[train_data[\"index\"] == 6 ][\"left_block_G\"]\n",
"whiteBlock_B_six = train_data[train_data[\"index\"] == 6 ][\"left_block_B\"]\n"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAcUAAAE1CAYAAACWU/udAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsvXmcHHWd//+so6+Znnsmc2WuzCRhchFyB3BFDtEVQUQB\nQRHlWPktrgqIaJYVZAWi8BMBV/fLAir8viAqh+jqgkFkRSAECJCEHHPf99V3d1V9fn/0dKd7Znru\nnvQk9eSRxzDV1VXVNdX1qs/7836/3pIQAhMTExMTExOQj/UBmJiYmJiYpAqmKJqYmJiYmIxiiqKJ\niYmJickopiiamJiYmJiMYoqiiYmJiYnJKKYompiYmJiYjGKKoomJiYmJySimKJqYmJiYmIxiiqKJ\niYmJicko6gzXN+1vTExMTEwWI9J0VjJHiiYmJiYmJqOYomhiYmJiYjKKKYomJiYmJiajmKJoYmJi\nYmIyiimKJiYmJiYmo5iiaGJiYmJiMoopiiYmJiYmJqOYomhicgy57bbb+PznP3+sD8PExGQUUxRN\njjsqKytxOBw4nU6Kioq48sorcbvdcevs2bOH8847j5ycHLKzs1m1ahU7duxgcHAQgJ///OcoioLT\n6cTpdLJs2TJ++tOfHouPY2JisoCYomhyXPL888/jdrvZu3cv77zzDnfddVf0tb///e+cccYZnHba\naRw8eJChoSH+9Kc/oaoq7777bnS97du343a7cbvd/Pa3v+Xmm2/mnXfeORYfZxyaph3rQzAxOS4x\nRdHkuKaoqIhzzz2XvXv3RpfdfPPNfOlLX+Lb3/42hYWFAJSXl3P77bdzxhlnTLidU045hdraWj74\n4IOE+3ruuedYv349mZmZVFdX86c//QmAjo4Ozj//fHJzc6mpqeGhhx5KuI3f/e53rF69muzsbM44\n44y4/VVWVrJz507WrVtHeno6mqaxc+dOSktLycjIYOXKlezatQsIh2U/85nPcMkll5CRkcGGDRvi\nBP/uu++murqajIwMVq1axTPPPBN3HA899BC1tbXR199+++3oZ7nooosoKCigqqqK+++/P+FnMTFZ\nlAghZvLPxCTlqaioEC+++KIQQojW1laxZs0a8S//8i9CCCHcbreQZVn85S9/mXQbjz76qDjttNOi\nv+/evVtkZWWJQ4cOTbj+G2+8ITIzM8ULL7wgdF0XbW1t4oMPPhBCCPGhD31IXHfddcLn84l33nlH\n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\n/ym4F0A5QN09AAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x114f93a20>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"\n",
"fig = plt.figure()\n",
"#plt.rcParams[\"figure.figsize\"] = 20,20\n",
"ax = Axes3D(fig)\n",
"\n",
"ax.set_xlim(0,255)\n",
"ax.set_ylim(0,255)\n",
"ax.set_zlim(0,255)\n",
"ax.set_xlabel('R')\n",
"ax.set_ylabel('G')\n",
"ax.set_zlabel('B')\n",
"ax.set_title('RGB colorspace')\n",
"#ax.scatter(whiteBlock_R_zero, whiteBlock_G_zero, whiteBlock_B_zero,s = 15,c='y')\n",
"ax.scatter(whiteBlock_R_one, whiteBlock_G_one, whiteBlock_B_one,s = 15,c='b')\n",
"\n",
"ax.scatter(whiteBlock_R_two, whiteBlock_G_two, whiteBlock_B_two,s = 15,c='g')\n",
"ax.scatter(whiteBlock_R_three, whiteBlock_G_three, whiteBlock_B_three,s = 15,c='R')\n",
"\n",
"ax.scatter(whiteBlock_R_four, whiteBlock_G_four, whiteBlock_B_four,s = 15,c='c')\n",
"\n",
"ax.scatter(whiteBlock_R_five, whiteBlock_G_five, whiteBlock_B_five,s = 15,c='black')\n",
"ax.scatter(whiteBlock_R_six, whiteBlock_G_six, whiteBlock_B_six,s = 15,c='pink')\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"*把档位从数据中分割出来,去掉蛋白质的标记*"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"\n",
"\n",
"train_labels = train_data[\"index\"]\n",
"train_features = train_data.drop(\"index\",axis=1)\n",
"train_features = train_features.drop(\"whiteBalance\",axis=1)\n",
"train_features = train_features.drop(\"dateTime\",axis=1)\n",
"\n",
"# test_labels = test_data[\"index\"]\n",
"# test_features = test_data.drop(\"index\",axis=1)\n",
"# test_features = test_features.drop(\"whiteBalance\",axis=1)\n",
"# test_features = test_features.drop(\"dateTime\",axis=1)\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/panxiaochun/anaconda3/lib/python3.6/site-packages/sklearn/cross_validation.py:41: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20.\n",
" \"This module will be removed in 0.20.\", DeprecationWarning)\n"
]
}
],
"source": [
"from sklearn.cross_validation import train_test_split\n",
"from sklearn.utils import shuffle\n",
"\n",
"X_train ,X_test,y_train,y_test = train_test_split(train_features,train_labels,test_size = 0.0001, random_state = 20)\n",
"#train_features ,train_labels = shuffle(train_features,train_labels)\n",
"#test_features,test_labels = shuffle(test_features,test_labels)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"34170 8\n",
"167366 4\n",
"135550 2\n",
"2010 8\n",
"103000 5\n",
"60186 6\n",
"148686 3\n",
"173608 4\n",
"51944 8\n",
"79276 5\n",
"Name: index, dtype: int64\n"
]
}
],
"source": [
"print(y_train[0:10])\n"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"91297\n"
]
}
],
"source": [
"print(y_train.size)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"10\n"
]
}
],
"source": [
"print(y_test.size)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Using TensorFlow backend.\n"
]
}
],
"source": [
"from keras.models import *\n",
"from keras.activations import *\n",
"from keras.layers import *\n",
"from keras.optimizers import *\n",
"\n",
"from keras.callbacks import TensorBoard , Callback,EarlyStopping\n",
"from keras.metrics import *\n"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from keras.layers import Dense , activations,Dropout"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[0 0 0 0 0 0 0 1]\n",
" [0 0 0 1 0 0 0 0]\n",
" [0 1 0 0 0 0 0 0]\n",
" [0 0 0 0 0 0 0 1]\n",
" [0 0 0 0 1 0 0 0]\n",
" [0 0 0 0 0 1 0 0]\n",
" [0 0 1 0 0 0 0 0]\n",
" [0 0 0 1 0 0 0 0]\n",
" [0 0 0 0 0 0 0 1]\n",
" [0 0 0 0 1 0 0 0]]\n"
]
}
],
"source": [
"from sklearn.preprocessing import LabelBinarizer\n",
"train_features_np = np.ndarray((91297,108),dtype = np.float32)\n",
"train_features_np = X_train.values[:,:]\n",
"#train_labels_np = np.ndarray((19171,1),dtype = np.float32)\n",
"#train_labels_np = train_labels.values[:]\n",
"ohe = LabelBinarizer()\n",
"train_labels_np = ohe.fit_transform(y_train)\n",
"print(train_labels_np[0:10])"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"test_features_np = np.ndarray((10,18),dtype = np.float32)\n",
"test_features_np = X_test.values[:,:]\n",
"#test_labels_np = np.ndarray((19171,1),dtype = np.float32)\n",
"#test_labels_np = test_labels.values[:]\n",
"test_labels_np = ohe.fit_transform(y_test)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(91297, 108)\n",
"(10, 7)\n",
"[[0 0 0 0 0 0 0 1]\n",
" [0 0 0 1 0 0 0 0]\n",
" [0 1 0 0 0 0 0 0]\n",
" [0 0 0 0 0 0 0 1]\n",
" [0 0 0 0 1 0 0 0]\n",
" [0 0 0 0 0 1 0 0]\n",
" [0 0 1 0 0 0 0 0]\n",
" [0 0 0 1 0 0 0 0]\n",
" [0 0 0 0 0 0 0 1]\n",
" [0 0 0 0 1 0 0 0]]\n",
"[[0 0 1 0 0 0 0]\n",
" [0 0 0 0 0 1 0]\n",
" [0 0 0 0 1 0 0]\n",
" [0 0 0 0 1 0 0]\n",
" [0 0 0 1 0 0 0]\n",
" [0 1 0 0 0 0 0]\n",
" [0 1 0 0 0 0 0]\n",
" [0 0 0 0 0 0 1]\n",
" [0 0 0 1 0 0 0]\n",
" [1 0 0 0 0 0 0]]\n"
]
}
],
"source": [
"print(train_features_np.shape)\n",
"\n",
"print(test_labels_np.shape)\n",
"\n",
"print(train_labels_np[:10])\n",
"print(test_labels_np[:10])"
]
},
{
"cell_type": "code",
"execution_count": 81,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Train on 90384 samples, validate on 913 samples\n",
"Epoch 1/50\n",
"90384/90384 [==============================] - 0s - loss: 1.7430 - acc: 0.3848 - val_loss: 1.3467 - val_acc: 0.5849\n",
"Epoch 2/50\n",
"90384/90384 [==============================] - 0s - loss: 1.0671 - acc: 0.6593 - val_loss: 0.8255 - val_acc: 0.7284\n",
"Epoch 3/50\n",
"90384/90384 [==============================] - 0s - loss: 0.6768 - acc: 0.7794 - val_loss: 0.5565 - val_acc: 0.8149\n",
"Epoch 4/50\n",
"90384/90384 [==============================] - 0s - loss: 0.4846 - acc: 0.8244 - val_loss: 0.4091 - val_acc: 0.8598\n",
"Epoch 5/50\n",
"90384/90384 [==============================] - 0s - loss: 0.3849 - acc: 0.8569 - val_loss: 0.3462 - val_acc: 0.8795\n",
"Epoch 6/50\n",
"90384/90384 [==============================] - 0s - loss: 0.3258 - acc: 0.8799 - val_loss: 0.3016 - val_acc: 0.8894\n",
"Epoch 7/50\n",
"90384/90384 [==============================] - 0s - loss: 0.2921 - acc: 0.8917 - val_loss: 0.2768 - val_acc: 0.9025\n",
"Epoch 8/50\n",
"90384/90384 [==============================] - 0s - loss: 0.2696 - acc: 0.9026 - val_loss: 0.2503 - val_acc: 0.8959\n",
"Epoch 9/50\n",
"90384/90384 [==============================] - 0s - loss: 0.2556 - acc: 0.9106 - val_loss: 0.2369 - val_acc: 0.9211\n",
"Epoch 10/50\n",
"90384/90384 [==============================] - 0s - loss: 0.2212 - acc: 0.9282 - val_loss: 0.2091 - val_acc: 0.9244\n",
"Epoch 11/50\n",
"90384/90384 [==============================] - 0s - loss: 0.1891 - acc: 0.9404 - val_loss: 0.1882 - val_acc: 0.9354\n",
"Epoch 12/50\n",
"90384/90384 [==============================] - 0s - loss: 0.1670 - acc: 0.9479 - val_loss: 0.1967 - val_acc: 0.9299\n",
"Epoch 13/50\n",
"90384/90384 [==============================] - 0s - loss: 0.1841 - acc: 0.9417 - val_loss: 0.1535 - val_acc: 0.9485\n",
"Epoch 14/50\n",
"90384/90384 [==============================] - 0s - loss: 0.1887 - acc: 0.9409 - val_loss: 0.1514 - val_acc: 0.9507\n",
"Epoch 15/50\n",
"90384/90384 [==============================] - 0s - loss: 0.1780 - acc: 0.9435 - val_loss: 0.2117 - val_acc: 0.9310\n",
"Epoch 16/50\n",
"90384/90384 [==============================] - 0s - loss: 0.1871 - acc: 0.9416 - val_loss: 0.2641 - val_acc: 0.9102\n",
"Epoch 17/50\n",
"90384/90384 [==============================] - 0s - loss: 0.1933 - acc: 0.9433 - val_loss: 0.1758 - val_acc: 0.9387\n",
"Epoch 18/50\n",
"90384/90384 [==============================] - 0s - loss: 0.1529 - acc: 0.9555 - val_loss: 0.1957 - val_acc: 0.9343\n",
"Epoch 19/50\n",
"90384/90384 [==============================] - 0s - loss: 0.1546 - acc: 0.9529 - val_loss: 0.1714 - val_acc: 0.9398\n",
"Epoch 20/50\n",
"90384/90384 [==============================] - 0s - loss: 0.1475 - acc: 0.9533 - val_loss: 0.1477 - val_acc: 0.9507\n",
"Epoch 21/50\n",
"90384/90384 [==============================] - 0s - loss: 0.1267 - acc: 0.9608 - val_loss: 0.1244 - val_acc: 0.9606\n",
"Epoch 22/50\n",
"90384/90384 [==============================] - 0s - loss: 0.1155 - acc: 0.9647 - val_loss: 0.1156 - val_acc: 0.9650\n",
"Epoch 23/50\n",
"90384/90384 [==============================] - 0s - loss: 0.1151 - acc: 0.9652 - val_loss: 0.1160 - val_acc: 0.9628\n",
"Epoch 24/50\n",
"90384/90384 [==============================] - 0s - loss: 0.1861 - acc: 0.9320 - val_loss: 0.2402 - val_acc: 0.9168\n",
"Epoch 25/50\n",
"90384/90384 [==============================] - 0s - loss: 0.2246 - acc: 0.9149 - val_loss: 0.2690 - val_acc: 0.8970\n",
"Epoch 26/50\n",
"90384/90384 [==============================] - 0s - loss: 0.2215 - acc: 0.9246 - val_loss: 0.1936 - val_acc: 0.9398\n",
"Epoch 27/50\n",
"90384/90384 [==============================] - 0s - loss: 0.1964 - acc: 0.9349 - val_loss: 0.1729 - val_acc: 0.9474\n",
"Epoch 28/50\n",
"90384/90384 [==============================] - 0s - loss: 0.1725 - acc: 0.9446 - val_loss: 0.1492 - val_acc: 0.9595\n",
"Epoch 29/50\n",
"90384/90384 [==============================] - 0s - loss: 0.1454 - acc: 0.9549 - val_loss: 0.1792 - val_acc: 0.9474\n",
"Epoch 30/50\n",
"90384/90384 [==============================] - 0s - loss: 0.1620 - acc: 0.9475 - val_loss: 0.1790 - val_acc: 0.9441\n",
"Epoch 31/50\n",
"90384/90384 [==============================] - 0s - loss: 0.1508 - acc: 0.9519 - val_loss: 0.2070 - val_acc: 0.9310\n",
"Epoch 32/50\n",
"90384/90384 [==============================] - 0s - loss: 0.1530 - acc: 0.9516 - val_loss: 0.1355 - val_acc: 0.9617\n",
"Epoch 33/50\n",
"90384/90384 [==============================] - 0s - loss: 0.1366 - acc: 0.9567 - val_loss: 0.1469 - val_acc: 0.9551\n",
"Epoch 34/50\n",
"90384/90384 [==============================] - 0s - loss: 0.1419 - acc: 0.9550 - val_loss: 0.1426 - val_acc: 0.9606\n",
"Epoch 35/50\n",
"90384/90384 [==============================] - 0s - loss: 0.1196 - acc: 0.9616 - val_loss: 0.1336 - val_acc: 0.9606\n",
"Epoch 36/50\n",
"90384/90384 [==============================] - 0s - loss: 0.1420 - acc: 0.9578 - val_loss: 0.1927 - val_acc: 0.9430\n",
"Epoch 37/50\n",
"90384/90384 [==============================] - 0s - loss: 0.1196 - acc: 0.9613 - val_loss: 0.1269 - val_acc: 0.9650\n",
"Epoch 38/50\n",
"90384/90384 [==============================] - 0s - loss: 0.1290 - acc: 0.9581 - val_loss: 0.1809 - val_acc: 0.9551\n",
"Epoch 39/50\n",
"90384/90384 [==============================] - 0s - loss: 0.1299 - acc: 0.9577 - val_loss: 0.1038 - val_acc: 0.9737\n",
"Epoch 40/50\n",
"90384/90384 [==============================] - 0s - loss: 0.1049 - acc: 0.9659 - val_loss: 0.1139 - val_acc: 0.9617\n",
"Epoch 41/50\n",
"90384/90384 [==============================] - 0s - loss: 0.1050 - acc: 0.9659 - val_loss: 0.1060 - val_acc: 0.9715\n",
"Epoch 42/50\n",
"90384/90384 [==============================] - 0s - loss: 0.1124 - acc: 0.9649 - val_loss: 0.1338 - val_acc: 0.9639\n",
"Epoch 43/50\n",
"90384/90384 [==============================] - 0s - loss: 0.0972 - acc: 0.9704 - val_loss: 0.1241 - val_acc: 0.9650\n",
"Epoch 44/50\n",
"90384/90384 [==============================] - 0s - loss: 0.0956 - acc: 0.9691 - val_loss: 0.1154 - val_acc: 0.9660\n",
"Epoch 45/50\n",
"90384/90384 [==============================] - 0s - loss: 0.1020 - acc: 0.9671 - val_loss: 0.1244 - val_acc: 0.9584\n",
"Epoch 46/50\n",
"90384/90384 [==============================] - 0s - loss: 0.1500 - acc: 0.9503 - val_loss: 0.1377 - val_acc: 0.9639\n",
"Epoch 47/50\n",
"90384/90384 [==============================] - 0s - loss: 0.0990 - acc: 0.9690 - val_loss: 0.1436 - val_acc: 0.9518\n",
"Epoch 48/50\n",
"90384/90384 [==============================] - 0s - loss: 0.0952 - acc: 0.9704 - val_loss: 0.1582 - val_acc: 0.9507\n",
"Epoch 49/50\n",
"90384/90384 [==============================] - 0s - loss: 0.1123 - acc: 0.9650 - val_loss: 0.1075 - val_acc: 0.9704\n",
"Epoch 50/50\n",
"90384/90384 [==============================] - 0s - loss: 0.1107 - acc: 0.9646 - val_loss: 0.1222 - val_acc: 0.9617\n"
]
},
{
"data": {
"text/plain": [
"<keras.callbacks.History at 0x1511c0898>"
]
},
"execution_count": 81,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model = Sequential()\n",
"model.add(Dense(64 ,activation='sigmoid',input_shape = (108,)))\n",
"model.add(Dense(64,activation='sigmoid', bias_regularizer=regularizers.l1(0.000001),kernel_regularizer=regularizers.l1(0.0000001)))\n",
"model.add(Dense(8,activation='softmax'))\n",
"model.compile(optimizer='adam',\n",
" loss='categorical_crossentropy',\n",
" metrics=['accuracy'])\n",
"\n",
"tensorBoard = TensorBoard(log_dir=\"./logs\",write_graph= True,write_images= True)\n",
"model.fit(train_features_np,train_labels_np,batch_size=512,epochs=50,verbose=1,validation_split=0.01,callbacks=[tensorBoard])"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x1495ecb70>"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n2pT33nuP7t27e5zj1lVasWIFx44dM8UHbyyQ6faHuzeb2x9u7Z+s+uOLL74wj+vUqWM+oxv7Iykp\nybQBoGXLlhnaICIimbvlkIZt28dt296W9vgC8ANws/HJDkCcbdtXbNs+DPwENM2LxoqIiIgUJtlK\n1LEsqybQCPgeaAkMsywrCtiCM+p1BicI25juZcfIJDCzLGswMBhuXXVXss/dfuLUqVNMnz7d7O3l\nrkpJP6L122+/MXToUMAZLWnfvj2xsbGAUxNn7dq1ZkXd0qVLGTBggKl6bds2O3fuND+PHTuWY8eO\nMWrUKHP9s2fP8v/+nzOz/M0333DHHXeY/CVwRlDcFYBDhw41bQCIjY01bQBMO7LjVqNhR48e5amn\nnsrwvDtClJKSkucjWuBsDQPONNWGDRvMKq2goCDWrFljphOHDBlCcHAwHTt2BCAqKoqZM2eydOlS\nANMf7i4Pbn+4+7Zl1R9u1efM+gOcCt8A8+fPN20AZ3sStw0iInILtm179QcoA2wFOqX9XAUIxBkV\nmwi8l/b860CvdK97F+hys2s3btzYlv/o1KmTHRkZaUdGRubo9V9++aUdGBhoBwYG2ufOnfM49uGH\nH9qA/fHHH9sff/yxbdu2PWXKFHvChAn2hAkTzHlHjx61jx49agP2Y4895nGNF154wQZswF69erXH\nsbCwMPvG/pwxY4b95z//2f7zn/9snjt06JB96NAhjza47UgvfRtubEdurV271l67dq1dvXp1+8KF\nCxmOb9y40d64caP93XffZeu6//3f/20D9ieffGJ/8skntzz/gQcesAH7+++/t7///nv7woULdu3a\nte2LFy/aFy9eNOcNGDDAHjBggA3YGzZsMM+7/bF69WqP/ggLC7tpf6Tn9oXbH24b3Hakl74N6duR\nHZ06dTLfIf3x/5+goCC/t0F/CvafU6dO5ej/9aIK2GJ7GT95NaJlWVYxYBHwkW3biwFs2z6Z7vjb\nwLK0HxOB36d7efW05ySfTJo0yWxge2NidtOmzixu+hGtadOmER7ubNnkjmy56tWrx7///W+P5+64\n4w7zuH79+h7H7r//frO6L/057ohUr169+N///V9TXdvdE23atGkAhIeHe9WG3EpNTWX8+PGAU9eq\nTJkyGc5p1qxZnt4zKxcvXgSgdOnSgDOC9Ouvv5oNbV3u3nt16tThp59+MvW33P7IrC+ALPvDHd10\n+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\ne1q8eHGGPVgrVqxotqAqSuLj4wGYMmUKs2fP9nokC2D//v1s374dcHK4blbbr127dsTGxrJixQrz\ns/iPAi0RKdS2bdvGunXruHz5MuBMPbVt29b88j5+/DiLFy82v7jbtGlDgwYNTCCzY8cOADp16gQ4\n5SvWrFlDhw4dAGdK66233qJatWqAsx/otWvX+PrrrwFnauzee+/ls88+A5xNwp944gmaNWvms/v/\n8ssvZhqpf//+JjfHX55//nl69OgBZNy43pW+nEeTJk1M0BEbG8u4ceM8zg0ICLhpvpLb5wCXL182\nfZ7+/m6B4DVr1hAQEEDz5s0BJ4ds3759dOvWDSBDrhhAUlISK1as4NixY4CTZ9a6detbfQw3lZiY\naDZur1Gjhqmj542rV68yduxYUyTYze26mejoaF544QXA2WPW2/wvyXsKtESkUBo+fDjg/AKbNGkS\n586dA6Bv375MnjyZhQsXAlC1alUqV67Mk08+CTi7ETRo0MAsqli3bh0TJkwwq+TuvvtuQkJCeOCB\nBwBnJKFevXomIfvYsWM888wzLF68GICIiAhSU1PNyswlS5YwdepUUx+sc+fOeXp/cEZGRo8eDUCZ\nMmUYNmxYHn6y2bN7926+/PJL055bCQkJIT4+3gQ+EyZMoFGjRrdcaecaPny46XNwcr7cPgdn54SA\ngACTJxYXF0fPnj1NvlKlSpWIi4sze3ju3r2bChUqAP8ZRZw/fz5Dhgwx+WMdO3YkKirKjNrlxPLl\ny83KyvDwcHr06GGCxaCgIKKiohg/fjyQcXV4TEwM0dHR2SoS3LJlSxPEL1u2jIiIiBy3XXJHIa6I\niIiIj2hES0QKnTlz5phplISEBI/K9p9++in16tUz2z7NnTvXjBZlJrOaTg899JApC5KQkJBh5dur\nr75qRrRKlCjBggULzLHx48fTsGFDc/8OHTrk+f27d+9uyic8/vjjWV47P+zcuRPATG16IzQ0lA8/\n/BBwdgno1asXmzZtAjKfygOnzwHefffdLPscnCmzuXPnmi2l4uLiSEpKYtWqVYAzetS6dWszwrN+\n/Xrat2/PxYsXGThwoHlPpUuXNn2zcuVK3njjDXr37g3Aww8/7PV7daXf+qt79+7079/f7D4RExND\nbGys2SbMXcHpbrMVFBRkVhR6q2rVqqb22NatWzWi5UcKtESk0Jk+fTr169cHyLB9UN26dalVqxbz\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x149569128>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from keras.utils import plot_model\n",
"plt.rcParams[\"figure.figsize\"] = 10,10\n",
"plot_model(model, to_file='model.png',show_shapes = True)\n",
"modelImage = plt.imread('./model.png')\n",
"plt.imshow(modelImage)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"(['dense_1', 'dense_2', 'dense_3'], range(0, 3))"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"[x.name for x in model.layers],range(len(model.layers))"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ 0.04662693 -0.009197 0.03947172 -0.05420211 0.0513831 -0.01576277\n",
" -0.00829097 0.01532029]\n"
]
}
],
"source": [
"weight = model.layers[2].get_weights()\n",
"\n",
"print(weight[1])"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 0.8360188 , 0.11314284, 0.05083836])"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def sigmodFuc(x):\n",
" x = np.array(x)\n",
" x = np.exp(-x)\n",
" return 1 / (1+x)\n",
"sigmodFuc(0)\n",
"\n",
"def softMaxFuc(x):\n",
" x = np.array(x)\n",
" x = np.exp(x)\n",
" return x / sum(x)\n",
"\n",
"softMaxFuc([3,1,0.2])"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([2, 4, 6])"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"A = np.array([1,2,3])\n",
"B = np.array([1,2,3])\n",
"A +B"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[152 145 186 177 57 186 158 139 107 5 13 9 8 6 9 10 4 1\n",
" 147 159 179 167 53 179 170 136 108 166 169 203 191 72 203 178 147 110\n",
" 141 122 166 188 68 166 138 144 107 5 16 12 10 10 12 12 4 1\n",
" 138 105 155 192 70 155 126 146 107 158 157 195 203 88 195 168 152 110\n",
" 161 177 206 155 54 206 184 128 111 2 1 1 1 1 1 1 0 0\n",
" 162 178 207 155 54 207 185 128 112 169 181 210 159 58 210 187 130 112]\n",
"[0 0 1 0 0 0 0]\n",
"(108, 64)\n",
"(64,)\n",
"(64, 64)\n",
"(64,)\n",
"(64, 64)\n",
"(64,)\n"
]
}
],
"source": [
"x = test_features_np[0]\n",
"y = test_labels_np[0]\n",
"print(x)\n",
"print(y)\n",
"weight1 = model.layers[0].get_weights()[0]\n",
"bais1 = model.layers[0].get_weights()[1]\n",
"\n",
"weight2 = model.layers[1].get_weights()[0]\n",
"bais2 = model.layers[1].get_weights()[1]\n",
"\n",
"weight_output = model.layers[2].get_weights()[0]\n",
"bais_output = model.layers[2].get_weights()[1]\n",
"\n",
"print(weight1.shape)\n",
"print(bais1.shape)\n",
"\n",
"print(weight2.shape)\n",
"print(bais2.shape)\n",
"\n",
"print(weight2.shape)\n",
"print(bais2.shape)\n",
"\n",
"def high_layer1(x):\n",
" x = np.array(x)\n",
" x = np.dot( np.transpose(weight1) ,x) + bais1\n",
" return x\n",
"\n",
"def high_layer2(x):\n",
" x = np.array(x)\n",
" x = np.dot( np.transpose(weight2) ,x) + bais2\n",
" return x\n",
"def high_layer3(x):\n",
" x = np.array(x)\n",
" x = np.dot( np.transpose(weight_output) ,x) + bais_output\n",
" return x\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ 0.00000000e+00 9.05838907e-02 -2.02228073e-02 0.00000000e+00\n",
" 0.00000000e+00 0.00000000e+00 4.12296737e-03 0.00000000e+00\n",
" 5.34244627e-03 -1.44594312e-02 1.90941413e-27 8.62948131e-03\n",
" -5.46117710e-18 -5.77182230e-03 0.00000000e+00 3.94508848e-03\n",
" 0.00000000e+00 6.49883412e-04 1.50491421e-23 -2.91719120e-02\n",
" -2.27949638e-02 5.30060707e-03 1.39116375e-02 -6.28211116e-03\n",
" -6.89919479e-03 -1.08937727e-24 -9.19537060e-03 0.00000000e+00\n",
" 0.00000000e+00 0.00000000e+00 4.73896302e-02 -1.98626511e-25\n",
" 6.17962442e-02 7.59590603e-03 -1.40151312e-03 -6.59467792e-03\n",
" 2.28975521e-04 -1.94891199e-05 -6.63879539e-22 0.00000000e+00\n",
" -1.62675716e-02 0.00000000e+00 0.00000000e+00 -5.69899753e-03\n",
" -4.96984879e-03 0.00000000e+00 0.00000000e+00 0.00000000e+00\n",
" 0.00000000e+00 -9.42842515e-21 3.82937342e-02 -8.38186010e-04\n",
" 9.96107794e-03 1.17418664e-02 0.00000000e+00 0.00000000e+00\n",
" 9.54258256e-03 -5.42361708e-03 0.00000000e+00 0.00000000e+00\n",
" -3.78000587e-02 7.70260114e-03 3.56959462e-10 0.00000000e+00]\n",
"[ 0.17305827 0.01341413 0.12307835 -0.0159746 0.145814 -0.06111556\n",
" 0.02930182 -0.18512695 -0.06474426 0.15277883 0.15094572 -0.0129154\n",
" 0.17037603 -0.11838593 -0.11614104 0.04180937 -0.16276659 -0.01937576\n",
" -0.06289992 -0.02851684 0.11076447 0.06341803 -0.00352053 0.16783056\n",
" -0.03295185 -0.00159225 0.04636611 0.03998886 -0.12772834 0.07079622\n",
" 0.00316973 -0.10519742 0.02417825 -0.16307655 0.12474412 0.14131364\n",
" 0.05467655 -0.14160518 -0.02730519 -0.16710535 0.03107308 -0.10948681\n",
" -0.01981571 0.0295959 0.05736272 -0.0458488 -0.03117368 -0.17638662\n",
" -0.06529959 0.04583581 -0.06465244 0.0314095 -0.07687322 -0.00407287\n",
" -0.17560548 -0.13912371 -0.07344259 -0.18529509 -0.03661816 0.13749975\n",
" -0.17643262 -0.1389471 0.07949537 -0.17393851 -0.03696759 0.15407303\n",
" 0.02555062 -0.07778964 -0.14857246 -0.05750833 -0.13000627 0.16853386\n",
" 0.06607634 -0.01161326 -0.10841172 0.0015166 0.07373002 0.02944303\n",
" -0.17377165 -0.07970803 -0.07890556 0.04234751 -0.17856881 0.10181689\n",
" 0.17066035 0.15023068 0.14596173 -0.06413063 -0.03997749 0.00883922\n",
" -0.02087811 -0.02104171 -0.11165582 -0.00446506 0.02626136 0.02614412\n",
" -0.14205988 0.09355843 -0.1596352 -0.13069732 -0.05696556 0.01703562\n",
" 0.15694144 0.10306948 0.16847223 0.17883787 -0.07447052 -0.10735899]\n",
"64\n"
]
}
],
"source": [
"print(bais1)\n",
"print(np.transpose(weight1)[0])\n",
"print(np.transpose(weight1).shape[0])"
]
},
{
"cell_type": "code",
"execution_count": 70,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"f = open(\"weight1.txt\",'a')\n",
"f.write(\"int weight1[64][108] = {\")\n",
"\n",
"for row in range(0,np.transpose(weight1).shape[0]):\n",
" for col in range(0,np.transpose(weight1).shape[1]):\n",
" f.write(np.str( np.transpose(weight1)[row][col]))\n",
" f.write(\",\")\n",
"f.write(\"};\")\n",
"\n",
"f.close()\n",
"f = open(\"bais1.txt\",'a')\n",
"f.write(\"int bais1[64] = {\")\n",
"for i in bais1:\n",
" f.write(np.str( i))\n",
" f.write(\",\")\n",
"f.write(\"};\")\n",
"\n",
"f.close()"
]
},
{
"cell_type": "code",
"execution_count": 71,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"f = open(\"weight2.txt\",'a')\n",
"f.write(\"int weight2[64][64] = {\")\n",
"\n",
"for row in range(0,np.transpose(weight2).shape[0]):\n",
" for col in range(0,np.transpose(weight2).shape[1]):\n",
" f.write(np.str( np.transpose(weight2)[row][col]))\n",
" f.write(\",\")\n",
"f.write(\"};\")\n",
"\n",
"f.close()\n",
"f = open(\"bais2.txt\",'a')\n",
"f.write(\"int bais2[64] = {\")\n",
"for i in bais2:\n",
" f.write(np.str( i))\n",
" f.write(\",\")\n",
"f.write(\"};\")\n",
"\n",
"f.close()"
]
},
{
"cell_type": "code",
"execution_count": 72,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"f = open(\"weight_output.txt\",'a')\n",
"f.write(\"int weight_output[8][64] = {\")\n",
"\n",
"for row in range(0,np.transpose(weight_output).shape[0]):\n",
" for col in range(0,np.transpose(weight_output).shape[1]):\n",
" f.write(np.str( np.transpose(weight_output)[row][col]))\n",
" f.write(\",\")\n",
"f.write(\"};\")\n",
"\n",
"f.close()\n",
"f = open(\"bais_output.txt\",'a')\n",
"f.write(\"int bais_output[8] = {\")\n",
"for i in bais_output:\n",
" f.write(np.str( i))\n",
" f.write(\",\")\n",
"f.write(\"};\")\n",
"\n",
"f.close()"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[205 196 194 31 13 205 204 130 130 2 4 3 64 2 2 3 1 0\n",
" 207 201 196 17 16 207 203 132 131 211 206 201 253 18 211 211 133 132\n",
" 185 150 161 227 49 185 167 143 127 12 23 17 59 18 12 18 5 1\n",
" 187 145 160 242 56 187 164 146 127 208 191 193 254 87 208 200 153 131\n",
" 210 207 202 23 10 210 212 128 130 1 1 1 6 1 1 1 0 0\n",
" 210 207 202 24 10 210 212 128 131 214 211 206 37 13 214 216 130 132]\n",
"[1 0 0 0 0 0 0]\n"
]
}
],
"source": [
"x = test_features_np[9]\n",
"y = test_labels_np[9]\n",
"\n",
"\n",
"print(x)\n",
"print(y)"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1\n"
]
}
],
"source": [
"output1 =sigmodFuc( high_layer1(x))\n",
"output2 =sigmodFuc( high_layer2(output1))\n",
"output = softMaxFuc(high_layer3(output2))\n",
"print(np.argmax(output) + 1)"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[ 2.31366255e-04 2.80003925e-03 9.94912744e-01 1.75529392e-03\n",
" 2.92330718e-04 8.12399230e-06 1.50342689e-08 1.16555619e-11]\n",
" [ 5.10226639e-10 6.41641478e-08 1.02145910e-08 3.59966154e-11\n",
" 2.58741784e-03 2.49091419e-04 9.96104956e-01 1.05844869e-03]\n",
" [ 1.44560587e-11 1.73894279e-07 6.23309745e-07 2.13589396e-06\n",
" 9.51821357e-03 9.90438759e-01 2.97749120e-05 1.03852080e-05]\n",
" [ 1.52289101e-11 1.78225122e-07 6.58507645e-07 2.26594079e-06\n",
" 1.00295255e-02 9.89926815e-01 3.01965865e-05 1.03242674e-05]\n",
" [ 2.42571602e-10 1.23676074e-07 1.39095134e-03 9.93464530e-01\n",
" 4.88486700e-03 2.59497407e-04 3.32446581e-09 1.17896204e-09]\n",
" [ 3.34279495e-04 9.90554154e-01 9.08142142e-03 6.13919428e-06\n",
" 2.30839214e-05 7.88283955e-07 2.41873224e-08 3.64174576e-12]\n",
" [ 1.96249312e-06 9.96626496e-01 3.34174908e-03 2.42524584e-05\n",
" 1.00169746e-06 4.61403943e-06 1.86237525e-09 2.23129154e-11]\n",
" [ 4.50833392e-16 4.85288532e-10 6.91000451e-11 2.02930884e-11\n",
" 2.25889551e-07 2.87003728e-04 1.59534067e-03 9.98117447e-01]\n",
" [ 2.40011649e-10 1.23279719e-07 1.38359773e-03 9.93513048e-01\n",
" 4.84373653e-03 2.59458378e-04 3.30301186e-09 1.17954602e-09]\n",
" [ 9.97621596e-01 1.72552897e-03 1.78660208e-04 1.75161745e-07\n",
" 4.73856169e-04 1.05380273e-08 1.53995842e-07 3.51505392e-14]]\n",
"[]\n",
"Series([], Name: index, dtype: int64)\n",
"accuracy: 1.0\n"
]
}
],
"source": [
"from sklearn.metrics import accuracy_score\n",
"pred = model.predict(test_features_np)\n",
"print(pred[0:10])\n",
"preds = []\n",
"for i,score in enumerate(pred):\n",
" preds.append(np.argmax(score) + 1) \n",
" \n",
"\n",
"print(preds[1010:1020])\n",
"print(y_test[1010:1020])\n",
"score = accuracy_score(preds,y_test)\n",
"print(\"accuracy:\",score)"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"epoch: 0 , acc: 0.500005\n",
"epoch: 1 , acc: 0.565736\n",
"epoch: 2 , acc: 0.582484\n",
"epoch: 3 , acc: 0.59118\n",
"epoch: 4 , acc: 0.634369\n",
"epoch: 5 , acc: 0.662114\n",
"epoch: 6 , acc: 0.692137\n",
"epoch: 7 , acc: 0.677777\n",
"epoch: 8 , acc: 0.698468\n",
"epoch: 9 , acc: 0.696595\n",
"epoch: 10 , acc: 0.706431\n",
"epoch: 11 , acc: 0.630755\n",
"epoch: 12 , acc: 0.69758\n",
"epoch: 13 , acc: 0.691436\n",
"epoch: 14 , acc: 0.694831\n",
"epoch: 15 , acc: 0.68425\n",
"epoch: 16 , acc: 0.708479\n",
"epoch: 17 , acc: 0.697975\n",
"epoch: 18 , acc: 0.705664\n",
"epoch: 19 , acc: 0.702367\n",
"epoch: 20 , acc: 0.675521\n",
"epoch: 21 , acc: 0.716497\n",
"epoch: 22 , acc: 0.704415\n",
"epoch: 23 , acc: 0.741218\n",
"epoch: 24 , acc: 0.770091\n",
"epoch: 25 , acc: 0.766969\n",
"epoch: 26 , acc: 0.78306\n",
"epoch: 27 , acc: 0.775874\n",
"epoch: 28 , acc: 0.798646\n",
"epoch: 29 , acc: 0.791965\n",
"epoch: 30 , acc: 0.809085\n",
"epoch: 31 , acc: 0.793487\n",
"epoch: 32 , acc: 0.807989\n",
"epoch: 33 , acc: 0.815668\n",
"epoch: 34 , acc: 0.806664\n",
"epoch: 35 , acc: 0.812228\n",
"epoch: 36 , acc: 0.797967\n",
"epoch: 37 , acc: 0.81799\n",
"epoch: 38 , acc: 0.799336\n",
"epoch: 39 , acc: 0.807485\n",
"epoch: 40 , acc: 0.819194\n",
"epoch: 41 , acc: 0.817891\n",
"epoch: 42 , acc: 0.81351\n",
"epoch: 43 , acc: 0.808931\n",
"epoch: 44 , acc: 0.755457\n",
"epoch: 45 , acc: 0.819556\n",
"epoch: 46 , acc: 0.817573\n",
"epoch: 47 , acc: 0.792666\n",
"epoch: 48 , acc: 0.807683\n",
"epoch: 49 , acc: 0.821046\n"
]
}
],
"source": [
"import tensorflow as tf\n",
"\n",
"tf.reset_default_graph()\n",
"with tf.name_scope(\"input\"):\n",
" x = tf.placeholder(tf.float32, [None, 108])\n",
" y = tf.placeholder(tf.float32,[None,8])\n",
" \n",
"with tf.name_scope(\"weigh_init\"):\n",
" W1 = tf.get_variable(name=\"w_1\" ,shape=[108,64],dtype=tf.float32,initializer=tf.contrib.layers.xavier_initializer())\n",
" b1 = tf.Variable(tf.zeros(64))\n",
" W2 = tf.get_variable(name=\"w_2\" ,shape=[64,64],dtype=tf.float32,initializer=tf.contrib.layers.xavier_initializer())\n",
" #tf.add_to_collection(\"W2_l1\",tf.contrib.layers.l1_regularizer(0.00005)(W2))\n",
" b2 = tf.Variable(tf.zeros(64))\n",
" #tf.add_to_collection(\"b2_l1\",tf.contrib.layers.l1_regularizer(0.00005)(b2))\n",
" W3 = tf.get_variable(name=\"w_3\" ,shape=[64,8],dtype=tf.float32,initializer=tf.contrib.layers.xavier_initializer())\n",
" b3 = tf.Variable(tf.zeros(8))\n",
" tf.summary.histogram(\"W1\",W1)\n",
" tf.summary.histogram(\"W2\",W2)\n",
" tf.summary.histogram(\"W3\",W3)\n",
" tf.summary.histogram(\"b1\",b1)\n",
" tf.summary.histogram(\"b2\",b2)\n",
" tf.summary.histogram(\"b3\",b3)\n",
" \n",
" \n",
"with tf.name_scope(\"input_layer\"):\n",
" output1 = tf.nn.sigmoid(tf.add(tf.matmul(x,W1) , b1))\n",
" tf.summary.histogram(\"layer1_output\",output1)\n",
" \n",
"with tf.name_scope(\"high_layer\"): \n",
" output2 = tf.nn.sigmoid(tf.add(tf.matmul(output1,W2) , b2))\n",
" tf.summary.histogram(\"layer2_output\",output2)\n",
" \n",
"with tf.name_scope(\"output_layer\"): \n",
" y_pred = tf.nn.softmax(tf.add(tf.matmul(output2,W3) , b3))\n",
" tf.summary.histogram(\"layer3_output\",y_pred)\n",
" \n",
"with tf.name_scope(\"cost\"):\n",
" cross_entropy = tf.nn.softmax_cross_entropy_with_logits(logits = y_pred, labels = y)\n",
" cost = tf.reduce_mean(cross_entropy)\n",
" tf.summary.scalar(\"cost\",cost)\n",
" \n",
"with tf.name_scope(\"opt\"):\n",
" train_step = tf.train.AdamOptimizer().minimize(cost)\n",
" \n",
"with tf.name_scope(\"acc\"):\n",
" correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_pred,1))\n",
" accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))\n",
" tf.summary.scalar(\"accuracy\",accuracy)\n",
" \n",
"init = tf.global_variables_initializer()\n",
"saver = tf.train.Saver()\n",
"batch_size = 512\n",
"merge_all = tf.summary.merge_all()\n",
"with tf.Session() as sess:\n",
" summary_writer = tf.summary.FileWriter(\"./logs\",sess.graph)\n",
" sess.run(init)\n",
" for i in range(0 ,50):\n",
" for start in range(0,len(train_features_np),batch_size):\n",
" end = min(start + batch_size ,len(train_features_np))\n",
" _ , merge_op = sess.run([train_step,merge_all], feed_dict={x: train_features_np[start:end], y: train_labels_np[start:end]})\n",
" print(\"epoch: \",i ,\", acc: \" ,sess.run(accuracy, feed_dict={x: train_features_np, y: train_labels_np}))\n",
" summary_writer.add_summary(merge_op,i)\n",
" summary_writer.close()\n",
" saver.save(sess, 'ov-model')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"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.6.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}