{"id":3149,"date":"2019-09-14T06:32:25","date_gmt":"2019-09-13T21:32:25","guid":{"rendered":"https:\/\/now0930.pe.kr\/wordpress\/?p=3149"},"modified":"2019-09-26T21:17:24","modified_gmt":"2019-09-26T12:17:24","slug":"keras%eb%a1%9c-%ed%82%a4%ec%9b%8c%eb%93%9c-%eb%b6%84%ec%84%9d3-3","status":"publish","type":"post","link":"https:\/\/now0930.pe.kr\/wordpress\/keras%eb%a1%9c-%ed%82%a4%ec%9b%8c%eb%93%9c-%eb%b6%84%ec%84%9d3-3\/","title":{"rendered":"keras\ub85c \ud0a4\uc6cc\ub4dc \ubd84\uc11d(3\/5)"},"content":{"rendered":"\n<p>\uacfc\uac70 acc\ub97c \ubabb \uc62c\ub9ac\ub294 \uc774\uc720\ub97c \uc54c\uc544\ubcf4\uc558\ub2e4. \ub458 \uc911 \ud558\ub098\ub97c \uc120\ud0dd\ud558\ub294 \ubb38\uc81c\ub294 activation softmax\ub300\uc2e0 sigmoid\ub97c \uc0ac\uc6a9\ud574\uc57c \ud55c\ub2e4. \uc544\ub798\ub85c \uace0\uce58\uace0 1,000\ubc88 \ud559\uc2b5\uc2dc\ucf30\ub2e4. \ucd5c\uace0\uac12\uc744 \ucc3e\uc740 weight\ub97c \ud30c\uc77c\ub85c \uc800\uc7a5\ud588\ub2e4. 147\ubc88 \ud559\uc2b5\ud574\ubcf4\ub2c8 0.99?? \uc815\ud655\ub3c4\ub97c \ubcf4\uc774\ub098, vlaidation \uccb4\ud06c\uc6a9\uc740 0.87\ub300 \uc815\ud655\ub3c4\ub97c \ubcf4\uc778\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">from konlpy.tag import Okt\nokt=Okt()\nfrom gensim.models import Word2Vec\nfrom keras.layers import Dense, Flatten, SimpleRNN\nfrom keras.models import Sequential\nfrom keras.preprocessing.sequence import pad_sequences\nfrom keras.layers.embeddings import Embedding\nimport numpy as np\n\n#model save\nfrom keras.callbacks import ModelCheckpoint\n\nmodel=Word2Vec.load('.\/myModel')\nMAX_VOCAB=len(model.wv.vocab)\nWV_SIZE=model.wv.vectors.shape[1]\nprint(\"\ub85c\ub4dc\ud55c \ubaa8\ub378 vocab \ucd5c\ub300\uac12\uc740\", MAX_VOCAB)\nprint(\"\ub85c\ub4dc\ud55c \ubaa8\ub378 vectror \ud06c\uae30\ub294\", WV_SIZE)\n\n#b=model.wv.most_similar(positive=[\"\ud074\ub7a8\ud504\", \"\uc7a0\uae40\"])\nprint(model)\n\n#print(model.wv[\"\ud6c4\ub4dc\ud78c\uc9c0\uc2dc\ud504\ud2b8\"])\n\n#tokenizer \uc124\uc815.\n#Okt()\uc0ac\uc6a9.\n\ntargetFile = open(\".\/tagv4\ud0dc\uadf8\ubd99\uc778\ud30c\uc77c.csv\", \"r\", encoding='UTF-8')\n\ni=0\nsentence_by_index=[]\ntraing_result=[]\nWORD_MAX=6\n#WV_SIZE=10\n#model\uc744 load\ud6c4 \ucd5c\ub300\uac12 \ud655\uc778\n#MAX_VOCAB=3532\n\n#\ubabb\ucc3e\uc740 \ub2e8\uc5b4\ub97c \uc785\ub825\ud558\uae30 \uc704\ud55c \ubd80\ubd84.\n#\uc0ad\uc81c.\n#VACANT_ARRAY = np.zeros((4,1))\n\n\nwhile True:\n\n    lines = targetFile.readline()\n    firstColumn = lines.split(',')\n    #print(lines)\n\n    if not lines:break\n    #if i == 1000:break\n    i=i+1\n    #word2vec\ub97c \ub9cc\ub4e0 \ud615\ud0dc\uc18c \ubd84\uc11d\uae30\ub97c \uc0ac\uc6a9..\n    tokenlist = okt.pos(firstColumn[1], stem=True, norm=True)\n    temp=[]\n\n    for word in tokenlist:\n        #word[0]\uc740 \ub2e8\uc5b4.\n        #word[1]\uc740 \ud488\uc0ac.\n        #print(\"word[0]\uc740\",word[0])\n        #print(\"word[1]\uc740\",word[1])\n\n        if word[1] in [\"Noun\",\"Alpha\",\"Number\"]:\n            #temp.append(model.wv[word[0]])\n            #word[0]\ub97c index\ub85c \ubcc0\uacbd.\n            #\ub2e8\uc5b4\uc7a5\uc5d0 \uc5c6\ub294 \ub2e8\uc5b4\ub97c \uc608\uc678\ucc98\ub9ac\n            #\uc785\ub825\uacfc \ucd9c\ub825\uc744 \uac19\uc774 \ub9de\ucd94\uae30 \uc704\ud574, \uc785\ucd9c\ub825 \ub3d9\uc2dc\uc5d0 append\n            try:\n                #print(\"---------\")\n                #print(i)\n                #print(word[0])\n                temp.append(model.wv.vocab.get(word[0]).index)\n                #print(model.wv.vocab.get(word[0]).index)\n\n            except AttributeError:\n                #\uac12\uc744 \ubabb\ucc3e\uc73c\uba74 0\uac12 \uc785\ub825\n                temp.append(0)\n                #print(temp)\n    #print(\"index is \", i)\n    #print(\"temp is\", temp)\n\n    #\uac00\uc838\ub2e8 \uc4f4 \ucf54\ub4dc\ub294 temp\uc5d0 \uac12\uc774 \uc788\uc744 \uacbd\uc6b0\uc5d0\ub9cc append.\n    #\ucd9c\ub825\uacfc \ub9de\ucd94\uae30 \uc704\ud574, list\uac00 \ube44\uc5b4\uc788\uc5b4\ub3c4 append\ub85c \ubcc0\uacbd.\n    #if temp:\n    #    sentence_by_index.append(temp)\n    sentence_by_index.append(temp)\n\n    #\uacb0\uacfc\ub97c \ubc30\uc5f4\ub85c \uc785\ub825\n    tempResult=firstColumn[4].strip('\\n')\n    traing_result.append(tempResult)\n\ntargetFile.close()\ntraining_result_asarray = np.asarray(traing_result)\n\n#\ucd5c\ub300 \ub2e8\uc5b4\ub97c 6\uc73c\ub85c \uc124\uc815.\n#\ud589 \uc218\ubcf4\ub2e4 6\uae4c\uc9c0 \ub4a4\ucabd\uc73c\ub85c 0\uc744 \ucc44\uc6c0.\n#word2Vec\uac00 \uc2e4\uc218\uc774\ubbc0\ub85c float32\ub85c \uc124\uc815\n#result\uac00 embedding_matrix\nfixed_sentence_by_index = pad_sequences(sentence_by_index, maxlen=WORD_MAX, padding='post', dtype='int')\nprint(\"\uc785\ub825 \uc2dc\ud000\uc2a4\ub294\", fixed_sentence_by_index.shape)\nprint(\"\ucd9c\ub825 \uc2dc\ud000\uc2a4\ub294\", training_result_asarray.shape)\n#print(\"index\ub85c \ubcc0\uacbd\ud55c \uac12\uc740\",fixed_sentence_by_index)\n#print(\"embedding vector\ub294\", model.wv.vectors)\n\n#keras \ubaa8\ub378 \uc124\uc815.\nmodel2= Sequential()\nmodel2.add(Embedding(input_dim=MAX_VOCAB, output_dim=WV_SIZE, input_length=WORD_MAX, weights=[model.wv.vectors], trainable=False))\n#model2.add(Flatten())\nmodel2.add(SimpleRNN(128, input_shape=(4,4)))\nmodel2.add(Dense(1, activation='sigmoid'))\nmodel2.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])\n\n#save model \uacbd\ub85c.\nweight_path = \".\/saved_network_weight.h5\"\ncheckpoint = ModelCheckpoint(weight_path, monitor='acc', verbose=2, save_best_only=True, mode='auto')\ncallbacks_list = [checkpoint]\n\nmodel2.fit(x=fixed_sentence_by_index, y=training_result_asarray, epochs=10, verbose=1, validation_split=0.2, callbacks=callbacks_list)\nmodel2.summary()\n\n\n#input_predict =model.wv.vocab.get(word[0]).index\nnum0 = model.wv.vocab.get(\"B\").index\nnum1 = model.wv.vocab.get(\"180\").index\nnum2 = model.wv.vocab.get(\"\uc154\ud2c0\").index\nnum3 = model.wv.vocab.get(\"\ubd88\uac04\uc12d\").index\n\ninput_predict = np.asarray([[num0, num1, num2, num3, 0, 0]])\n#print(\"input_predict \ub294\",input_predict.shape)\nmyPrediction = model2.predict_classes(input_predict, batch_size=10, verbose=1)\nmyPredictionAcc = model2.predict(input_predict, batch_size=10, verbose=1)\nprint(\"\ub0b4 \uc608\uc0c1\", myPrediction,  \"with \", myPredictionAcc)\n<\/pre>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"498\" height=\"1024\" src=\"https:\/\/now0930.pe.kr\/wordpress\/wp-content\/uploads\/2019\/09\/Screenshot_20190914-225156_Termius-498x1024.jpg\" alt=\"\" class=\"wp-image-3160\"\/><\/figure>\n\n\n\n<p>1,000\ud68c \ud558\ub294\ub370 4~5\uc2dc\uac04\uc815\ub3c4 \uac78\ub9b0 \ub4ef \ud558\ub2e4. \uadf8\ub7ec\ub098 \ubd88\ud589\ud558\uac8c\ub3c4 weight\ub294 \ucd08\uae30\uc5d0 \ud55c\ubc88 \uc5c5\ub370\uc774\ud2b8\ud558\uace0 \ub9d0\uc544\ubc84\ub838\ub2e4. \uadf8\ub798\ub3c4 \uc774\ub807\uac8c \uac04\ub2e8\ud55c \uad6c\uc870\uc778\ub370\ub3c4 87%\ub97c \uc720\uc9c0\ud558\ub2c8 \uc880 \ud30c\ubcf4\uba74 \ub098\uc544\uc9c8 \ub4ef \ud558\ub2e4.<\/p>\n\n\n\n<p>\uc774\uc81c \uc785\ub825\uc744 \ubc1b\uc544\ub4e4\uc5ec \uc774\ub97c \ud310\uc815\ud558\ub294 \ubd80\ubd84\uc744 \ub9cc\ub4e4\uc5b4 \ubcf4\uc790.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\uacfc\uac70 acc\ub97c \ubabb \uc62c\ub9ac\ub294 \uc774\uc720\ub97c \uc54c\uc544\ubcf4\uc558\ub2e4. \ub458 \uc911 \ud558\ub098\ub97c \uc120\ud0dd\ud558\ub294 \ubb38\uc81c\ub294 activation softmax\ub300\uc2e0 sigmoid\ub97c \uc0ac\uc6a9\ud574\uc57c \ud55c\ub2e4. \uc544\ub798\ub85c \uace0\uce58\uace0 1,000\ubc88 \ud559\uc2b5\uc2dc\ucf30\ub2e4. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[33],"tags":[650,109,637,652,649,648,441,651],"class_list":["post-3149","post","type-post","status-publish","format-standard","hentry","category-tensorflow","tag-konlpy","tag-tensorflow","tag-word2vec","tag-652","tag-649","tag-648","tag-441","tag-651"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/posts\/3149","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/comments?post=3149"}],"version-history":[{"count":9,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/posts\/3149\/revisions"}],"predecessor-version":[{"id":3183,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/posts\/3149\/revisions\/3183"}],"wp:attachment":[{"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/media?parent=3149"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/categories?post=3149"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/tags?post=3149"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}