今回は、キカガクで「テキスト分類(TensorFlow)」を学んだ。
Table of Contents [Disable]
学習内容
自然言語は今までのデータとは異なり、固定の長さのデータではなく、データごとに長さが異なるため、学習の際には固定の長さの数値に落とし込む必要がある。
文章を品詞ごとに分割する形態解析、単語を数値化する手法の一つである 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 を指定し、出現頻度が指定した値以下のものは取り扱わない設定を行う。
モデルの定義と学習
ニューラルネットワークを実装する。
モデルの定義・学習・評価を行い、文書分類がどの程度の精度で行うことができているのか次の手順で確認する。
- 学習用データセットとテスト用データセットに分割
- モデルの定義
- モデルの学習
- モデルの評価
ソースコード
# 形態素解析の実装 | |
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() | |
実行結果
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 |