キカガク(KIKAGAKU)で「テキスト分類」を学ぶ

Photo by Icons8 Team on Unsplash

今回は、キカガクで「テキスト分類(TensorFlow)」を学んだ。

学習内容

自然言語は今までのデータとは異なり、固定の長さのデータではなく、データごとに長さが異なるため、学習の際には固定の長さの数値に落とし込む必要がある。

文章を品詞ごとに分割する形態解析、単語を数値化する手法の一つである Bag of Words を使って自然言語の特徴量変換を行う。

MeCab で形態素解析

文章を単語毎に区切る方法のことを 形態素解析 (morphological analysis) と呼ぶ。
MeCab を使用しての形態素解析を行う。

形態素解析の実装

Tagger クラスをインタンス化する。
-Ochasen は形態素解析の出力方法のこと。
文章の分割には parse() メソッドを使用する。
分割されたテキストデータはエスケープシーケンスを取り除き、単語ごとに抽出を行う処理を施す必要がある。

名詞の抽出

入力変数は各記事(文書)、目的変数はニュースサイト名(ラベル)とする。
各記事(文書)を数値化し、ニュースサイト名に分類する。

この問題設定の場合、名詞が特徴となるため、形態素解析で名詞を抽出する。
特定の文字列でテキストデータを分けるときは、split() メソッドを使用する。
品詞が名詞の単語のみを抽出し、リストに格納する。

自然言語の特徴量変換

基礎的なテキストデータのエンコーディング方法(ベクトル化)の種類

  • Bag of Words (Count encoding)
  • tf-idf
  • One-hot encoding
  • Word2Vec

Bag of Words の概要

Bag of Words (以下 BoW)とは、単語の出現回数によって単語を数値に変換する方法。

BoW の実装

BoW の実装は scikit-learn を用いる。
scikit-learn を用いる場合、テキストデータは単語ごとに半角スペース区切りになっている必要がある。

join() メソッドを用いることでリストの要素を繋げられる
エンコーディングは CountVectorizer クラスを使用する。
インスタンス化後に fit_transform() メソッドを使用すると、単語毎に ID が割り振られ、ID ごとの出現回数を元にベクトル化が行われる。
vocabulary_ 属性にはエンコーディングされた重複なしの単語とその ID を確認できる。
エンコーディング後の数値は toarray() メソッドを使用して取得する。

文書分類の実装

実際のデータセットを用いて、文書分類の実装を行う。

入力変数・目的変数の作成

テキストファイルごとに BoW を用いてエンコーディングを行う。
また、テキストファイルごとにどのカテゴリの文書なのかを示す目的変数の作成も行う。

glob を用いてファイルの読み込みを行う。
取り出したこの 1 テキストファイルが入力変数になる。
このテキストデータからこの記事がどのカテゴリに属するのかの分類を行う。

各ディレクトリに対応する要素番号を分類に使用するラベルとして使用する。
enumerate() を使うことで、for 文を用いて繰り返しを実行する際に要素番号も併せて取得することができる。
全てのディレクトリ・テキストファイルを読み込み、同時にラベル付けも行う。

文章から名詞のみを抽出

前に作成した名詞抽出用の関数を使用して、文書全体で使用されている名詞を全て word_collect というリストに格納していく。

それぞれのテキストデータに対し名詞抽出を行う関数を適用し、リストに追加する前に半角スペース区切りの文字列に変換を行う。

BoW に変換

全ての名詞を使用して辞書を作成した場合、使用される単語量が膨大になる(約 5 万単語)ことが想定されるため、エンコーディング時に引数 min_df を指定し、出現頻度が指定した値以下のものは取り扱わない設定を行う。

モデルの定義と学習

ニューラルネットワークを実装する。
モデルの定義・学習・評価を行い、文書分類がどの程度の精度で行うことができているのか次の手順で確認する。

  1. 学習用データセットとテスト用データセットに分割
  2. モデルの定義
  3. モデルの学習
  4. モデルの評価

ソースコード

# 形態素解析の実装
import MeCab
mecab = MeCab.Tagger('-Ochasen')
res = mecab.parse('こんにちは、私はキカガクです。')
print(res)
# 名詞の抽出
text1 = 'キカガクでは、ディープラーニングを含んだ機械学習や人工知能の教育を行っています。'
text2 = '代表の吉崎は大学院では機械学習・ロボットのシステム制御、画像処理の研究に携わっていました。'
text3 = '機械学習、システム制御、画像処理ではすべて線形代数とプログラミングが不可欠になります。'
# 形態素解析
res = mecab.parse(text1)
print(res)
# 改行ごとに分割し、リストに格納
print(res.split('\n'))
# 最後の 2 つの要素までをスライス
print(res.split('\n')[:-2])
# 1 つ目の単語をスライス
print(res.split('\n')[0])
# 品詞の取得
print(res.split('\n')[0].split('\t')[3])
# 品詞が名詞の単語のみを抽出しリストに格納する
nouns = [] # 品詞が名詞 (noun) である単語を格納するリスト
res = mecab.parse(text1)
words = res.split('\n')[:-2]
for word in words:
part = word.split('\t')
if '名詞' in part[3]:
nouns.append(part[0])
print(nouns)
# 品詞が名詞の単語のみを抽出しリストに格納する処理を関数化する
def get_nouns(text):
nouns = []
res = mecab.parse(text)
words = res.split('\n')[:-2]
for word in words:
part = word.split('\t')
if '名詞' in part[3]:
nouns.append(part[0])
return nouns
# text1 から名詞を抽出する。
nouns1 = get_nouns(text1)
print(nouns1)
# text2 から名詞を抽出する。
nouns2 = get_nouns(text2)
print(nouns2)
# text3 から名詞を抽出する。
nouns3 = get_nouns(text3)
print(nouns3)
# BoW の実装
print(nouns1)
print(' '.join(nouns1))
nouns_list = [nouns1, nouns2, nouns3]
corpus = []
for nouns in nouns_list:
corpus.append(' '.join(nouns))
print(corpus)
# エンコーディング(単語毎に ID を割り振る)
from sklearn.feature_extraction.text import CountVectorizer
vectorizer = CountVectorizer()
x = vectorizer.fit_transform(corpus)
print(vectorizer.vocabulary_)
# エンコーディング後の数値の取得
x = x.toarray()
print(x)
# 文書分類の実装
# 入力変数・目的変数の作成
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from glob import glob
# text ディレクトリ以下のディレクトリの取得
directories = glob('text/*')
directories
# テキストファイル名の取得
filepaths = glob('{}/*.txt'.format(directories[0]))
print(filepaths[:3])
# テキストファイルの読み込み
with open(filepaths[0], encoding='utf-8') as f:
text = ''.join(f.readlines()[2:])
print(text)
# 文章から名詞のみを抽出
for (i, directory) in enumerate(directories):
print(i, directory)
print('- - -')
# 全てのディレクトリ・テキストファイルを読み込み、同時にラベル付けも行う。
texts, labels = [], []
for (i, directory) in enumerate(directories):
#各ディレクトリ内のtxtファイルのパスをすべて取得
filepaths = glob('{}/*.txt'.format(directory))
# テキストを読み込んで、内容をtextに格納、ラベルも併せて格納
for filepath in filepaths:
with open(filepath, encoding='utf-8') as f:
text = ''.join(f.readlines()[2:]) # URL等の先頭2行を除いた各行の文章を連結(join)して格納
texts.append(text)
labels.append(i)
# 取り出したテキストデータとラベルを確認
print(len(texts), len(labels))
print(texts[0])
print(labels[0])
# 文章から名詞のみを抽出
import MeCab
mecab = MeCab.Tagger('-Ochasen')
# 文書全体で使用されている名詞を全て格納
def get_nouns(text):
nouns = []
res = mecab.parse(text)
words = res.split('\n')[:-2]
for word in words:
part = word.split('\t')
if '名詞' in part[3]:
nouns.append(part[0])
return nouns
# 半角スペース区切りの文字列に変換
word_collect = []
for text in texts:
nouns = get_nouns(text)
word_collect.append(' '.join(nouns))
print(word_collect[0])
# BoW に変換
from sklearn.feature_extraction.text import CountVectorizer
vectorizer = CountVectorizer(min_df=20)
x = vectorizer.fit_transform(word_collect)
x = x.toarray()
print(len(vectorizer.vocabulary_))
print(len(x))
x = x.astype('float32')
t = np.array(labels, 'int32')
# 学習用データセットとテスト用データセットの分割
from sklearn.model_selection import train_test_split
x_train, x_test, t_train, t_test = train_test_split(x, t, train_size=0.7, random_state=0)
# モデルの定義
import tensorflow as tf
import os
import random
def reset_seed(seed=0):
os.environ['PYTHONHASHSEED'] = '0'
random.seed(seed)
np.random.seed(seed)
tf.random.set_seed(seed)
# 入力・出力層のノードの数を定義
_, n_input = x_train.shape
n_output = len(np.unique(t_test))
from tensorflow.keras import models, layers
reset_seed(0)
model = models.Sequential([
layers.Dense(200, input_shape=(n_input,), activation='relu'),
layers.Dense(n_output, activation='softmax')
])
optimizer = tf.keras.optimizers.SGD(lr=0.01)
model.compile(loss='sparse_categorical_crossentropy',
optimizer=optimizer,
metrics=['accuracy'])
# モデルの学習
history = model.fit(x_train, t_train,
batch_size=100,
epochs=20,
verbose=1,
validation_data=(x_test, t_test))
# モデルの評価
# 学習結果を取得
results = pd.DataFrame(history.history)
print(results.tail(3))
# 損失を可視化
results[['loss', 'val_loss']].plot(title='loss')
plt.xlabel('epochs')
plt.show()
# 正解率を可視化
results[['accuracy', 'val_accuracy']].plot(title='metric')
plt.xlabel('epochs')
plt.show()


実行結果

Fig.1 損失

Fig.2 正解率

C:\Development\Python\Project001\venv\Scripts\python.exe C:/Development/Python/Project001/venv/text_classification.py
こんにちは コンニチハ こんにちは 感動詞
、 、 、 記号-読点
私 ワタシ 私 名詞-代名詞-一般
は ハ は 助詞-係助詞
キカガク キカガク キカガク 名詞-一般
です デス です 助動詞 特殊・デス 基本形
。 。 。 記号-句点
EOS
キカガク キカガク キカガク 名詞-一般
で デ で 助詞-格助詞-一般
は ハ は 助詞-係助詞
、 、 、 記号-読点
ディープラーニング ディープラーニング ディープラーニング 名詞-一般
を ヲ を 助詞-格助詞-一般
含ん フクン 含む 動詞-自立 五段・マ行 連用タ接続
だ ダ だ 助動詞 特殊・タ 基本形
機械 キカイ 機械 名詞-一般
学習 ガクシュウ 学習 名詞-サ変接続
や ヤ や 助詞-並立助詞
人工 ジンコウ 人工 名詞-一般
知能 チノウ 知能 名詞-一般
の ノ の 助詞-連体化
教育 キョウイク 教育 名詞-サ変接続
を ヲ を 助詞-格助詞-一般
行っ オコナッ 行う 動詞-自立 五段・ワ行促音便 連用タ接続
て テ て 助詞-接続助詞
い イ いる 動詞-非自立 一段 連用形
ます マス ます 助動詞 特殊・マス 基本形
。 。 。 記号-句点
EOS
['キカガク\tキカガク\tキカガク\t名詞-一般\t\t', 'で\tデ\tで\t助詞-格助詞-一般\t\t', 'は\tハ\tは\t助詞-係助詞\t\t', '、\t、\t、\t記号-読点\t\t', 'ディープラーニング\tディープラーニング\tディープラーニング\t名詞-一般\t\t', 'を\tヲ\tを\t助詞-格助詞-一般\t\t', '含ん\tフクン\t含む\t動詞-自立\t五段・マ行\t連用タ接続', 'だ\tダ\tだ\t助動詞\t特殊・タ\t基本形', '機械\tキカイ\t機械\t名詞-一般\t\t', '学習\tガクシュウ\t学習\t名詞-サ変接続\t\t', 'や\tヤ\tや\t助詞-並立助詞\t\t', '人工\tジンコウ\t人工\t名詞-一般\t\t', '知能\tチノウ\t知能\t名詞-一般\t\t', 'の\tノ\tの\t助詞-連体化\t\t', '教育\tキョウイク\t教育\t名詞-サ変接続\t\t', 'を\tヲ\tを\t助詞-格助詞-一般\t\t', '行っ\tオコナッ\t行う\t動詞-自立\t五段・ワ行促音便\t連用タ接続', 'て\tテ\tて\t助詞-接続助詞\t\t', 'い\tイ\tいる\t動詞-非自立\t一段\t連用形', 'ます\tマス\tます\t助動詞\t特殊・マス\t基本形', '。\t。\t。\t記号-句点\t\t', 'EOS', '']
['キカガク\tキカガク\tキカガク\t名詞-一般\t\t', 'で\tデ\tで\t助詞-格助詞-一般\t\t', 'は\tハ\tは\t助詞-係助詞\t\t', '、\t、\t、\t記号-読点\t\t', 'ディープラーニング\tディープラーニング\tディープラーニング\t名詞-一般\t\t', 'を\tヲ\tを\t助詞-格助詞-一般\t\t', '含ん\tフクン\t含む\t動詞-自立\t五段・マ行\t連用タ接続', 'だ\tダ\tだ\t助動詞\t特殊・タ\t基本形', '機械\tキカイ\t機械\t名詞-一般\t\t', '学習\tガクシュウ\t学習\t名詞-サ変接続\t\t', 'や\tヤ\tや\t助詞-並立助詞\t\t', '人工\tジンコウ\t人工\t名詞-一般\t\t', '知能\tチノウ\t知能\t名詞-一般\t\t', 'の\tノ\tの\t助詞-連体化\t\t', '教育\tキョウイク\t教育\t名詞-サ変接続\t\t', 'を\tヲ\tを\t助詞-格助詞-一般\t\t', '行っ\tオコナッ\t行う\t動詞-自立\t五段・ワ行促音便\t連用タ接続', 'て\tテ\tて\t助詞-接続助詞\t\t', 'い\tイ\tいる\t動詞-非自立\t一段\t連用形', 'ます\tマス\tます\t助動詞\t特殊・マス\t基本形', '。\t。\t。\t記号-句点\t\t']
キカガク キカガク キカガク 名詞-一般
名詞-一般
['キカガク', 'ディープラーニング', '機械', '学習', '人工', '知能', '教育']
['キカガク', 'ディープラーニング', '機械', '学習', '人工', '知能', '教育']
['代表', '吉崎', '大学院', '機械', '学習', 'ロボット', 'システム', '制御', '画像', '処理', '研究']
['機械', '学習', 'システム', '制御', '画像', '処理', 'すべて', '線形', '代数', 'プログラミング', '不可欠']
['キカガク', 'ディープラーニング', '機械', '学習', '人工', '知能', '教育']
キカガク ディープラーニング 機械 学習 人工 知能 教育
['キカガク ディープラーニング 機械 学習 人工 知能 教育', '代表 吉崎 大学院 機械 学習 ロボット システム 制御 画像 処理 研究', '機械 学習 システム 制御 画像 処理 すべて 線形 代数 プログラミング 不可欠']
{'キカガク': 1, 'ディープラーニング': 3, '機械': 16, '学習': 14, '人工': 7, '知能': 18, '教育': 15, '代表': 9, '吉崎': 12, '大学院': 13, 'ロボット': 5, 'システム': 2, '制御': 11, '画像': 17, '処理': 10, '研究': 19, 'すべて': 0, '線形': 20, '代数': 8, 'プログラミング': 4, '不可欠': 6}
[[0 1 0 1 0 0 0 1 0 0 0 0 0 0 1 1 1 0 1 0 0]
[0 0 1 0 0 1 0 0 0 1 1 1 1 1 1 0 1 1 0 1 0]
[1 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 1 0 0 1]]
['text\\it-life-hack\\it-life-hack-6292880.txt', 'text\\it-life-hack\\it-life-hack-6294340.txt', 'text\\it-life-hack\\it-life-hack-6294574.txt']
旧式Macで禁断のパワーアップ!最新PCやソフトを一挙にチェック【ITフラッシュバック】
テレビやTwitterと連携できるパソコンや、プロセッサや切り替わるパソコンなど、面白いパソコンが次から次へと登場した。旧式Macの禁断ともいえるパワーアップ方法から、NECの最新PC、話題のThinkPad X1 Hybrid、新セキュリティソフトまで一挙に紹介しよう。
■インテル SSD 520をMacに装着!旧式Macはどれほど高速化するのか (上)
インテルが最新SSD「520シリーズ」を発売した。現行SSDの中でもトップクラスの性能を誇る同製品を、旧型Macの高速化を図るというポイントでレビューしてみた。少し風変わりなレビューとなるが、どの程度の効果があるか、期待大である。
■http://itlifehack.jp/archives/6716997.html
ThinkPad X1 Hybridは使用するCPUがx86(インテルCore iなど)からARMに切り替わるハイブリッドなPCだが、これと同時にOSも切り替わる。
■初期費用、更新費用ともに無料!ジャストシステム、ヤモリが目印のセキュリティソフト
現在では、多くのユーザーがパソコンにセキュリティソフトを導入しているが、その過半数は毎年5,000円程度かかる更新費用やその手続きについて不満を持っている。有料ソフトを利用するユーザーの約8割は無料のセキュリティソフトを知っているにもかかわらず、性能面で劣るのではという不安から導入を控えているという状況にある。
■テレビの新しい楽しみ方を提案!NECの春PCはTVとTwitterの連携
NECは2012年2月14日、個人向けデスクトップパソコン「VALUESTAR」シリーズ3タイプ16モデルを2月16日より販売すると発表した。新商品では、よりパワフルになった録画機能に加え、TV視聴・録画機能に業界で初めて人気のTwitterを連携させた「SmartVisionつぶやきプラス」を追加するなど、TVパソコンならではの機能を搭載。スマートフォン、ホームネットワーク対応も強化し、「安心・簡単・快適」なデジタルエンターテイメントの提案として、主要モデルに対し以下の強化を行った。
■まるでお祭りの出荷式!レッツノートSX1の出荷が始まる
2月24日に発売されるLet’snote SX1/NX1の出荷式が2月8日に国内製造拠点の神戸工場で行われた。同社のパソコンとして初めてとなる出荷式で、この製品への力の入れようがわかる。
【エプソン純正インク】インクカートリッジ 6色セット IC6CL50
エプソン
販売元:Amazon.co.jp
クチコミを見る
0 text\it-life-hack
- - -
1 text\kaden-channel
- - -
2 text\livedoor-homme
- - -
3 text\movie-enter
- - -
4 text\peachy
- - -
5 text\smax
- - -
6 text\sports-watch
- - -
7 text\topic-news
- - -
6505 6505
旧式Macで禁断のパワーアップ!最新PCやソフトを一挙にチェック【ITフラッシュバック】
テレビやTwitterと連携できるパソコンや、プロセッサや切り替わるパソコンなど、面白いパソコンが次から次へと登場した。旧式Macの禁断ともいえるパワーアップ方法から、NECの最新PC、話題のThinkPad X1 Hybrid、新セキュリティソフトまで一挙に紹介しよう。
■インテル SSD 520をMacに装着!旧式Macはどれほど高速化するのか (上)
インテルが最新SSD「520シリーズ」を発売した。現行SSDの中でもトップクラスの性能を誇る同製品を、旧型Macの高速化を図るというポイントでレビューしてみた。少し風変わりなレビューとなるが、どの程度の効果があるか、期待大である。
■http://itlifehack.jp/archives/6716997.html
ThinkPad X1 Hybridは使用するCPUがx86(インテルCore iなど)からARMに切り替わるハイブリッドなPCだが、これと同時にOSも切り替わる。
■初期費用、更新費用ともに無料!ジャストシステム、ヤモリが目印のセキュリティソフト
現在では、多くのユーザーがパソコンにセキュリティソフトを導入しているが、その過半数は毎年5,000円程度かかる更新費用やその手続きについて不満を持っている。有料ソフトを利用するユーザーの約8割は無料のセキュリティソフトを知っているにもかかわらず、性能面で劣るのではという不安から導入を控えているという状況にある。
■テレビの新しい楽しみ方を提案!NECの春PCはTVとTwitterの連携
NECは2012年2月14日、個人向けデスクトップパソコン「VALUESTAR」シリーズ3タイプ16モデルを2月16日より販売すると発表した。新商品では、よりパワフルになった録画機能に加え、TV視聴・録画機能に業界で初めて人気のTwitterを連携させた「SmartVisionつぶやきプラス」を追加するなど、TVパソコンならではの機能を搭載。スマートフォン、ホームネットワーク対応も強化し、「安心・簡単・快適」なデジタルエンターテイメントの提案として、主要モデルに対し以下の強化を行った。
■まるでお祭りの出荷式!レッツノートSX1の出荷が始まる
2月24日に発売されるLet’snote SX1/NX1の出荷式が2月8日に国内製造拠点の神戸工場で行われた。同社のパソコンとして初めてとなる出荷式で、この製品への力の入れようがわかる。
【エプソン純正インク】インクカートリッジ 6色セット IC6CL50
エプソン
販売元:Amazon.co.jp
クチコミを見る
0
旧式 Mac 禁断 パワーアップ 最新 PC ソフト 一挙 チェック IT フラッシュ バック テレビ Twitter 連携 パソコン プロセッサ パソコン パソコン 次 次 登場 旧式 Mac 禁断 パワーアップ 方法 NEC 最新 PC 話題 ThinkPad X 1 Hybrid 新 セキュリティ ソフト 一挙 紹介 インテル SSD 520 Mac 装着 旧式 Mac どれ 高速 化 の ( 上 ) インテル 最新 SSD 520 シリーズ 発売 現行 SSD 中 トップクラス 性能 同 製品 旧型 Mac 高速 化 ポイント レビュー 風変わり レビュー 程度 効果 期待 大 http :// itlifehack . jp / archives / 6716997 . html ThinkPad X 1 Hybrid 使用 CPU x 86 ( インテル Core i ) ARM ハイブリッド PC これ OS 初期 費用 更新 費用 とも 無料 ジャストシステム ヤモリ 目印 セキュリティ ソフト 現在 多く ユーザー パソコン セキュリティ ソフト 導入 過半数 毎年 5 , 000 円 程度 更新 費用 手続き 不満 有料 ソフト 利用 ユーザー 8 割 無料 セキュリティ ソフト 性能 面 の 不安 導入 状況 テレビ 方 提案 NEC 春 PC TV Twitter 連携 NEC 2012 年 2 月 14 日 個人 向け デスク トップ パソコン VALUESTAR シリーズ 3 タイプ 16 モデル 2 月 16 日 販売 発表 新 商品 パワフル 録画 機能 TV 視聴 録画 機能 業界 人気 Twitter 連携 SmartVision つぶやき プラス 追加 TV パソコン ならでは 機能 搭載 スマート フォン ホーム ネットワーク 対応 強化 安心 簡単 快適 デジタル エンターテイメント 提案 主要 モデル 以下 強化 お 祭り 出荷 式 レッツ ノート SX 1 出荷 2 月 24 日 発売 Let snote SX 1 / NX 1 出荷 式 2 月 8 日 国内 製造 拠点 神戸 工場 同社 パソコン 出荷 式 製品 力 よう エプソン 純正 インク インク カートリッジ 6 色 セット IC 6 CL 50 エプソン 販売元 Amazon . co . jp クチコミ
5795
6505
2020-07-30 19:47:31.743304: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
Train on 4553 samples, validate on 1952 samples
Epoch 1/20
100/4553 [..............................] - ETA: 28s - loss: 2.1747 - accuracy: 0.1900
800/4553 [====>.........................] - ETA: 3s - loss: 2.0591 - accuracy: 0.1813
1500/4553 [========>.....................] - ETA: 1s - loss: 1.9840 - accuracy: 0.2340
2000/4553 [============>.................] - ETA: 1s - loss: 1.9289 - accuracy: 0.2715
2600/4553 [================>.............] - ETA: 0s - loss: 1.8844 - accuracy: 0.3096
3200/4553 [====================>.........] - ETA: 0s - loss: 1.8386 - accuracy: 0.3397
3900/4553 [========================>.....] - ETA: 0s - loss: 1.7931 - accuracy: 0.3667
4500/4553 [============================>.] - ETA: 0s - loss: 1.7539 - accuracy: 0.3964
4553/4553 [==============================] - 1s 276us/sample - loss: 1.7511 - accuracy: 0.3984 - val_loss: 1.4821 - val_accuracy: 0.6158
Epoch 2/20
100/4553 [..............................] - ETA: 0s - loss: 1.5568 - accuracy: 0.5700
600/4553 [==>...........................] - ETA: 0s - loss: 1.4429 - accuracy: 0.6467
1200/4553 [======>.......................] - ETA: 0s - loss: 1.4078 - accuracy: 0.6650
1800/4553 [==========>...................] - ETA: 0s - loss: 1.3780 - accuracy: 0.6794
2400/4553 [==============>...............] - ETA: 0s - loss: 1.3487 - accuracy: 0.6896
3000/4553 [==================>...........] - ETA: 0s - loss: 1.3190 - accuracy: 0.7070
3600/4553 [======================>.......] - ETA: 0s - loss: 1.3015 - accuracy: 0.7164
4300/4553 [===========================>..] - ETA: 0s - loss: 1.2773 - accuracy: 0.7279
4553/4553 [==============================] - 1s 116us/sample - loss: 1.2675 - accuracy: 0.7323 - val_loss: 1.1400 - val_accuracy: 0.7951
Epoch 3/20
100/4553 [..............................] - ETA: 0s - loss: 1.0708 - accuracy: 0.7900
600/4553 [==>...........................] - ETA: 0s - loss: 1.0378 - accuracy: 0.8167
1200/4553 [======>.......................] - ETA: 0s - loss: 1.0429 - accuracy: 0.8267
1800/4553 [==========>...................] - ETA: 0s - loss: 1.0401 - accuracy: 0.8322
2400/4553 [==============>...............] - ETA: 0s - loss: 1.0235 - accuracy: 0.8367
3000/4553 [==================>...........] - ETA: 0s - loss: 1.0164 - accuracy: 0.8313
3600/4553 [======================>.......] - ETA: 0s - loss: 1.0020 - accuracy: 0.8361
4200/4553 [==========================>...] - ETA: 0s - loss: 0.9871 - accuracy: 0.8390
4553/4553 [==============================] - 1s 123us/sample - loss: 0.9769 - accuracy: 0.8416 - val_loss: 0.9105 - val_accuracy: 0.8438
Epoch 4/20
100/4553 [..............................] - ETA: 0s - loss: 0.8692 - accuracy: 0.8600
600/4553 [==>...........................] - ETA: 0s - loss: 0.8213 - accuracy: 0.8700
1200/4553 [======>.......................] - ETA: 0s - loss: 0.8209 - accuracy: 0.8667
1800/4553 [==========>...................] - ETA: 0s - loss: 0.8161 - accuracy: 0.8667
2400/4553 [==============>...............] - ETA: 0s - loss: 0.8095 - accuracy: 0.8704
3000/4553 [==================>...........] - ETA: 0s - loss: 0.8029 - accuracy: 0.8690
3600/4553 [======================>.......] - ETA: 0s - loss: 0.7929 - accuracy: 0.8714
4200/4553 [==========================>...] - ETA: 0s - loss: 0.7829 - accuracy: 0.8731
4553/4553 [==============================] - 1s 122us/sample - loss: 0.7809 - accuracy: 0.8720 - val_loss: 0.7567 - val_accuracy: 0.8653
Epoch 5/20
100/4553 [..............................] - ETA: 0s - loss: 0.6485 - accuracy: 0.9300
700/4553 [===>..........................] - ETA: 0s - loss: 0.6641 - accuracy: 0.8943
1300/4553 [=======>......................] - ETA: 0s - loss: 0.6642 - accuracy: 0.8892
1900/4553 [===========>..................] - ETA: 0s - loss: 0.6616 - accuracy: 0.8900
2500/4553 [===============>..............] - ETA: 0s - loss: 0.6587 - accuracy: 0.8908
3100/4553 [===================>..........] - ETA: 0s - loss: 0.6549 - accuracy: 0.8910
3700/4553 [=======================>......] - ETA: 0s - loss: 0.6521 - accuracy: 0.8935
4300/4553 [===========================>..] - ETA: 0s - loss: 0.6519 - accuracy: 0.8900
4553/4553 [==============================] - 1s 118us/sample - loss: 0.6487 - accuracy: 0.8917 - val_loss: 0.6518 - val_accuracy: 0.8750
Epoch 6/20
100/4553 [..............................] - ETA: 0s - loss: 0.6699 - accuracy: 0.9100
500/4553 [==>...........................] - ETA: 0s - loss: 0.6129 - accuracy: 0.8880
1000/4553 [=====>........................] - ETA: 0s - loss: 0.5842 - accuracy: 0.9020
1600/4553 [=========>....................] - ETA: 0s - loss: 0.5785 - accuracy: 0.9025
2400/4553 [==============>...............] - ETA: 0s - loss: 0.5771 - accuracy: 0.9029
3000/4553 [==================>...........] - ETA: 0s - loss: 0.5717 - accuracy: 0.9037
3600/4553 [======================>.......] - ETA: 0s - loss: 0.5683 - accuracy: 0.9042
4200/4553 [==========================>...] - ETA: 0s - loss: 0.5636 - accuracy: 0.9031
4553/4553 [==============================] - 1s 129us/sample - loss: 0.5560 - accuracy: 0.9045 - val_loss: 0.5773 - val_accuracy: 0.8893
Epoch 7/20
100/4553 [..............................] - ETA: 0s - loss: 0.5944 - accuracy: 0.8900
600/4553 [==>...........................] - ETA: 0s - loss: 0.5376 - accuracy: 0.9067
1200/4553 [======>.......................] - ETA: 0s - loss: 0.5368 - accuracy: 0.9075
1800/4553 [==========>...................] - ETA: 0s - loss: 0.5168 - accuracy: 0.9139
2400/4553 [==============>...............] - ETA: 0s - loss: 0.5040 - accuracy: 0.9162
3000/4553 [==================>...........] - ETA: 0s - loss: 0.4970 - accuracy: 0.9147
3600/4553 [======================>.......] - ETA: 0s - loss: 0.4934 - accuracy: 0.9161
4200/4553 [==========================>...] - ETA: 0s - loss: 0.4887 - accuracy: 0.9176
4553/4553 [==============================] - 1s 119us/sample - loss: 0.4874 - accuracy: 0.9176 - val_loss: 0.5238 - val_accuracy: 0.8955
Epoch 8/20
100/4553 [..............................] - ETA: 0s - loss: 0.3446 - accuracy: 0.9500
700/4553 [===>..........................] - ETA: 0s - loss: 0.4194 - accuracy: 0.9214
1200/4553 [======>.......................] - ETA: 0s - loss: 0.4271 - accuracy: 0.9192
1800/4553 [==========>...................] - ETA: 0s - loss: 0.4383 - accuracy: 0.9183
2400/4553 [==============>...............] - ETA: 0s - loss: 0.4375 - accuracy: 0.9196
3000/4553 [==================>...........] - ETA: 0s - loss: 0.4359 - accuracy: 0.9200
3500/4553 [======================>.......] - ETA: 0s - loss: 0.4349 - accuracy: 0.9214
4100/4553 [==========================>...] - ETA: 0s - loss: 0.4335 - accuracy: 0.9229
4553/4553 [==============================] - 1s 124us/sample - loss: 0.4343 - accuracy: 0.9238 - val_loss: 0.4810 - val_accuracy: 0.9027
Epoch 9/20
100/4553 [..............................] - ETA: 0s - loss: 0.4243 - accuracy: 0.9400
800/4553 [====>.........................] - ETA: 0s - loss: 0.3923 - accuracy: 0.9388
1500/4553 [========>.....................] - ETA: 0s - loss: 0.3951 - accuracy: 0.9360
2100/4553 [============>.................] - ETA: 0s - loss: 0.3916 - accuracy: 0.9367
2700/4553 [================>.............] - ETA: 0s - loss: 0.3958 - accuracy: 0.9315
3300/4553 [====================>.........] - ETA: 0s - loss: 0.3954 - accuracy: 0.9315
3900/4553 [========================>.....] - ETA: 0s - loss: 0.3928 - accuracy: 0.9344
4500/4553 [============================>.] - ETA: 0s - loss: 0.3919 - accuracy: 0.9327
4553/4553 [==============================] - 1s 113us/sample - loss: 0.3922 - accuracy: 0.9317 - val_loss: 0.4493 - val_accuracy: 0.9057
Epoch 10/20
100/4553 [..............................] - ETA: 0s - loss: 0.3322 - accuracy: 0.9400
800/4553 [====>.........................] - ETA: 0s - loss: 0.4028 - accuracy: 0.9250
1400/4553 [========>.....................] - ETA: 0s - loss: 0.3835 - accuracy: 0.9386
2100/4553 [============>.................] - ETA: 0s - loss: 0.3706 - accuracy: 0.9357
2700/4553 [================>.............] - ETA: 0s - loss: 0.3681 - accuracy: 0.9381
3300/4553 [====================>.........] - ETA: 0s - loss: 0.3604 - accuracy: 0.9400
3900/4553 [========================>.....] - ETA: 0s - loss: 0.3597 - accuracy: 0.9387
4500/4553 [============================>.] - ETA: 0s - loss: 0.3576 - accuracy: 0.9389
4553/4553 [==============================] - 0s 109us/sample - loss: 0.3576 - accuracy: 0.9385 - val_loss: 0.4233 - val_accuracy: 0.9093
Epoch 11/20
100/4553 [..............................] - ETA: 0s - loss: 0.2721 - accuracy: 0.9600
700/4553 [===>..........................] - ETA: 0s - loss: 0.3338 - accuracy: 0.9357
1300/4553 [=======>......................] - ETA: 0s - loss: 0.3213 - accuracy: 0.9469
1900/4553 [===========>..................] - ETA: 0s - loss: 0.3182 - accuracy: 0.9484
2500/4553 [===============>..............] - ETA: 0s - loss: 0.3190 - accuracy: 0.9476
3100/4553 [===================>..........] - ETA: 0s - loss: 0.3199 - accuracy: 0.9484
3700/4553 [=======================>......] - ETA: 0s - loss: 0.3256 - accuracy: 0.9457
4300/4553 [===========================>..] - ETA: 0s - loss: 0.3269 - accuracy: 0.9453
4553/4553 [==============================] - 1s 112us/sample - loss: 0.3286 - accuracy: 0.9447 - val_loss: 0.4020 - val_accuracy: 0.9098
Epoch 12/20
100/4553 [..............................] - ETA: 0s - loss: 0.3470 - accuracy: 0.9100
600/4553 [==>...........................] - ETA: 0s - loss: 0.2872 - accuracy: 0.9533
1200/4553 [======>.......................] - ETA: 0s - loss: 0.2959 - accuracy: 0.9542
1800/4553 [==========>...................] - ETA: 0s - loss: 0.3001 - accuracy: 0.9506
2400/4553 [==============>...............] - ETA: 0s - loss: 0.2974 - accuracy: 0.9525
3000/4553 [==================>...........] - ETA: 0s - loss: 0.3000 - accuracy: 0.9520
3600/4553 [======================>.......] - ETA: 0s - loss: 0.3008 - accuracy: 0.9506
4200/4553 [==========================>...] - ETA: 0s - loss: 0.3053 - accuracy: 0.9490
4553/4553 [==============================] - 1s 114us/sample - loss: 0.3043 - accuracy: 0.9490 - val_loss: 0.3828 - val_accuracy: 0.9134
Epoch 13/20
100/4553 [..............................] - ETA: 0s - loss: 0.3397 - accuracy: 0.9200
700/4553 [===>..........................] - ETA: 0s - loss: 0.2830 - accuracy: 0.9543
1300/4553 [=======>......................] - ETA: 0s - loss: 0.2987 - accuracy: 0.9477
1900/4553 [===========>..................] - ETA: 0s - loss: 0.2931 - accuracy: 0.9484
2500/4553 [===============>..............] - ETA: 0s - loss: 0.2893 - accuracy: 0.9492
3100/4553 [===================>..........] - ETA: 0s - loss: 0.2849 - accuracy: 0.9503
3700/4553 [=======================>......] - ETA: 0s - loss: 0.2855 - accuracy: 0.9522
4300/4553 [===========================>..] - ETA: 0s - loss: 0.2842 - accuracy: 0.9516
4553/4553 [==============================] - 1s 113us/sample - loss: 0.2829 - accuracy: 0.9521 - val_loss: 0.3674 - val_accuracy: 0.9134
Epoch 14/20
100/4553 [..............................] - ETA: 0s - loss: 0.2857 - accuracy: 0.9800
700/4553 [===>..........................] - ETA: 0s - loss: 0.2747 - accuracy: 0.9643
1200/4553 [======>.......................] - ETA: 0s - loss: 0.2735 - accuracy: 0.9583
1800/4553 [==========>...................] - ETA: 0s - loss: 0.2631 - accuracy: 0.9594
2400/4553 [==============>...............] - ETA: 0s - loss: 0.2693 - accuracy: 0.9550
3000/4553 [==================>...........] - ETA: 0s - loss: 0.2679 - accuracy: 0.9533
3600/4553 [======================>.......] - ETA: 0s - loss: 0.2690 - accuracy: 0.9533
4200/4553 [==========================>...] - ETA: 0s - loss: 0.2641 - accuracy: 0.9550
4553/4553 [==============================] - 1s 116us/sample - loss: 0.2644 - accuracy: 0.9548 - val_loss: 0.3543 - val_accuracy: 0.9144
Epoch 15/20
100/4553 [..............................] - ETA: 0s - loss: 0.2952 - accuracy: 0.9400
700/4553 [===>..........................] - ETA: 0s - loss: 0.2508 - accuracy: 0.9543
1300/4553 [=======>......................] - ETA: 0s - loss: 0.2381 - accuracy: 0.9623
1900/4553 [===========>..................] - ETA: 0s - loss: 0.2373 - accuracy: 0.9621
2500/4553 [===============>..............] - ETA: 0s - loss: 0.2493 - accuracy: 0.9548
3100/4553 [===================>..........] - ETA: 0s - loss: 0.2481 - accuracy: 0.9561
3700/4553 [=======================>......] - ETA: 0s - loss: 0.2456 - accuracy: 0.9573
4400/4553 [===========================>..] - ETA: 0s - loss: 0.2479 - accuracy: 0.9566
4553/4553 [==============================] - 1s 111us/sample - loss: 0.2479 - accuracy: 0.9567 - val_loss: 0.3431 - val_accuracy: 0.9160
Epoch 16/20
100/4553 [..............................] - ETA: 0s - loss: 0.2424 - accuracy: 0.9500
600/4553 [==>...........................] - ETA: 0s - loss: 0.2127 - accuracy: 0.9717
1200/4553 [======>.......................] - ETA: 0s - loss: 0.2201 - accuracy: 0.9642
1800/4553 [==========>...................] - ETA: 0s - loss: 0.2286 - accuracy: 0.9600
2400/4553 [==============>...............] - ETA: 0s - loss: 0.2280 - accuracy: 0.9629
3000/4553 [==================>...........] - ETA: 0s - loss: 0.2265 - accuracy: 0.9613
3600/4553 [======================>.......] - ETA: 0s - loss: 0.2274 - accuracy: 0.9625
4300/4553 [===========================>..] - ETA: 0s - loss: 0.2310 - accuracy: 0.9612
4553/4553 [==============================] - 1s 113us/sample - loss: 0.2333 - accuracy: 0.9594 - val_loss: 0.3327 - val_accuracy: 0.9165
Epoch 17/20
100/4553 [..............................] - ETA: 0s - loss: 0.2739 - accuracy: 0.9200
700/4553 [===>..........................] - ETA: 0s - loss: 0.2097 - accuracy: 0.9614
1300/4553 [=======>......................] - ETA: 0s - loss: 0.2279 - accuracy: 0.9531
1900/4553 [===========>..................] - ETA: 0s - loss: 0.2319 - accuracy: 0.9537
2500/4553 [===============>..............] - ETA: 0s - loss: 0.2240 - accuracy: 0.9592
3100/4553 [===================>..........] - ETA: 0s - loss: 0.2242 - accuracy: 0.9594
3700/4553 [=======================>......] - ETA: 0s - loss: 0.2202 - accuracy: 0.9616
4300/4553 [===========================>..] - ETA: 0s - loss: 0.2193 - accuracy: 0.9619
4553/4553 [==============================] - 1s 115us/sample - loss: 0.2201 - accuracy: 0.9616 - val_loss: 0.3242 - val_accuracy: 0.9175
Epoch 18/20
100/4553 [..............................] - ETA: 0s - loss: 0.2083 - accuracy: 0.9800
700/4553 [===>..........................] - ETA: 0s - loss: 0.2028 - accuracy: 0.9686
1300/4553 [=======>......................] - ETA: 0s - loss: 0.2059 - accuracy: 0.9646
1900/4553 [===========>..................] - ETA: 0s - loss: 0.2039 - accuracy: 0.9674
2500/4553 [===============>..............] - ETA: 0s - loss: 0.2027 - accuracy: 0.9672
3100/4553 [===================>..........] - ETA: 0s - loss: 0.2066 - accuracy: 0.9658
3700/4553 [=======================>......] - ETA: 0s - loss: 0.2077 - accuracy: 0.9646
4300/4553 [===========================>..] - ETA: 0s - loss: 0.2079 - accuracy: 0.9649
4553/4553 [==============================] - 1s 115us/sample - loss: 0.2083 - accuracy: 0.9644 - val_loss: 0.3156 - val_accuracy: 0.9185
Epoch 19/20
100/4553 [..............................] - ETA: 0s - loss: 0.1974 - accuracy: 0.9600
700/4553 [===>..........................] - ETA: 0s - loss: 0.2034 - accuracy: 0.9671
1300/4553 [=======>......................] - ETA: 0s - loss: 0.2060 - accuracy: 0.9654
1800/4553 [==========>...................] - ETA: 0s - loss: 0.2046 - accuracy: 0.9650
2400/4553 [==============>...............] - ETA: 0s - loss: 0.2018 - accuracy: 0.9663
3000/4553 [==================>...........] - ETA: 0s - loss: 0.2001 - accuracy: 0.9670
3500/4553 [======================>.......] - ETA: 0s - loss: 0.1977 - accuracy: 0.9683
4100/4553 [==========================>...] - ETA: 0s - loss: 0.1984 - accuracy: 0.9678
4553/4553 [==============================] - 1s 119us/sample - loss: 0.1974 - accuracy: 0.9686 - val_loss: 0.3089 - val_accuracy: 0.9237
Epoch 20/20
100/4553 [..............................] - ETA: 0s - loss: 0.1889 - accuracy: 0.9900
700/4553 [===>..........................] - ETA: 0s - loss: 0.1731 - accuracy: 0.9800
1300/4553 [=======>......................] - ETA: 0s - loss: 0.1841 - accuracy: 0.9754
1800/4553 [==========>...................] - ETA: 0s - loss: 0.1822 - accuracy: 0.9750
2300/4553 [==============>...............] - ETA: 0s - loss: 0.1818 - accuracy: 0.9739
2800/4553 [=================>............] - ETA: 0s - loss: 0.1851 - accuracy: 0.9714
3300/4553 [====================>.........] - ETA: 0s - loss: 0.1886 - accuracy: 0.9700
3800/4553 [========================>.....] - ETA: 0s - loss: 0.1874 - accuracy: 0.9697
4300/4553 [===========================>..] - ETA: 0s - loss: 0.1874 - accuracy: 0.9700
4553/4553 [==============================] - 1s 128us/sample - loss: 0.1877 - accuracy: 0.9703 - val_loss: 0.3027 - val_accuracy: 0.9237
loss accuracy val_loss val_accuracy
17 0.208269 0.964419 0.315636 0.918545
18 0.197445 0.968592 0.308906 0.923668
19 0.187745 0.970349 0.302672 0.923668
Process finished with exit code 0

Posted in  on 7/30/2020 by rteak |