チャットロボットチュートリアル pytorch 公式ドキュメント

チャットボットのチュートリアル

チャットボット チュートリアル — PyTorch チュートリアル 2.0.1+cu117 ドキュメント

著者: マシュー・インカビッチ

このチュートリアルでは、反復シーケンス間モデルの興味深い使用例を検討します。コーネル大学映画対話コーパスの映画スクリプトを使用して、単純なチャットボットをトレーニングします。

対話モデルは、人工知能研究において注目のトピックです。チャットボットは、カスタマー サービス アプリケーションやオンライン ヘルプ デスクなど、さまざまな環境で使用されています。これらのボットは通常、何らかの形式の質問に対して事前定義された応答を出力する検索ベースのモデルを利用しています。企業の IT ヘルプ デスクなど、非常に制約の多い分野では、これらのモデルで十分かもしれませんが、より一般的なユースケースでは、十分強力ではありません。複数の領域で人間と有意義な会話ができるように機械に教えることは、未解決の研究課題ではありません。最近、ディープラーニングのブームにより、Google のニューラル対話モデルなどの強力な生成モデルが誕生し、マルチドメインの生成対話モデルへの大きな一歩を踏み出しました。このチュートリアルでは、そのようなモデルを PyTorch に実装します。

ロボット

> hello?
Bot: hello .
> where am I?
Bot: you re in a hospital .
> who are you?
Bot: i m a lawyer .
> how are you doing?
Bot: i m fine .
> are you my friend?
Bot: no .
> you're under arrest
Bot: i m trying to help you !
> i'm just kidding
Bot: i m sorry .
> where are you from?
Bot: san francisco .
> it's time for me to leave
Bot: i know .
> goodbye
Bot: goodbye .

教程亮点

致谢

本教程借用了以下来源的代码:

  1. Yuan-Kuei Wu による pytorch-chatbot の実装:  GitHub - ywk991112/pytorch-chatbot: Pytorch seq2seq チャットボット

  2. Sean Robertson による実践的な pytorch seq2seq-translation の例:  https://github.com/spro/practical-pytorch/tree/master/seq2seq-translation

  3. FloydHub Cornell Movie Corpus 前処理コード:  GitHub - floydhub/textutil-preprocess-cornell-movie-corpus: textutil-preprocess-cornell-movie-corpus

準備

開始するには、 ここからデータ ZIP ファイルをダウンロードしてください

# and put in a ``data/`` directory under the current directory.
#
# After that, let’s import some necessities.
#

import torch
from torch.jit import script, trace
import torch.nn as nn
from torch import optim
import torch.nn.functional as F
import csv
import random
import re
import os
import unicodedata
import codecs
from io import open
import itertools
import  math 
import  json 


USE_CUDA  =  torch.cuda.is_available ()
 device  =  torch.device ( "cuda"  if  USE_CUDA  else  "cpu" )

データのロードと前処理

次のステップは、データ ファイルを再フォーマットし、使用できる構造にデータをロードすることです。

Cornell Movie Dialogue Corpus は 、映画の登場人物の会話の豊富なデータセットです。

  • 10,292 組の映画キャラクターの間で交わされる 220,579 の会話

  • 617 本の映画に登場する 9,035 人のキャラクター

  • 総発言数 304,713

データセットは大規模かつ多様であり、言語形式、時代、感情などに大きな違いがあります。この多様性により、モデルがさまざまな形式の入力やクエリに対して堅牢になることを願っています。

まず、データ ファイルのいくつかの行を調べて、元の形式を確認します。

コーパス名 =  "映画コーパス"
コーパス =  os パスjoin ( "data" ,  corpus_name ) 

def  printLines ( file ,  n = 10 ):
     open ( file , 'rb' )をdatafileとして使用します : lines = datafile readlines ()[: n ] : print ( line )   
          
       
        

printLines ( os . path . join ( corpus ,  "utterances.jsonl" ))
b'{"id": "L1045", "conversation_id": "L1044", "text": "彼らは違います!", "speaker": "u0", "meta": {"movie_id": "m0" , "parsed": [{"rt": 1, "toks": [{"tok": "彼ら", "tag": "PRP", "dep": "nsubj", "up": 1, " dn": []}、{"tok": "do"、"tag": "VBP"、"dep": "ROOT"、"dn": [0, 2, 3]}, {"tok": "not"、"tag": "RB"、"dep": "neg"、"up": 1、"dn": []}、{"tok": "!"、"tag": "." 、 "dep": "punct"、 "up": 1、 "dn": []}]}]}、"返信先": "L1044"、"タイムスタンプ": null、"ベクトル": []}\n' b'{"id": "L1044", "conversation_id": "L1044", "text": "彼らはこうする!", "speaker": "u2", "meta": {"movie_id": "m0" , "parsed": [{"rt": 1, "toks": [{"tok": "彼ら", "tag": "PRP", "dep": "nsubj", "up": 1, " dn": []}、{"tok": "do"、"tag": "VBP"、"dep": "ROOT"、"dn": [0, 2, 3]}, {"tok": "to"、"tag": "TO"、"dep": "dobj"、"up": 1、"dn": []}、{"tok": "!"、"tag": "." 、 "dep": "punct"、 "up": 1、 "dn": []}]}]}、"返信先": null、"タイムスタンプ": null、"ベクトル": []}\n' b'{"id": "L985", "conversation_id": "L984", "text": "そう願っています。", "speaker": "u0", "meta": {"movie_id": "m0" , "parsed": [{"rt": 1, "toks": [{"tok": "I", "tag": "PRP", "dep": "nsubj", "up": 1, " dn": []}、{"tok": "hope"、"tag": "VBP"、"dep": "ROOT"、"dn": [0, 2, 3]}, {"tok": "so"、"tag": "RB"、"dep": "advmod"、"up": 1、"dn": []}、{"tok": "."、"tag": "." 、 "dep": "punct"、 "up": 1、 "dn": []}]}]}、"返信先": "L984"、"タイムスタンプ": null、"ベクトル": []}\n'
b'{"id": "L984", "conversation_id": "L984", "text": "She okay?", "speaker": "u2", "meta": {"movie_id": "m0", "parsed": [{"rt": 1, "toks": [{"tok": "She", "tag": "PRP", "dep": "nsubj", "up": 1, "dn": []}, {"tok": "okay", "tag": "RB", "dep": "ROOT", "dn": [0, 2]}, {"tok": "?", "tag": ".", "dep": "punct", "up": 1, "dn": []}]}]}, "reply-to": null, "timestamp": null, "vectors": []}\n'
b'{"id": "L925", "conversation_id": "L924", "text": "Let\'s go.", "speaker": "u0", "meta": {"movie_id": "m0", "parsed": [{"rt": 0, "toks": [{"tok": "Let", "tag": "VB", "dep": "ROOT", "dn": [2, 3]}, {"tok": "\'s", "tag": "PRP", "dep": "nsubj", "up": 2, "dn": []}, {"tok": "go", "tag": "VB", "dep": "ccomp", "up": 0, "dn": [1]}, {"tok": ".", "tag": ".", "dep": "punct", "up": 0, "dn": []}]}]}, "reply-to": "L924", "timestamp": null, "vectors": []}\n' b'{"id": "L924", "conversation_id": "L924", "text": "Wow", "speaker": "u2", "meta": {"movie_id": "m0", "parsed ": [{"rt": 0, "toks": [{"tok": "すごい", "tag": "UH", "dep": "ROOT", "dn": []}]}] }、「返信先」: null、「タイムスタンプ」: null、「ベクトル」: []}\n'
b'{"id": "L872", "conversation_id": "L870", "text": "Okay -- you\'re gonna need to learn how to lie.", "speaker": "u0", "meta": {"movie_id": "m0", "parsed": [{"rt": 4, "toks": [{"tok": "Okay", "tag": "UH", "dep": "intj", "up": 4, "dn": []}, {"tok": "--", "tag": ":", "dep": "punct", "up": 4, "dn": []}, {"tok": "you", "tag": "PRP", "dep": "nsubj", "up": 4, "dn": []}, {"tok": "\'re", "tag": "VBP", "dep": "aux", "up": 4, "dn": []}, {"tok": "gon", "tag": "VBG", "dep": "ROOT", "dn": [0, 1, 2, 3, 6, 12]}, {"tok": "na", "tag": "TO", "dep": "aux", "up": 6, "dn": []}, {"tok": "need", "tag": "VB", "dep": "xcomp", "up": 4, "dn": [5, 8]}, {"tok": "to", "tag": "TO", "dep": "aux", "up": 8, "dn": []}, {"tok": "learn", "tag": "VB", "dep": "xcomp", "up": 6, "dn": [7, 11]}, {"tok": "how", "tag": "WRB", "dep": "advmod", "up": 11, "dn": []}, {"tok": "to", "tag": "TO", "dep": "aux", "up": 11, "dn": []}, {"tok": "lie", "tag": "VB", "dep": "xcomp", "up": 8, "dn": [9, 10]}, {"tok": ".", "tag": ".", "dep": "punct", "up": 4, "dn": []}]}]}, "reply-to": "L871", "timestamp": null, "vectors": []}\n' b'{"id": "L871"、"conversation_id": "L870"、"text": "No"、"speaker": "u2"、"meta": {"movie_id": "m0"、"parsed" ": [{"rt": 0、"toks": [{"tok": "いいえ"、"tag": "UH"、"dep": "ROOT"、"dn": []}]}] }, "返信先": "L870"、"タイムスタンプ": null、"ベクトル": []}\n' b'{"id": "L870", "conversation_id": "L870", "text": "冗談だよ。時々自分がこの「ペルソナ」になることがあるのは知ってる?終了方法がわかりません?", "speaker": "u0", "meta": {"movie_id": "m0", "parsed": [{"rt": 2, "toks": [{"tok ": "I"、"tag": "PRP"、"dep": "nsubj"、"up": 2、"dn": []}、{"tok": "\'m"、"tag" : "VBP"、"dep": "aux"、"up": 2、"dn": []}、{"tok": "冗談"、"tag": "VBG"、"dep": "ROOT ", "dn": [0, 1, 3]}, {"tok": ".","tag": "."、"dep": "punct"、"up": 2、"dn": [4]}、{"tok": " "、"tag": "_SP"、"dep" : ""、"up": 3、"dn": []}]}、{"rt": 1、"toks": [{"tok": "あなた"、"tag": "PRP"、" dep": "nsubj"、"up": 1、"dn": []}、{"tok": "know"、"tag": "VBP"、"dep": "ROOT"、"dn": [0, 6, 11]}, {"tok": "方法", "tag": "WRB", "dep": "advmod", "up": 3, "dn": []}, {" tok": "時々"、"tag": "RB"、"dep": "advmod"、"up": 6、"dn":[2]}, {"tok": "あなた", "tag": "PRP", "dep": "nsubj", "up": 6, "dn": []}, {"tok": " just"、"tag": "RB"、"dep": "advmod"、"up": 6、"dn": []}、{"tok": "become"、"tag": "VBP"、 "dep": "ccomp", "up": 1, "dn": [3, 4, 5, 9]}, {"tok": "this", "tag": "DT", "dep": "det"、"up": 9、"dn": []}、{"tok": "\\""、"tag": "``"、"dep": "punct"、"up": 9、"dn": []}、{"tok": "ペルソナ"、"タグ": "NN"、"dep": "属性"、"up": 6, "dn": [7, 8, 10]}, {"tok": "\\""、"tag": "\'\'"、"dep": "punct"、" up": 9、"dn": []}、{"tok": "?"、"tag": "."、"dep": "punct"、"up": 1、"dn": [12 ]}, {"tok": " "、"tag": "_SP"、"dep": ""、"up": 11、"dn": []}]}、{"rt": 4、" toks": [{"tok": "そして", "tag": "CC", "dep": "cc", "up": 4, "dn": []}, {"tok": "あなた", "tag": "PRP"、"dep": "nsubj"、"up": 4、"dn": []}、{"tok": "do"、"tag": "VBP"、"dep": "aux"、"up": 4、"dn": []}、{"tok": "n\'t"、"tag": "RB"、 "dep": "neg"、"up": 4、"dn": []}、{"tok": "know"、"tag": "VB"、"dep": "ROOT"、"dn" : [0, 1, 2, 3, 7, 8]}, {"tok": "how"、"tag": "WRB"、"dep": "advmod"、"up": 7、"dn" : []}、{"tok": "to"、"tag": "TO"、"dep": "aux"、"up": 7、"dn": []}、{"tok": " quit", "tag": "VB", "dep": "xcomp", "up": 4, "dn": [5, 6]}, {"tok":"?"、"tag": "."、"dep": "punct"、"up": 4、"dn": []}]}]}、"reply-to": null、"timestamp": null、「ベクトル」: []}\n' b'{"id": "L869", "conversation_id": "L866", "text": "パステルを着るのが怖いですか?", "speaker": "u0", "meta": {"movie_id": "m0", "parsed": [{"rt": 0, "toks": [{"tok": "いいね", "tag": "IN", "dep": "ROOT", "dn": [2, 6]}, {"tok": "my", "tag": "PRP$", "dep": "poss", "up": 2, "dn": []}, {"tok ": "恐怖", "tag": "NN", "dep": "pobj", "up": 0, "dn": [1, 3]}, {"tok": "of", "tag ": "IN"、"dep": "準備"、"アップ": 2、"dn": [4]}, {"tok": "着用", "tag": "VBG", "dep": "pcomp", "up": 3, "dn": [5]}, { "tok": "パステル"、"tag": "NNS"、"dep": "dobj"、"up": 4、"dn": []}、{"tok": "?"、"tag" : "."、"dep": "punct"、"up": 0、"dn": []}]}]}、"reply-to": "L868"、"timestamp": null、"vectors" : []}\n'"dn": []}、{"tok": "?"、"tag": "."、"dep": "punct"、"up": 0、"dn": []}]}]} 、「返信先」: 「L868」、「タイムスタンプ」: null、「ベクター」: []}\n'"dn": []}、{"tok": "?"、"tag": "."、"dep": "punct"、"up": 0、"dn": []}]}]} 、「返信先」: 「L868」、「タイムスタンプ」: null、「ベクター」: []}\n'

创建格式化数据文件

为了方便起见,我们将创建一个格式良好的数据文件,其中每行包含一个制表符分隔的查询句子和一个响应句子对。

以下函数有助于解析原始 utterances.jsonl数据文件。

  • loadLinesAndConversationslineID将文件的每一行拆分为包含字段: 、和 text的行字典characterID,然后将它们分组到包含字段:conversationIDmovieID和 rows 的对话中。

  • extractSentencePairs从对话中提取句子对

# Splits each line of the file to create lines and conversations
def loadLinesAndConversations(fileName):
    lines = {}
    conversations = {}
    with open(fileName, 'r', encoding='iso-8859-1') as f:
        for line in f:
            lineJson = json.loads(line)
            # Extract fields for line object
            lineObj = {}
            lineObj["lineID"] = lineJson["id"]
            lineObj["characterID"] = lineJson["speaker"]
            lineObj["text"] = lineJson["text"]
            lines[lineObj['lineID']] = lineObj

            # Extract fields for conversation object
            if lineJson["conversation_id"] not in conversations:
                convObj = {}
                convObj["conversationID" ]  =  lineJson [ "conversation_id" ] 
                convObj [ "movieID" ]  =  lineJson [ "meta" ][ "movie_id" ] 
                convObj [ "lines" ]  =  [ lineObj ] 
            else : 
                convObj  = 会話[ lineJson [ "conversation_id" ]] 
                convObj [ "行" ] 挿入( 0 , 
            convObj["conversationID"]] = convObj

    return lines, conversations


# Extracts pairs of sentences from conversations
def extractSentencePairs(conversations):
    qa_pairs = []
    for conversation in conversations.values():
        # Iterate over all the lines of the conversation
        for i in range(len(conversation["lines"]) - 1):  # We ignore the last line (no answer for it)
            inputLine = conversation["lines"][i]["text"].strip()
            targetLine = conversation["lines"][i+1]["text"].strip()
            # Filter wrong samples (if one of the lists is empty)
            if inputLine and targetLine:
                qa_pairs.append([inputLine, targetLine])
    return qa_pairs

现在我们将调用这些函数并创建文件。我们就这样称呼它 formatted_movie_lines.txt

# 新しいファイルへのパスを定義します
datafile  =  os パスjoin ( corpus ,  "formatted_movie_lines.txt" ) 

delimiter  =  ' \t ' 
# 区切り文字のエスケープを解除する
delimiter  =  str ( codecs . decode ( delimiter ,  "unicode_escape" )) 

# 行を初期化する dict と会話 dict 
Lines  =  {} 
messages  =  {} 
# 行と会話をロード
print ( " \nProcessing corpus into lines and conversations...")
lines, conversations = loadLinesAndConversations(os.path.join(corpus, "utterances.jsonl"))

# Write new csv file
print("\nWriting newly formatted file...")
with open(datafile, 'w', encoding='utf-8') as outputfile:
    writer = csv.writer(outputfile, delimiter=delimiter, lineterminator='\n')
    for pair in extractSentencePairs(conversations):
        writer.writerow(pair)

# Print a sample of lines
print("\nSample lines from file:")
printLines(datafile)
 「\tパステルを着るのが怖いのと同じですか?\n' b'こんなくだらない話を聞きますか?\t​​何のくだらないですか?\n'  b「何のくだらないですか?\t​​私。この終わりのない...金髪のおしゃべり。私は自分自身が退屈しているような気がします。\n"


データのロードとトリミング

次のタスクは、語彙を作成し、クエリと応答の文のペアをメモリにロードすることです。

ここで扱っているのは単語のシーケンスであり、離散数空間への暗黙的なマッピングを持たないことに注意してください。したがって、データセット内で見つかった各一意の単語をインデックス値にマッピングしてインデックス値を作成する必要があります。

これを行うには、Voc単語からインデックスへのマッピング、インデックスから単語への逆マッピング、各単語の数、および単語の合計数を保持するクラスを定義します。このクラスは、 語彙に単語を追加する ( addWord)、文内のすべての単語を追加する (  addSentence)、一般的でない単語をトリミングする (  )trimためのメソッドを提供します。剪定については後ほど詳しく説明します。

# デフォルトの単語トークン
PAD_token  =  0   # 短い文のパディングに使用
SOS_token  =  1   # 文の始まりのトークン
EOS_token  =  2   # 文の終わりのトークン

class  Voc : 
    def  __init__ ( self ,  name ):
         self name  = 名前
        自分. トリミング = 偽りの
        自分word2index  =  {}
         self word2count  =  {}
        自分自身インデックス2ワード =  { 
            PAD_token :  "PAD"  SOS_token :  "SOS"  EOS_token :  "EOS" }
         self num_words  =  3   # SOS、EOS、PAD をカウントします。

    def addSentence  ( self , text  ) :
        文内 単語分割( ' ): self addWord ( word ) def addWord ( self , word ): if  
            

      
          自分ない 言葉word2index : self word2index [単語] = self num_words 個の自分自身word2count [単語] = 1自身インデックス2ワード[自分. num_words ] =単語自身num_words += 1 else : self word2count [単語] += 1 
              
              
              
              
        
              

    # 特定のカウントしきい値を下回る単語を削除します
    def  Trim ( self ,  min_count ): 
        if  self トリミング
            自己を返します
        trimed = True keep_words = [] for k , v in self word2count items (): v >= min_countの場合: keep_words append ( k ) print ( 'keep_words {} /  

          

            
               
                

        {} = {:.4f} ' . format (
             len ( keep_words ),  len ( self . word2index ),  len ( keep_words )  /  len ( self . word2index ) 
        )) 

        # 辞書
        selfを再初期化しますword2index  =  {}
         self word2count  =  {}
        自分自身Index2word  =  { 
            PAD_token :  "PAD" , SOS_token :  "SOS" ,  EOS_token :  "EOS" }
         self num_words  =  3 #  keep_words : self内の単語デフォルトのトークンをカウントします

        addWord (ワード)   
            

これで、語彙とクエリ/応答文のペアを組み立てることができます。このデータを使用する準備が整う前に、いくつかの前処理を実行する必要があります。

まず、. を使用して Unicode 文字列を ASCII に変換する必要があります unicodeToAscii次に、すべての文字を小文字に変換し、基本的な句読点 ( ) を除くすべての非アルファベット文字をトリミングする必要がありますnormalizeStringMAX_LENGTH 最後に、トレーニングを収束させるために、しきい値 ( ) を超える長さのfilterPairs文をフィルターで除外します。

MAX_LENGTH = 10  # Maximum sentence length to consider

# Turn a Unicode string to plain ASCII, thanks to
# https://stackoverflow.com/a/518232/2809427
def unicodeToAscii(s):
    return ''.join(
        c for c in unicodedata.normalize('NFD', s)
        if unicodedata.category(c) != 'Mn'
    )

# Lowercase, trim, and remove non-letter characters
def normalizeString( s ): 
    s  =  unicodeToAscii ( s . lower ( ) .strip ()) s = re . sub ( r "([.!?])" , r " \1" , s ) s = re sub ( r "[^a-zA-Z.!?]+" , r " " , s ) s = re sub ( r "\s+" , r " " , s )
        
        
        .strip()
    return s

# Read query/response pairs and return a voc object
def readVocs(datafile, corpus_name):
    print("Reading lines...")
    # Read the file and split into lines
    lines = open(datafile, encoding='utf-8').\
        read().strip().split('\n')
    # Split every line into pairs and normalize
    pairs =  [[ lsに対してnormalizeString ( s )  split ( ' \t ' )] for l in Lines ] voc = Voc ( corpus_name ) return voc , pairs # ペア 'p' の両方の文が MAX_LENGTH しきい値未満の場合に True を返すdef filterPair ( p ): # 入力シーケンスには次の必要がありますEOS トークンの最後のワードを保持するには、 len ( p [ 0 ]を返します)       
      
      


 
    
     .split(' ')) < MAX_LENGTH and len(p[1].split(' ')) < MAX_LENGTH

# Filter pairs using the ``filterPair`` condition
def filterPairs(pairs):
    return [pair for pair in pairs if filterPair(pair)]

# Using the functions defined above, return a populated voc object and pairs list
def loadPrepareData(corpus, corpus_name, datafile, save_dir):
    print("Start preparing training data ...")
    voc, pairs = readVocs(datafile, corpus_name)
    print("Read {!s} sentence pairs".format(len(pairs)))
    pairs = filterPairs(pairs)
    print("Trimmed to {!s} sentence pairs".format(len(pairs)))
    print("Counting words...")
    for pair in pairs:
        voc.addSentence(pair[0])
        voc.addSentence(pair[1])
    print("Counted words:", voc.num_words)
    return voc, pairs


# Load/Assemble voc and pairs
save_dir = os.path.join("data" ,  "save" ) 
voc ,  pairs  =  loadPrepareData ( corpus ,  corpus_name ,  datafile ,  save_dir ) 
# 検証するためにいくつかのペアを出力します
print ( " \ npairs :" )
ペアペア[: 10 ]: print ( pare )   
    
Start preparing training data ...
Reading lines...
Read 221282 sentence pairs
Trimmed to 64313 sentence pairs
Counting words...
Counted words: 18082

pairs:
['they do to !', 'they do not !']
['she okay ?', 'i hope so .']
['wow', 'let s go .']
['what good stuff ?', 'the real you .']
['the real you .', 'like my fear of wearing pastels ?']
['do you listen to this crap ?', 'what crap ?']
['well no . . .', 'then that s all you had to say .']
['then that s all you had to say .', 'but']
['but', 'you always been this selfish ?']
['have fun tonight ?', 'tons']

トレーニング中の収束を早めるもう 1 つの戦略は、まれに使用される単語を語彙から削除することです。特徴空間を縮小すると、モデルが近似するために学習する必要がある関数の困難も緩和されます。これは 2 段階のプロセスで行います。

  1. MIN_COUNTこの関数を使用して、しきい値以下で使用される単語を削除しますvoc.trim 。

  2. 刈り取られた単語を含むペアをフィルターで除外します。

MIN_COUNT  =  3     # トリミングの最小単語数しきい値

def  trimRareWords ( voc ,  pairs ,  MIN_COUNT ): # voc 
    vocから MIN_COUNT で使用されている単語をトリミングします
    trim ( MIN_COUNT ) # トリムされた単語を含むペアをフィルターで除外しますkeep_pairs = []ペア内のペアの場合: input_sentence =ペア[ 0 ]出力_センテンス=ペア[ 1 ] keep_input = True
    
      
       
          
          
          
        keep_output  =  True 
        # 
        input_sentence内の単語の入力文をチェックします 分割( ' ' ):単語がvocない場合word2index : keep_input = False Break # Output_sentence内の単語の出力文をチェックします分割( ' ' ):単語がvocない場合word2index : keep_output = Falseブレーク  
                
                  
                
        
           
                
                  
                

        
        # keep_inputkeep_output : keep_pairsの場合 、入力文または出力文にトリミングされた単語が含まれないペアのみを保持しますappend (ペア) print (合計の{}ペアから{}{:.4f}までトリミングされました」 . format ( len (ペア), len ( keep_pairs ), len ( keep_pairs ) / len ( pairs ))) return keep_pairs # VOCとペアをトリミングする  
            

        
     



ペア =  trimRareWords ( voc , ペア,  MIN_COUNT )
keep_words 7833 / 18079 = 0.4333  64313 ペアから 53131 にトリミング、合計の 0.8261

モデルのデータを準備する

データを準備して語彙オブジェクトと文のペアの適切なリストにまとめるのに多大な労力を費やしましたが、モデルは最終的に入力として数値トーチ テンソルを期待します。モデルの処理データを準備する 1 つの方法は、seq2seq 変換チュートリアルにありますこのチュートリアルでは、バッチ サイズ 1 を使用しています。これは、文のペア内の単語を語彙内の対応するインデックスに変換し、モデルにフィードするだけであることを意味します。

ただし、トレーニングの高速化に興味がある場合、または GPU 並列化を利用したい場合は、ミニバッチでトレーニングする必要があります。

ミニバッチを使用するということは、バッチ間の文の長さの変化に注意する必要があることも意味します。同じバッチ内で異なるサイズの文に対応するために、形状 (max_length、batch_size) のバッチ入力テンソル を作成します。ここで、 max_length より短い文にはEOS_tokenの後にゼロが埋め込まれます。

単純に単語をインデックス ( indexesFromSentence) とゼロパッドに変換し、英語の文章をテンソルに変換すると、テンソルは形状(batch_size、max_length)を持ち、最初の次元にインデックスを付けると完全なシーケンスが返されます。ただし、バッチ内のすべてのシーケンスにわたって、時間の経過とともにバッチにインデックスを付けることができる必要があります。したがって、最初の次元のインデックスがバッチ内のすべての文のタイム ステップを返すように、入力バッチ形状を(max_length,batch_size)に転置します。この転置は関数内で暗黙的に処理しますzeroPadding

批次

このinputVar関数は、文をテンソルに変換するプロセスを処理し、最終的に正しい形状のゼロ埋め込みテンソルを作成します。また、lengthsバッチ内の各シーケンスのテンソルも返し、後でデコーダーに渡されます。

このoutputVar関数は と同様の関数を実行しますが、テンソルをinputVar返す代わりに、バイナリ マスク テンソルとターゲット文の最大長を返します。lengthsバイナリ マスク テンソルは出力ターゲット テンソルと同じ形状ですが、PAD_token として各要素は 0で、他のすべての要素は 1 です。

batch2TrainData多数のペアを使用し、上記の関数を使用して入力テンソルとターゲット テンソルを返すだけです。

defindexesFromSentence  ( voc , sentence ) : return [ voc . word2index [ word ]文中単語_ Split ( ' ' )] + [ EOS_token ] def zeroPadding ( l , fillvalue = PAD_token ): return list ( itertools . zip_longest ( * l , fillvalue = fillvalue 
           


  
      )) 

def  binaryMatrix ( l ,  value = PAD_token ): 
    m  =  [ ] 
    for  i ,  seq  in  enumerate ( l ): 
        m seqトークン([])を追加します: if token == PAD_token : m [ i ] 追加( 0 ) else : m [ i _ _ 追加( 1
           
               
                
            
                ) 
    return  m 

# パディングされた入力シーケンス テンソルと長さを返します
def  inputVar ( l ,  voc ): 
    indexes_batch  =  [ indexesFromSentence ( voc ,  speech )  for  speech  in  l ]
     length  =  torch.tensor ([ len ( indexes )  for  Indexes  in  Indexes_batch ]) 
    PadList  =  zeroPadding ( indexes_batch ) 
    PadVar  = トーチLongTensor ( PadList ) 
    return  PadVar ,  length 

# パディングされたターゲット シーケンス テンソル、パディング マスク、ターゲットの最大長を返します
def  OutputVar ( l ,  voc ): 
    indexes_batch  =  [ indexesFromSentence ( voc ,  speech )  for  text  in  l ] 
    max_target_len  =  max ([ len ( indexes ) (  indexes_batch内のインデックスの場合 ) ]) PadList  
     = zeroPadding(indexes_batch)
    mask = binaryMatrix(padList)
    mask = torch.BoolTensor(mask)
    padVar = torch.LongTensor(padList)
    return padVar, mask, max_target_len

# Returns all items for a given batch of pairs
def batch2TrainData(voc, pair_batch):
    pair_batch.sort(key=lambda x: len(x[0].split(" ")), reverse=True)
    input_batch, output_batch = [], []
    for pair in pair_batch:
        input_batch.append(pair[0])
        output_batch.append(pair[1])
    inp, lengths = inputVar(input_batch,  voc ) 
    Output ,  Mask ,  max_target_len  =  OutputVar ( output_batch ,  voc ) 
    return  inp ,  length ,  Output ,  Mask ,  max_target_len 


#検証の
small_batch_size  =  5
バッチ =  batch2TrainData ( voc ,  [ random .choice ( pairs ) for _in range (小規模バッチサイズ    )])
 input_variable   length   target_variable   mask  max_target_len  = バッチ

print ( "input_variable:" ,  input_variable )
 print ( "lengths:" ,  length )
 print ( "target_variable:" ,  target_variable )
 print ( "mask:" ,  Mask )
 print ( "max_target_len:" ,  max_target_len )
input_variable: tensor([[  86,   24,  140,  829,   62],
        [   6,  355, 1362,  206,  566],
        [  36,  735,   14,   72, 1919],
        [  17,  140,  140, 2160,   85],
        [  62,   28,  158,   14,   14],
        [1012,  461,  140,    2,    2],
        [3223,   10,   14,    0,    0],
        [1012,    2,    2,    0,    0],
        [   6,    0,    0,    0,    0],
        [   2,    0,    0,    0,    0]])
lengths: tensor([10,  8,  8,  6,  6])
target_variable: tensor([[  18,   11,  101,   93,  277],
        [ 483,  113,   19,  311,   72],
        [   5,  241,   10,   72,   10],
        [  22,  706,    2,   19,    2],
        [2010,   14,    0,   24,    0],
        [1556,    2,    0,  136,    0], [ 14, 0, 0, 5, 0]、 [ 2, 0, 0, 48, 0]、 [ 0, 0, 0, 14, 0]、 [ 0, 0, 0, 2, 0]]) マスク: tensor([[ True、True、True、True、True]、 [ True、True、True、True、True]、 [ True、True、True、True、True]、 [ True、True、True、True、True ]、 [真、真、偽、真、偽]、 [真、真、偽、真、偽]、 [真、偽、偽、真、偽]、 [真、偽、偽、真、偽]、
        [False, False, False,  True, False],
        [False, False, False,  True, False]]) 最大ターゲット長: 10

モデルを定義する

シーケンス間モデル

私たちのチャットボットの頭脳はシーケンスツーシーケンス (seq2seq) モデルです。seq2seq モデルの目的は、固定サイズのモデルを使用して、可変長シーケンスを入力として受け取り、出力として可変長シーケンスを返すことです。

苏茨克韦尔等人。发现通过一起使用两个独立的循环神经网络,我们可以完成这项任务。一个 RNN 充当编码器,将可变长度输入序列编码为固定长度上下文向量。理论上,这个上下文向量(RNN 的最终隐藏层)将包含有关输入到机器人的查询句子的语义信息。第二个 RNN 是解码器,它接受输入单词和上下文向量,并返回序列中下一个单词的猜测以及在下一次迭代中使用的隐藏状态。

模型

图片来源: Joseph Eddy – Data science team leader and mentor, machine learning specialist

编码器

编码器 RNN 一次迭代一个标记(例如单词)的输入句子,在每个时间步输出一个“输出”向量和一个“隐藏状态”向量。然后隐藏状态向量被传递到下一个时间步,同时记录输出向量。编码器将其在序列中每个点看到的上下文转换为高维空间中的一组点,解码器将使用这些点为给定任务生成有意义的输出。

我们编码器的核心是由Cho 等人发明的多层门控循环单元。2014 年。我们将使用 GRU 的双向变体,这意味着本质上有两个独立的 RNN:一个以正常顺序输入输入序列,另一个以相反顺序输入输入序列。每个网络的输出在每个时间步上求和。使用双向 GRU 将为我们带来编码过去和未来上下文的优势。

双向 RNN:

rnn_bidir

图片来源:https ://colah.github.io/posts/2015-09-NN-Types-FP/

请注意,embedding层用于在任意大小的特征空间中对我们的单词索引进行编码。对于我们的模型,该层会将每个单词映射到大小为hidden_ ​​size的特征空间。经过训练后,这些值应该对相似含义单词之间的语义相似性进行编码。

nn.utils.rnn.pack_padded_sequence最后,如果将一批填充序列传递给 RNN 模块,我们必须分别使用和 来打包和解包 RNN 传递周围的填充 nn.utils.rnn.pad_packed_sequence

计算图:

  1. 将单词索引转换为嵌入。

  2. 为 RNN 模块打包一批填充序列。

  3. 通过 GRU 前向传递。

  4. 拆开填充物包装。

  5. 对双向 GRU 输出求和。

  6. 返回输出和最终隐藏状态。

输入:

  • input_seq:批量输入句子;形状= (最大长度,批量大小)

  • input_lengths:batch中每个句子对应的句子长度列表;形状= (批量大小)

  • hidden:隐藏状态;形状= (n_layers x num_directions,batch_size,hidden_​​size)

输出:

  • outputs:GRU最后一个隐藏层的输出特征(双向输出的总和);形状= (最大长度,批量大小,隐藏大小)

  • hidden:从 GRU 更新隐藏状态;形状= (n_layers x num_directions,batch_size,hidden_​​size)

class  EncoderRNN ( nn.Module ): 
    def  __init__ ( self  hidden_​​size   embedding  n_layers = 1  dropout = 0 ):
         super ( EncoderRNN ,  self ) __init__ ()
         self n_layers  =  n_layers
        自身hidden_​​size  =  hidden_​​size
        自身埋め込む = 埋め込む

        # GRU を初期化します。# input_size パラメータと hidden_​​size パラメータは両方とも 'hidden_​​size' に設定されます。これは、
        入力サイズが特徴数 == hidden_​​size
         selfで埋め込まれた単語であるためですgru  =  nn.GRU ( hidden_​​size ,  hidden_​​size ,  n_layers , 
                          dropout = ( n_layers == 1の場合は0 、 そうでない場合はドロップアウト)、双方向= True ) def forward ( self , input_seq , input_lengths , hidden = None      

        ): 
        # 単語インデックスを埋め込みに変換する
        generated  =  self embedding ( input_seq ) 
        # RNN モジュール用にパディングされたシーケンスのバッチをパックする
        packed  =  nn.utils.rnn.pack_padded_sequence ( embedded ,  input_lengths ) # GRU
        出力を介したフォワード パス
        hidden = self gru ( packed , hidden ) # パディング出力をアンパックする_ = nn.utils.rnn.pad_packed_sequence ( outputs )    
        
           
        # 双方向 GRU 出力の合計
        Outputs  =  Outputs [:,  :,  : self . hidden_​​size ]  + 出力[:,  :  , self . hidden_​​size :] 
        # 出力を返し、最終的な隠し状態
        返します 。出力、 hidden 

デコーダ

デコーダ RNN は、トークンごとに応答文を生成します。エンコーダーのコンテキスト ベクトルと内部の隠れ状態を使用して、シーケンス内の次の単語を生成します。文の終わりを表すEOS_tokenを出力するまで単語の生成を続けます 。バニラ seq2seq デコーダによくある問題は、入力シーケンス全体の意味をエンコードするためにコンテキスト ベクトルのみに依存すると、情報が失われる可能性が高いことです。これは、長い入力シーケンスを扱う場合に特に当てはまり、デコーダの機能が大幅に制限されます。

この問題に対処するために、Bahdanau et al.  「アテンション メカニズム」が作成され、デコーダが各ステップで固定コンテキスト全体を使用するのではなく、入力シーケンスの特定の部分に焦点を当てることができます。

高レベルでは、デコーダの現在の隠れ状態とエンコーダの出力を使用してアテンションが計算されます。出力アテンションウェイトは入力シーケンスと同じ形状をしているため、エンコーダ出力と乗算することができ、その結果、エンコーダ出力のどの部分に注目すべきかを示す重み付き合計が得られます。ショーン・ロバートソンの統計はこれをよく表しています:

属性2

リャンら。「世界的な注目」を集めることで、Bahdanau らの基本的な研究を改良しました。主な違いは、現在のタイム ステップでのエンコーダの隠れ状態のみを考慮する Bahdanau らの「ローカル アテンション」とは対照的に、「グローバル アテンション」ではエンコーダのすべての隠れ状態を考慮することです。もう 1 つの違いは、「グローバル アテンション」の場合、現在のタイム ステップでのデコーダの隠れ状態のみを使用してアテンションの重みまたはエネルギーを計算することです。Bahdanau らのアテンション計算では、前のタイム ステップでのデコーダの状態についての知識が必要です。さらに、Luong et al. エンコーダ出力とデコーダ出力の間のアテンション エネルギーを計算するために、「スコア関数」と呼ばれるさまざまなメソッドが提供されています。

分数

ここで、H t = 現在のターゲットデコーダの状態、H ˉs =すべてのエンコーダの状態。

全体として、グローバル アテンション メカニズムは次の図に要約できます。nn.Module「アテンション層」をという名前の単一モジュールとして実装することに注意してくださいAttn。このモジュールの出力は、形状(batch_size, 1, max_length)のソフトマックス正規化重みテンソルです。

全局属性

# Luong attention layer
class Attn(nn.Module):
    def __init__(self, method, hidden_size):
        super(Attn, self).__init__()
        self.method = method
        if self.method not in ['dot', 'general', 'concat']:
            raise ValueError(self.method, というのは適切な注意方法ではありません。
        自分自身hidden_​​size  =  selfの場合はhidden_​​size 
        メソッド== '一般' : self attn = nn.Linear ( self . hidden_​​size , hidden_​​size ) elif self . メソッド== 'concat' : self attn = nn.Linear ( self . hidden_​​size * 2 , hidden_​​size ) self   
               
           
                 
            v  =  nn.Parameter ( torch . FloatTensor ( hidden_​​size )) 

    def  dot_score ( self ,  hidden ,  encoder_output ): 
        return  torch.sum ( hidden  *  encoder_output ,  dim = 2 ) 

    def  general_score ( self ,  hidden ,  encoder_output ):
        エネルギー =  self attn ( encoder_output ) 
        return torch.sum ( hidden  *  Energy ,  dim = 2 ) 

    def  concat_score ( self ,  hidden ,  encoder_output ):
        エネルギー =  self attn ( torch.cat ( ( hidden .expand ( encoder_output . size ( 0 ), - 1 , - 1 ), encoder_output ), 2 )) . タン()リターン    
         torch.sum ( self . v  *  Energy ,  dim = 2 ) 

    def  forward ( self ,  hidden ,  encoder_outputs ):
         # selfの場合、指定されたメソッドに基づいて注意の重み (エネルギー) を計算します
        メソッド== '一般' : attn_energies = self general_score ( hidden encoder_outputs ) elif self メソッド== '連結' :   
               
           
            attn_energies = self.concat_score(hidden, encoder_outputs)
        elif self.method == 'dot':
            attn_energies = self.dot_score(hidden, encoder_outputs)

        # Transpose max_length and batch_size dimensions
        attn_energies = attn_energies.t()

        # Return the softmax normalized probability scores (with added dimension)
        return F.softmax(attn_energies, dim= 1 ) 絞り出す( 1 )

アテンション サブモジュールを定義したので、実際のデコーダ モデルを実装できます。デコーダの場合は、一度に 1 バッチずつデータを手動で入力します。これは、埋め込みワード テンソルと GRU 出力の両方が(1, batch_size, hidden_​​size)の形状を持つことを意味します

計算グラフ:

  1. 現在の入力単語の埋め込みを取得します。

  2. 一方向 GRU によって転送されます。

  3. アテンションの重みは、(2) の現在の GRU 出力に基づいて計算されます。

  4. アテンションの重みにエンコーダの出力を乗算して、新しい「重み付き合計」コンテキスト ベクトルを取得します。

  5. Luong 式を使用して、重み付けされたコンテキスト ベクトルと GRU 出力を連結します。5.

  6. Luong 式を使用して次の単語を予測します。6 (ソフトマックスなし)。

  7. 出力と最終的な非表示状態を返します。

入力:

  • input_step: 入力シーケンス バッチの 1 タイム ステップ (1 ワード); 形状 =  (1, バッチ サイズ)

  • last_hidden: GRU の最後の隠れ層; 形状 =  (n_layers x num_directions、batch_size、hidden_​​size)

  • encoder_outputs: エンコーダ モデルの出力; 形状 =  (最大長、バッチ サイズ、非表示サイズ)

出力:

  • output: ソフトマックス正規化テンソル、各単語がデコードされたシーケンス内の正しい次の単語である確率を与える;shape =  (batch_size, voc.num_words)

  • hidden: GRU の最終的な非表示状態、shape =  (n_layers x num_directions、batch_size、hidden_​​size)

class  LuongAttnDecoderRNN ( nn.Module ): 
    def  __init__ ( self ,  attn_model ,  embedding ,  hidden_​​size ,  Output_size ,  n_layers = 1 ,  dropout = 0.1 ):
         super ( LuongAttnDecoderRNN ,  self ) __init__ () 

        # 参考のために保存してください
        self attn_model  =  attn_model
         self hidden_​​size  =  hidden_​​size
        自身出力サイズ = 出力サイズ
        自身n_layers  =  n_layers
        自身Dropout  =  Dropout 

        # レイヤー
        selfを定義しますembedding  = 自分自身を埋め込む
        embedding_dropout = nn.Dropout (ドロップアウト) self gru = nn.GRU ( hidden_​​size , hidden_​​size , n_layers , dropout = ( n_layers == 1 elseの場合は0  
                   ドロップアウト))
        自分自身concat  =  nn.Linear ( hidden_​​size  *  2 ,  hidden_​​size )
         self out  =  nn.Linear ( hidden_​​size ,  Output_size )

         self attn  =  Attn ( attn_model ,  hidden_​​size ) 

    def  forward ( self ,  input_step ,  last_hidden ,  encoder_outputs ): 
        # 注: これを一度に 1 ステップ (ワード) ずつ実行します
        # Get embedding of current input word
        embedded = self.embedding(input_step)
        embedded = self.embedding_dropout(embedded)
        # Forward through unidirectional GRU
        rnn_output, hidden = self.gru(embedded, last_hidden)
        # Calculate attention weights from the current GRU output
        attn_weights = self.attn(rnn_output, encoder_outputs)
        # アテンション重みをエンコーダ出力に乗算して、新しい「重み付き合計」コンテキスト ベクトル
        context  =  attn_weightsを取得しますbmm ( encoder_outputs . transpose ( 0 ,  1 )) 
        # Luong eq を使用して重み付きコンテキスト ベクトルと GRU 出力を連結します。5 
        rnn_output  =  rnn_output スクイーズ( 0 )
        コンテキスト = コンテキストスクイーズ( 1 ) 
        concat_input  =  torch.cat (( rnn_output ,  context ),  1) 
        concat_output  =  torch.tanh ( self . concat ( concat_input )) 
        # Luong 式を使用して次の単語を予測します。6
        出力 = 自己out ( concat_output ) 
        Output  =  F.softmax ( Output ,  dim = 1 ) 
        # 出力と最終的な非表示状態を返します
        return  Output ,  hidden

トレーニング手順を定義する

マスキングロス

パディングされたシーケンスのバッチを扱っているため、損失を計算するときにテンソルのすべての要素を単純に考慮することはできません。maskNLLLossデコーダの出力テンソル、ターゲット テンソル、およびターゲット テンソルのパディングを記述するバイナリ マスク テンソルから計算される損失を定義します。 この損失関数は、マスク テンソルの1に対応する要素の平均負の対数尤度を計算します。

def maskNLLLoss(inp, target, mask):
    nTotal = mask.sum()
    crossEntropy = -torch.log(torch.gather(inp, 1, target.view(-1, 1)).squeeze(1))
    loss = crossEntropy.masked_select(mask).mean()
    loss = 紛失to (デバイス)
    リターン ロス nTotal 項目()

単一のトレーニング反復

このtrain関数には、単一のトレーニング反復 (入力の単一バッチ) のアルゴリズムが含まれています。

収束を助けるためにいくつかの巧妙なトリックを使用します。

  • 最初のトリックは、教師の強制を利用することです。これは、 によって設定された確率でteacher_forcing_ratio、デコーダの現在の推測を使用するのではなく、デコーダへの次の入力として現在のターゲット単語を使用することを意味します。この手法はデコーダの補助輪として機能し、より効率的なトレーニングを促進します。ただし、教師による強制は、デコーダーがトレーニング中に実際に独自の出力シーケンスを作成する十分な機会がない可能性があるため、推論中にモデルが不安定になる可能性があります。したがって、その設定方法に注意を払う必要がありteacher_forcing_ratio、高速な収束に騙されないようにする必要があります。

  • 私たちが実装する 2 番目のトリックは、グラデーション クリッピングです。これは、「勾配の爆発」問題に対処するための一般的な手法です。基本的に、勾配を最大値にクリッピングまたはしきい値処理することにより、勾配が指数関数的に増加してオーバーフロー (NaN) したり、コスト関数の急な崖を超えたりするのを防ぎます。

毕业剪辑

画像クレジット: Goodfellow 他 ディープラーニング2016年。https://www.deeplearningbook.org/  _

操作のシーケンス:

  1. 入力バッチ全体をエンコーダーを通して前方に渡します。

  2. デコーダ入力を SOS_token として初期化し、隠し状態をエンコーダの最終的な隠し状態として初期化します。

  3. 一連の入力バッチは、一度に 1 ステップずつデコーダを介して転送されます。

  4. 教師が強制する場合: 次のデコーダ入力を現在のターゲットとして設定し、そうでない場合: 次のデコーダ入力を現在のデコーダ出力として設定します。

  5. 損失を計算して蓄積します。

  6. バックプロパゲーションを実行します。

  7. グラデーションをクリップします。

  8. エンコーダおよびデコーダのモデルパラメータを更新します。

ノート

PyTorch の RNN モジュール (  RNNLSTMGRU) は、他の非巡回層と同様に使用でき、入力シーケンス全体 (またはシーケンスのバッチ) を渡すだけです。実際GRUencoderは、舞台裏で、各タイムステップで隠れ状態の計算をループする反復プロセスが存在します。あるいは、これらのモジュールを一度に 1 ステップずつ実行することもできます。decoderこの場合、モデルを操作する必要があるため、トレーニング中にシーケンスを手動でループします。これらのモジュールの正しい概念モデルが維持されている限り、シーケンシャル モデルの実装は非常に簡単です。

def  train ( input_variable ,  lengths ,  target_variable ,  mask ,  max_target_len ,  encoder ,  decoder ,  embedding ,
           encoder_optimizer ,  decoder_optimizer ,  batch_size ,  clip ,  max_length = MAX_LENGTH ): 

    # ゼロ勾配
    encoder_optimizer.zero_grad ()
     decoder_optimizer.zero_grad () 

    # デバイスオプションを設定します
    input_変数 = 入力変数. デバイス
    ターゲット変数 = ターゲット変数to (デバイス)
    マスク = マスクto ( device ) 
    # RNN パッキングの長さは、常に CPU
    の長さ = 長さになる必要がありますto ( "cpu" ) 

    # 変数を初期化
    loss  =  0 
    print_losses  =  [] 
    n_totals  =  0 

    # エンコーダを介したフォワードパス
    encoder_outputs ,  encoder_hidden  =  encoder (input_variable, lengths)

    # Create initial decoder input (start with SOS tokens for each sentence)
    decoder_input = torch.LongTensor([[SOS_token for _ in range(batch_size)]])
    decoder_input = decoder_input.to(device)

    # Set initial decoder hidden state to the encoder's final hidden state
    decoder_hidden = encoder_hidden[:decoder.n_layers]

    # Determine if we are using teacher forcing this iteration
    use_Teacher_forcing  = ランダムの場合はTrue  random () < Teacher_forcing_ratio else False # デコーダを介してシーケンスのバッチを一度に 1 タイムステップずつ転送しますif use_Teacher_forcing : for t in range ( max_target_len ): decoder_output , decoder_hidden = decoder ( decoder_input , decoder_hidden , encoder_outputs ) # 教師強制: 次の入力は現在のターゲットデコーダ入力=ターゲット変数     

    
     
           
               
                  
            
            
              [ t ] view ( 1 ,  - 1 ) 
            #
            損失計算 累積ます _ _ _ _ _ _ _ _ _ _ _ _ append ( mask_loss . item () * nTotal ) n_totals += nTotal else : for t in   
              
              
              
    
           range ( max_target_len ): 
            decoder_output ,  decoder_hidden  =  decoder ( 
                decoder_input ,  decoder_hidden ,  encoder_outputs 
            ) 
            # 教師による強制なし: 次の入力はデコーダー自身の現在の出力
            _  topi  =  decoder_outputですtopk ( 1 ) 
            decoder_input  = トーチLongTensor ([[ topi [ i ][ 0 ]  for  i  in  range ( batch_size))]])
            デコーダー_入力 = デコーダー_入力to ( device ) 
            # 損失を計算して累積します
            Mask_loss ,  nTotal  =  MaskNLLLoss ( decoder_output ,  target_variable [ t ],  Mask [ t ]) 
            loss  +=  Mask_loss 
            print_losses append ( mask_loss.item () * nTotal ) n_totals += nTotal #逆伝播損失を実行します  
              

    
    reverse () 

    # クリップの勾配: 勾配はその場で変更されます
    _  =  nn.utils.clip_grad_norm_ ( encoder.parameters (),  Clip ) 
    _  =  nn.utils.clip_grad_norm_ ( decoder.parameters (),  Clip ) 

    # モデルの重みを調整します
    encoder_optimizer。 step ()
     decoder_optimizer.step () 

    return  sum ( print_losses )  /  n_totals

トレーニングの反復

ついに完全なトレーニング プロセスとデータを統合する時が来ました。この関数は、渡されたモデル、オプティマイザー、データなどを指定してトレーニングを実行するtrainIters役割を果たします。 n_iterations面倒な作業は既に行っているので、この関数は一目瞭然ですtrain

需要注意的一件事是,当我们保存模型时,我们保存一个包含编码器和解码器state_dicts(参数)、优化器state_dicts、损失、迭代等的 tarball。以这种方式保存模型将为我们提供最终的灵活性检查站。加载检查点后,我们将能够使用模型参数来运行推理,或者我们可以从上次停止的地方继续训练。

def trainIters(model_name, voc, pairs, encoder, decoder, encoder_optimizer, decoder_optimizer, embedding, encoder_n_layers, decoder_n_layers, save_dir, n_iteration, batch_size, print_every, save_every, clip, corpus_name, loadFilename):

    # Load batches for each iteration
    training_batches = [batch2TrainData(voc, [random.choice(pairs) for _ in range(batch_size)])
                      for _ in range(n_iteration)]

    # Initializations
    print('Initializing ...')
    start_iteration = 1
    print_loss = 0
    if loadFilename:
        start_iteration = checkpoint['iteration'] + 1

    # Training loop
    print("Training...")
    for iteration in range(start_iteration, n_iteration + 1):
        training_batch = training_batches[iteration - 1]
        # Extract fields from batch
        input_variable, lengths, target_variable, mask, max_target_len = training_batch

        # Run a training iteration with batch
        loss = train(input_variable, lengths, target_variable   mask  max_target_len  encoder 
                     decoder   embedding   encoder_optimizer   decoder_optimizer  batch_size  clip ) 
        print_loss  +=  loss #

        反復の場合の印刷進行状況
        % print_every == 0 : print_loss_avg = print_loss / print_every print ( "反復: {} ; 完了率: {:.1f} %; 平均損失: {:.4f}     
                
            ".format(iteration, iteration / n_iteration * 100, print_loss_avg))
            print_loss = 0

        # Save checkpoint
        if (iteration % save_every == 0):
            directory = os.path.join(save_dir, model_name, corpus_name, '{}-{}_{}'.format(encoder_n_layers  decoder_n_layers  hidden_​​size )) 
            osでない場合 パス存在します(ディレクトリ): os makedirs (ディレクトリ) torch.save ({  'iteration' : iteration , 'en' : encoder.state_dict (), 'de' : decoder.state_dict (), 'en_opt' : encoder_optimizer.state_dict (), 'de_opt' : decoder_optimizer .state_dict ()、 
                
            
            
                 
                 
                 
                 
                 
                'loss' : 損失
                 'voc_dict' :  voc __dict__ 
                 'embedding' :  embedding.state_dict () 
            }、 os パスjoin ( directory ,  ' {} _ {} .tar' . format ( iteration ,  'checkpoint' )))

評価の定義

モデルをトレーニングした後、私たち自身がボットと会話できるようにしたいと考えています。まず、モデルがエンコードされた入力をデコードする方法を定義する必要があります。

貪欲なデコード

貪欲なデコードは、トレーニング中に教師による強制を使用しない場合に使用するデコード方法です。言い換えれば、タイム ステップごとに、decoder_output最も高いソフトマックス値を持つ単語を選択するだけです。この復号化方法は、個々のタイム ステップのレベルで最適です。

为了方便贪心解码操作,我们定义一个 GreedySearchDecoder类。运行时,此类的对象采用形状input_seq(input_seq length, 1) 的输入序列 ( ) 、标量输入长度 ( input_length) 张量以及max_length用于限制响应句子长度的 a 。使用以下计算图评估输入句子:

计算图:

  1. 通过编码器模型转发输入。

  2. 准备编码器的最终隐藏层作为解码器的第一个隐藏输入。

  3. 将解码器的第一个输入初始化为 SOS_token。

  4. 初始化张量以附加解码后的单词。

  5. 一次迭代地解码一个单词标记:

    1. 前向通过解码器。

    2. 获取最有可能的单词 token 及其 softmax 分数。

    3. 记录令牌和分数。

    4. 准备当前令牌作为下一个解码器输入。

  6. 返回单词标记和分数的集合。

class  GreedySearchDecoder ( nn.Module ): 
    def  __init__ ( self ,  encoder ,  decoder ):
         super ( GreedySearchDecoder ,  self ) __init__ ()
         self エンコーダ = エンコーダ
        自身decoder  =  decoder 

    def  forward ( self ,  input_seq ,  input_length ,  max_length ): 
        # エンコーダー モデル
        encoder_outputsを介して入力を転送します encoder_hidden  =  self encoder ( input_seq ,  input_length ) 
        # デコーダへの最初の隠れ入力となるエンコーダの最後の隠れ層を準備します
        decoder_hidden  =  encoder_hidden [: decoder . n_layers ] 
        # SOS_token を使用してデコーダ入力を初期化します
        decoder_input  =  torch.ones ( 1 ,  1 ,  device = device ,  dtype = torch.long )  *  SOS_token 
        # デコードされた単語を追加するテンソルを初期化します
        all_tokens = torch.zeros([0], device=device, dtype=torch.long)
        all_scores = torch.zeros([0], device=device)
        # Iteratively decode one word token at a time
        for _ in range(max_length):
            # Forward pass through decoder
            decoder_output, decoder_hidden = self.decoder(decoder_input, decoder_hidden, encoder_outputs)
            # Obtain most likely word token and its softmax score
            decoder_scores, decoder_input = torch.max(decoder_output, dim=1)
            # Record token and score
            all_tokens = torch.cat((all_tokens, decoder_input), dim=0)
            all_scores = torch.cat((all_scores, decoder_scores), dim=0)
            # 現在のトークンを次のデコーダー入力として準備します (次元を追加します) 
            decoder_input  =  torch.unsqueeze ( decoder_input ,  0 ) 
        # 単語トークンとスコアのコレクションを返します
        all_tokens all_scoresを返します  

私の文章を評価する

デコード方法を定義したので、文字列入力文を評価する関数を作成できます。このevaluate関数は、入力文を処理する低レベルのプロセスを管理します。まず、文を入力単語インデックスのバッチにフォーマットします (ここで、patch_size==1 )。これを行うには、文の単語を対応するインデックスに変換し、次元を転置してモデル用のテンソルを準備します。また、lengths入力文の長さを含むテンソルも作成します。この場合、lengths一度に 1 つの文のみを評価するため、スカラーになります (batch_size==1)。GreedySearchDecoder 次に、オブジェクト ( searcher) を使用して、デコードされた応答文テンソルを取得します。最後に、応答のインデックスを単語に変換し、デコードされた単語リストを返します。

evaluateInputチャットボットのユーザー インターフェイスとして機能します。呼び出すと、クエリ文を入力できる入力テキスト フィールドが生成されます。入力文を入力してEnterを押すと、テキストはトレーニング データと同じ方法で正規化され、最終的に関数に入力されてevaluateデコードされた出力文が取得されます。このプロセスをループすることで、「q」または「quit」を入力するまでボットとのチャットを続けることができます。

最後に、入力された文に語彙にない単語が含まれている場合は、エラー メッセージを出力し、ユーザーに別の文の入力を促すことで、これを適切に処理します。

def  Evaluate ( encoder ,  decoder ,  searcher ,  voc ,  speech ,  max_length = MAX_LENGTH ): 
    ### 入力文をバッチとしてフォーマットします
    # 単語 -> インデックス
    Indexes_batch  =  [ indexesFromSentence ( voc ,  speech )] 
    # 長さ tensor
     length  =  torch を作成します。 tensor ( [ len ( Indexes )  for  Indexes_batch  ] ) 
    # モデルの期待に一致するようにバッチの次元を転置します
    input_batch  =  torch LongTensor ( indexes_batch ) transpose ( 0 ,  1 ) 
    # 適切なデバイスを使用してください
    input_batch  =  input_batch to (デバイス)
    長さ = 長さto ( "cpu" ) 
    # サーチャー
    トークンを使用して文をデコードします スコア =  searcher ( input_batch ,  length , max_length)
    # indexes -> words
    decoded_words = [voc.index2word[token.item()] for token in tokens]
    return decoded_words


def evaluateInput(encoder, decoder, searcher, voc):
    input_sentence = ''
    while(1):
        try:
            # Get input sentence
            input_sentence = input('> ')
            # 終了かどうかを確認する case 
            if  input_sentence  ==  'q' または input_sentence  ==  'quit' :  Break 
            # 文を正規化
            input_sentence  =  NormalizeString ( input_sentence ) 
            # 文を評価する
            Output_words  =  Evaluate ( encoder ,  decoder ,  searcher ,  voc ,  input_sentence ) 
            #
            応答 フォーマット 印刷_ _ _ _     if  not  ( x  ==  'EOS' または x  ==  'PAD' )]
             print ( 'Bot:' ,  ' ' . join ( output_words )) 

        KeyErrorを除く : print ( "エラー: 未知の単語が検出されました。" )
            

モデルを実行する

ついに、モデルを実行する時が来ました。

チャットボット モデルをトレーニングするかテストするかに関係なく、個別のエンコーダー モデルとデコーダー モデルを初期化する必要があります。次のブロックでは、必要な構成を設定し、最初から開始するか、ロードするチェックポイントを設定するかを選択し、モデルを構築して初期化します。パフォーマンスを最適化するために、さまざまなモデル構成を自由に使用してください。


#モデルを設定するmodel_name  =  'cb_model' 
attn_model  =  'dot' 
#``attn_model = 'general'`` #` 
` attn_model = 'concat'`` 
hidden_​​size  =  500 
encoder_n_layers  =  2 
decoder_n_layers  =  2dropout 
= 0.1batch_size = 64 # Setロード元のチェックポイント; 最初から開始する場合は、None に設定します。loadFilename = Nonecheckpoint_iter = 4000  
  


  
  

チェックポイントからロードされたサンプルコード:

loadFilename = os.path.join(save_dir, model_name, corpus_name,
                    '{}-{}_{}'.format(encoder_n_layers, decoder_n_layers, hidden_size),
                    '{}_checkpoint.tar'.format(checkpoint_iter))
# Load model if a ``loadFilename`` is provided
if loadFilename:
    # If loading on same machine the model was trained on
    checkpoint = torch.load(loadFilename)
    # If loading a model trained on GPU to CPU
    #checkpoint = torch.load(loadFilename, map_location=torch.device('cpu'))
    encoder_sd = checkpoint['en']
    decoder_sd = checkpoint['de']
    encoder_optimizer_sd = checkpoint['en_opt']
    decoder_optimizer_sd = checkpoint['de_opt' ] 
    embedding_sd  = チェックポイント[ 'embedding' ] 
    voc __dict__  =  Checkpoint [ 'voc_dict' ]


 print ( 'エンコーダとデコーダの構築 ...' ) 
# 単語の埋め込みを初期化します
embedding  =  nn.Embedding ( voc . num_words ,  hidden_​​size ) 
if  loadFilename :
     embedding.load_state_dict ( embedding_sd ) 
# エンコーダとデコーダを初期化しますモデルの
エンコーダー =  EncoderRNN( hidden_​​size ,  embedding ,  encoder_n_layers ,  dropout ) 
decoder  =  LuongAttnDecoderRNN ( attn_model ,  embedding ,  hidden_​​size ,  voc . num_words ,  decoder_n_layers ,  dropout ) 
if  loadFilename :
     encoder.load_state_dict ( encoder_sd )
     decoder.load_state_dict ( decoder_ sd ) 
# 適切なデバイス
エンコーダ =  encoder を使用します。(デバイスへ)) 
decoder  =  decoder.to ( device )
 print ( 'モデルが構築され、準備完了!' )
エンコーダとデコーダを構築... モデルが構築され、準備完了!

ランニングトレーニング

モデルをトレーニングする場合は、次のブロックを実行します。

まず、トレーニング パラメーターを設定し、次にオプティマイザーを初期化し、最後に関数を呼び出してtrainItersトレーニングの反復を実行します。

# トレーニング/最適化を設定します
Clip  =  50.0 
Teacher_forcing_ratio  =  1.0 
learning_rate  =  0.0001 
decoder_learning_ratio  =  5.0 
n_iteration  =  4000 
print_every  =  1 
save_every  =  500 

# ドロップアウト層がトレーニング モードであることを確認
encoder.train ()
 decoder.train () 

# オプティマイザーを初期化します
print ( 'オプティマイザーの構築 ...' )
 encoder_optimizer  =  optim.Adam ( encoder.parameters (),  lr =learning_rate )
 decoder_optimizer  =  optim.Adam ( decoder.parameters (),  lr = learning_rate  *  decoder_learning_ratio ) 
ifloadFilename  : encoder_optimizer.load_state_dict ( encoder_optimizer_sd ) decoder_optimizer.load_state_dict ( decoder_optimizer_sd ) # CUDAがある場合は、状態を呼び出すように CUDA を設定しますencoder_optimizer状態() : k v状態
    
    


   
        items (): 
        if  isinstance ( v ,  torch.Tensor ): 
            state [ k ]  =  v cuda ()

はdecoder_optimizer状態を表します 状態( ): k vstate items (): if isinstance ( v , torch.Tensor ): state [ k ] = v クダ()  
        
          
              

# Run training iterations
print("Starting Training!")
trainIters(model_name, voc, pairs, encoder, decoder, encoder_optimizer, decoder_optimizer,
           embedding, encoder_n_layers, decoder_n_layers, save_dir, n_iteration, batch_size,
           print_every, save_every, clip, corpus_name, loadFilename)
オプティマイザーの構築 ... トレーニングを開始します!  初期化中... トレーニング中... 反復: 1; 完了率: 0.0%; 平均損失: 8.9557
 反復: 1497; 完了率: 37.4%; 平均損失: 3.3915 反復: 1498; 完了率: 37.5%; 平均損失: 3.3294 反復: 1499; 完了率: 37.5%; 平均損失: 3.0871 反復: 1500; 完了率: 37.5%; 平均損失: 3.3111 反復: 1501; 完了率: 37.5%; 平均損失: 3.0605 反復: 1502; 完了率: 37.5%; 平均損失: 3.1857 反復: 1503; 完了率: 37.6%; 平均損失: 3.4914 反復: 1504; 完了率: 37.6%; 平均損失: 3.0607 反復: 1505; 完了率: 37.6%; 平均損失: 3.1653 反復: 1506; 完了率: 37.6%; 平均損失: 3.3464 反復: 1507; 完了率: 37.7%; 平均損失: 3.3343 反復: 1508; 完了率: 37.7%; 平均損失: 3.2427 反復: 1509; 完了率: 37.7%; 平均損失: 3.2750 反復: 1510; 完了率: 37.8%; 平均損失: 3.3731 反復: 1511; 完了率: 37.8%; 平均損失: 3.2830 反復: 1512; 完了率: 37.8%; 平均損失: 3.2919 反復: 1513; 完了率: 37.8%; 平均損失: 3.1917 反復: 1514; 完了率: 37.9%; 平均損失: 3.2123 反復: 1515; 完了率: 37.9%; 平均損失: 3.3189 反復: 1516; 完了率: 37.9%; 平均損失: 3.1814 反復: 1517; 完了率: 37.9%; 平均損失: 3.3051 反復: 1518; 完了率: 38.0%; 平均損失: 3.4495 反復: 1519; 完了率: 38.0%; 平均損失: 3.2963 反復: 1520; 完了率: 38.0%; 平均損失: 3.2766 反復: 1521; 完了率: 38.0%; 平均損失: 3.3116 反復: 1522; 完了率: 38.0%; 平均損失: 3.2794 反復: 1523; 完了率: 38.1%; 平均損失: 3.2985 反復: 1524; 完了率: 38.1%; 平均損失: 3.5464 反復: 1525; 完了率: 38.1%; 平均損失: 3.3130 反復: 1526; 完了率: 38.1%; 平均損失: 3.3966 反復: 1527; 完了率: 38.2%; 平均損失: 3.3655 反復: 1528; 完了率: 38.2%; 平均損失: 3.5355 反復: 1529; 完了率: 38.2%; 平均損失: 3.2908 反復: 1530; 完了率: 38.2%; 平均損失: 3.3223 反復: 1531; 完了率: 38.3%; 平均損失: 3.3646 反復: 1532; 完了率: 38.3%; 平均損失: 3.3574 反復: 1533; 完了率: 38.3%; 平均損失: 3.3535 反復: 1534; 完了率: 38.4%; 平均損失: 3.2012 反復: 1535; 完了率: 38.4%; 平均損失: 3.0008 反復: 1536; 完了率: 38.4%; 平均損失: 3.4063 反復: 1537; 完了率: 38.4%; 平均損失: 3.4194 反復: 1538; 完了率: 38.5%; 平均損失: 3.1609 反復: 1539; 完了率: 38.5%; 平均損失: 3.4211 反復: 1540; 完了率: 38.5%; 平均損失: 3.3502 反復: 1541; 完了率: 38.5%; 平均損失: 3.3537 反復: 1542; 完了率: 38.6%; 平均損失: 3.2534 反復: 1543; 完了率: 38.6%; 平均損失: 3.1207 反復: 1544; 完了率: 38.6%; 平均損失: 3.3765 反復: 1545; 完了率: 38.6%; 平均損失: 3.2870 反復: 1546; 完了率: 38.6%; 平均損失: 3.1426 反復: 1547; 完了率: 38.7%; 平均損失: 3.2928 反復: 1548; 完了率: 38.7%; 平均損失: 3.4218
Iteration: 1549; Percent complete: 38.7%; Average loss: 2.9980
Iteration: 1550; Percent complete: 38.8%; Average loss: 3.2031
Iteration: 1551; Percent complete: 38.8%; Average loss: 3.0545
Iteration: 1552; Percent complete: 38.8%; Average loss: 3.3794
Iteration: 1553; Percent complete: 38.8%; Average loss: 3.0721
Iteration: 1554; Percent complete: 38.9%; Average loss: 3.4237
Iteration: 1555; Percent complete: 38.9%; Average loss: 3.2394
Iteration: 1556; Percent complete: 38.9%; Average loss: 3.0929
Iteration: 1557; Percent complete: 38.9%; Average loss: 3.2294
Iteration: 1558; Percent complete: 39.0%; Average loss: 3.3667
Iteration: 1559; Percent complete: 39.0%; Average loss: 3.4667 反復: 1560; 完了率: 39.0%; 平均損失: 2.9508 反復: 1561; 完了率: 39.0%; 平均損失: 3.6283 反復: 1562; 完了率: 39.1%; 平均損失: 3.3443 反復: 1563; 完了率: 39.1%; 平均損失: 3.2425 反復: 1564; 完了率: 39.1%; 平均損失: 3.5134 反復: 1565; 完了率: 39.1%; 平均損失: 3.3335 反復: 1566; 完了率: 39.1%; 平均損失: 3.2957 反復: 1567; 完了率: 39.2%; 平均損失: 3.0645 反復: 1568; 完了率: 39.2%; 平均損失: 3.1673 反復: 1569; 完了率: 39.2%; 平均損失: 3.2367 反復: 1570; 完了率: 39.2%; 平均損失: 3.1368 反復: 1571; 完了率: 39.3%; 平均損失: 3.0196 反復: 1572; 完了率: 39.3%; 平均損失: 3.2433 反復: 1573; 完了率: 39.3%; 平均損失: 3.4304 反復: 1574; 完了率: 39.4%; 平均損失: 3.1778 反復: 1575; 完了率: 39.4%; 平均損失: 3.5510 反復: 1576; 完了率: 39.4%; 平均損失: 3.2482 反復: 1577; 完了率: 39.4%; 平均損失: 3.2707 反復: 1578; 完了率: 39.5%; 平均損失: 3.0998 反復: 1579; 完了率: 39.5%; 平均損失: 3.3175 反復: 1580; 完了率: 39.5%; 平均損失: 3.0692 反復: 1581; 完了率: 39.5%; 平均損失: 3.1820 反復: 1582; 完了率: 39.6%; 平均損失: 3.2758 反復: 1583; 完了率: 39.6%; 平均損失: 3.4247 反復: 1584; 完了率: 39.6%; 平均損失: 2.9866 反復: 1585; 完了率: 39.6%; 平均損失: 3.4215 反復: 1586; 完了率: 39.6%; 平均損失: 3.1239 反復: 1587; 完了率: 39.7%; 平均損失: 3.2891 反復: 1588; 完了率: 39.7%; 平均損失: 3.3441 反復: 1589; 完了率: 39.7%; 平均損失: 3.4015 反復: 1590; 完了率: 39.8%; 平均損失: 3.1678 反復: 1591; 完了率: 39.8%; 平均損失: 3.2509 反復: 1592; 完了率: 39.8%; 平均損失: 3.3413 反復: 1593; 完了率: 39.8%; 平均損失: 3.3334 反復: 1594; 完了率: 39.9%; 平均損失: 3.2066 反復: 1595; 完了率: 39.9%; 平均損失: 3.5717 反復: 1596; 完了率: 39.9%; 平均損失: 3.2644 反復: 1597; 完了率: 39.9%; 平均損失: 3.4574 反復: 1598; 完了率: 40.0%; 平均損失: 3.3502 反復: 1599; 完了率: 40.0%; 平均損失: 2.9495 反復: 1600; 完了率: 40.0%; 平均損失: 3.0889 反復: 1601; 完了率: 40.0%; 平均損失: 3.1596 反復: 1602; 完了率: 40.1%。平均損失: 3.3647 反復: 1603; 完了率: 40.1%。平均損失: 3.1755
Iteration: 1604; Percent complete: 40.1%; Average loss: 3.2520
Iteration: 1605; Percent complete: 40.1%; Average loss: 3.3493
Iteration: 1606; Percent complete: 40.2%; Average loss: 3.2803
Iteration: 1607; Percent complete: 40.2%; Average loss: 3.2484
Iteration: 1608; Percent complete: 40.2%; Average loss: 3.1678
Iteration: 1609; Percent complete: 40.2%; Average loss: 3.5719
Iteration: 1610; Percent complete: 40.2%; Average loss: 3.1084
Iteration: 1611; Percent complete: 40.3%; Average loss: 3.2722
Iteration: 1612; Percent complete: 40.3%; Average loss: 3.0692
Iteration: 1613; Percent complete: 40.3%; Average loss: 3.0927
Iteration: 1614; Percent complete: 40.4%; Average loss: 2.9829
Iteration: 1615; Percent complete: 40.4%; Average loss: 3.0295
Iteration: 1616; Percent complete: 40.4%; Average loss: 3.4155
Iteration: 1617; Percent complete: 40.4%; Average loss: 3.1449
Iteration: 1618; Percent complete: 40.5%; Average loss: 3.3106
Iteration: 1619; Percent complete: 40.5%; Average loss: 3.4951
Iteration: 1620; Percent complete: 40.5%; Average loss: 3.1167
Iteration: 1621; Percent complete: 40.5%; Average loss: 3.4996
Iteration: 1622; Percent complete: 40.6%; Average loss: 3.3370
Iteration: 1623; Percent complete: 40.6%; Average loss: 3.3733
Iteration: 1624; Percent complete: 40.6%; Average loss: 3.3613
Iteration: 1625; Percent complete: 40.6%; Average loss: 3.3983
Iteration: 1626; Percent complete: 40.6%; Average loss: 2.9577
Iteration: 1627; Percent complete: 40.7%; Average loss: 3.2354
Iteration: 1628; Percent complete: 40.7%; Average loss: 3.1991
Iteration: 1629; Percent complete: 40.7%; Average loss: 3.3887
Iteration: 1630; Percent complete: 40.8%; Average loss: 3.3746
Iteration: 1631; Percent complete: 40.8%; Average loss: 3.2031
Iteration: 1632; Percent complete: 40.8%; Average loss: 3.2365
Iteration: 1633; Percent complete: 40.8%; Average loss: 3.5041
Iteration: 1634; Percent complete: 40.8%; Average loss: 3.0698
Iteration: 1635; Percent complete: 40.9%; Average loss: 3.2979
Iteration: 1636; Percent complete: 40.9%; Average loss: 3.5271
Iteration: 1637; Percent complete: 40.9%; Average loss: 3.3264
Iteration: 1638; Percent complete: 40.9%; Average loss: 3.3071
Iteration: 1639; Percent complete: 41.0%; Average loss: 3.2124
Iteration: 1640; Percent complete: 41.0%; Average loss: 3.1883
Iteration: 1641; Percent complete: 41.0%; Average loss: 3.3615
Iteration: 1642; Percent complete: 41.0%; Average loss: 3.1147
Iteration: 1643; Percent complete: 41.1%; Average loss: 3.3908
Iteration: 1644; Percent complete: 41.1%; Average loss: 3.3441
Iteration: 1645; Percent complete: 41.1%; Average loss: 3.3493
Iteration: 1646; Percent complete: 41.1%; Average loss: 3.2848
Iteration: 1647; Percent complete: 41.2%; Average loss: 3.5160
Iteration: 1648; Percent complete: 41.2%; Average loss: 3.2961
Iteration: 1649; Percent complete: 41.2%; Average loss: 3.1985
Iteration: 1650; Percent complete: 41.2%; Average loss: 3.3129
Iteration: 1651; Percent complete: 41.3%; Average loss: 3.1426
Iteration: 1652; Percent complete: 41.3%; Average loss: 3.2381
Iteration: 1653; Percent complete: 41.3%; Average loss: 3.4049
Iteration: 1654; Percent complete: 41.3%; Average loss: 3.5279
Iteration: 1655; Percent complete: 41.4%; Average loss: 2.9631
Iteration: 1656; Percent complete: 41.4%; Average loss: 3.2192
Iteration: 1657; Percent complete: 41.4%; Average loss: 3.3235
Iteration: 1658; Percent complete: 41.4%; Average loss: 3.5229
Iteration: 1659; Percent complete: 41.5%; Average loss: 3.5854
Iteration: 1660; Percent complete: 41.5%; Average loss: 3.1985
Iteration: 1661; Percent complete: 41.5%; Average loss: 3.2383
Iteration: 1662; Percent complete: 41.5%; Average loss: 3.2486
Iteration: 1663; Percent complete: 41.6%; Average loss: 3.5147
Iteration: 1664; Percent complete: 41.6%; Average loss: 3.2325
Iteration: 1665; Percent complete: 41.6%; Average loss: 3.1497
Iteration: 1666; Percent complete: 41.6%; Average loss: 3.1601
Iteration: 1667; Percent complete: 41.7%; Average loss: 3.2537
Iteration: 1668; Percent complete: 41.7%; Average loss: 3.5158
Iteration: 1669; Percent complete: 41.7%; Average loss: 3.2235 反復: 1670; 完了率: 41.8%; 平均損失: 3.1957 反復: 1671; 完了率: 41.8%; 平均損失: 3.0200 反復: 1672; 完了率: 41.8%; 平均損失: 2.9216 反復: 1673; 完了率: 41.8%; 平均損失: 3.5049 反復: 1674; 完了率: 41.9%; 平均損失: 3.1215 反復: 1675; 完了率: 41.9%; 平均損失: 2.9431 反復: 1676; 完了率: 41.9%; 平均損失: 3.4195 反復: 1677; 完了率: 41.9%; 平均損失: 3.1554 反復: 1678; 完了率: 41.9%; 平均損失: 3.5350 反復: 1679; 完了率: 42.0%; 平均損失: 3.2140 反復: 1680; 完了率: 42.0%; 平均損失: 3.1785 反復: 1681; 完了率: 42.0%; 平均損失: 3.3371 反復: 1682; 完了率: 42.0%; 平均損失: 3.1805 反復: 1683; 完了率: 42.1%; 平均損失: 3.0346 反復: 1684; 完了率: 42.1%; 平均損失: 3.4054 反復: 1685; 完了率: 42.1%; 平均損失: 3.1953 反復: 1686; 完了率: 42.1%; 平均損失: 3.2231 反復: 1687; 完了率: 42.2%; 平均損失: 3.2622 反復: 1688; 完了率: 42.2%; 平均損失: 3.0981 反復: 1689; 完了率: 42.2%; 平均損失: 3.2440 反復: 1690; 完了率: 42.2%; 平均損失: 3.3377 反復: 1691; 完了率: 42.3%; 平均損失: 3.1379 反復: 1692; 完了率: 42.3%; 平均損失: 3.2388 反復: 1693; 完了率: 42.3%; 平均損失: 3.4429 反復: 1694; 完了率: 42.4%; 平均損失: 3.2939 反復: 1695; 完了率: 42.4%; 平均損失: 3.2122 反復: 1696; 完了率: 42.4%; 平均損失: 3.2532 反復: 1697; 完了率: 42.4%; 平均損失: 3.4160 反復: 1698; 完了率: 42.4%; 平均損失: 3.2291 反復: 1699; 完了率: 42.5%; 平均損失: 3.2498 反復: 1700; 完了率: 42.5%; 平均損失: 3.1899 反復: 1701; 完了率: 42.5%; 平均損失: 3.0738 反復: 1702; 完了率: 42.5%; 平均損失: 3.2254 反復: 1703; 完了率: 42.6%; 平均損失: 3.1076 反復: 1704; 完了率: 42.6%; 平均損失: 3.4010 反復: 1705; 完了率: 42.6%; 平均損失: 3.0403 反復: 1706; 完了率: 42.6%; 平均損失: 3.3060 反復: 1707; 完了率: 42.7%; 平均損失: 3.0707 反復: 1708; 完了率: 42.7%; 平均損失: 3.1592 反復: 1709; 完了率: 42.7%; 平均損失: 3.2038 反復: 1710; 完了率: 42.8%; 平均損失: 3.3157 反復: 1711; 完了率: 42.8%; 平均損失: 3.4986 反復: 1712; 完了率: 42.8%; 平均損失: 3.4502 反復: 1713; 完了率: 42.8%; 平均損失: 3.0350 反復: 1714; 完了率: 42.9%; 平均損失: 3.3203 反復: 1715; 完了率: 42.9%; 平均損失: 3.2905 反復: 1716; 完了率: 42.9%; 平均損失: 2.9897 反復: 1717; 完了率: 42.9%; 平均損失: 3.2729 反復: 1718; 完了率: 43.0%。平均損失: 3.4815 反復: 1719; 完了率: 43.0%。平均損失: 3.3571 反復: 1720; 完了率: 43.0%。平均損失: 3.3374 反復: 1721; 完了率: 43.0%。平均損失: 3.4961 反復: 1722; 完了率: 43.0%。平均損失: 3.2995 反復: 1723; 完了率: 43.1%; 平均損失: 3.1060 反復: 1724; 完了率: 43.1%; 平均損失: 3.3991
Iteration: 1725; Percent complete: 43.1%; Average loss: 3.1503
Iteration: 1726; Percent complete: 43.1%; Average loss: 3.3489
Iteration: 1727; Percent complete: 43.2%; Average loss: 3.3388
Iteration: 1728; Percent complete: 43.2%; Average loss: 3.2115
Iteration: 1729; Percent complete: 43.2%; Average loss: 3.4049
Iteration: 1730; Percent complete: 43.2%; Average loss: 3.2399
Iteration: 1731; Percent complete: 43.3%; Average loss: 3.0977
Iteration: 1732; Percent complete: 43.3%; Average loss: 3.2467
Iteration: 1733; Percent complete: 43.3%; Average loss: 3.2098
Iteration: 1734; Percent complete: 43.4%; Average loss: 3.3369
Iteration: 1735; Percent complete: 43.4%; Average loss: 2.9055
Iteration: 1736; Percent complete: 43.4%; Average loss: 3.2726
Iteration: 1737; Percent complete: 43.4%; Average loss: 3.2394
Iteration: 1738; Percent complete: 43.5%; Average loss: 2.9380
Iteration: 1739; Percent complete: 43.5%; Average loss: 3.3546
Iteration: 1740; Percent complete: 43.5%; Average loss: 3.3323
Iteration: 1741; Percent complete: 43.5%; Average loss: 3.1366
Iteration: 1742; Percent complete: 43.5%; Average loss: 3.2181
Iteration: 1743; Percent complete: 43.6%; Average loss: 3.0103
Iteration: 1744; Percent complete: 43.6%; Average loss: 3.3237
Iteration: 1745; Percent complete: 43.6%; Average loss: 3.5595
Iteration: 1746; Percent complete: 43.6%; Average loss: 3.1023
Iteration: 1747; Percent complete: 43.7%; Average loss: 3.1910
Iteration: 1748; Percent complete: 43.7%; Average loss: 3.2450
Iteration: 1749; Percent complete: 43.7%; Average loss: 3.2594
Iteration: 1750; Percent complete: 43.8%; Average loss: 3.2938
Iteration: 1751; Percent complete: 43.8%; Average loss: 3.1576
Iteration: 1752; Percent complete: 43.8%; Average loss: 3.2294
Iteration: 1753; Percent complete: 43.8%; Average loss: 3.2154
Iteration: 1754; Percent complete: 43.9%; Average loss: 3.0925
Iteration: 1755; Percent complete: 43.9%; Average loss: 3.1230
Iteration: 1756; Percent complete: 43.9%; Average loss: 3.2219
Iteration: 1757; Percent complete: 43.9%; Average loss: 3.2071 反復: 1758; 完了率: 44.0%; 平均損失: 3.1188 反復: 1759; 完了率: 44.0%; 平均損失: 3.2561 反復: 1760; 完了率: 44.0%; 平均損失: 3.2636 反復: 1761; 完了率: 44.0%。平均損失: 3.1059 反復: 1762; 完了率: 44.0%; 平均損失: 3.1218 反復: 1763; 完了率: 44.1%; 平均損失: 3.3748 反復: 1764; 完了率: 44.1%; 平均損失: 3.0305 反復: 1765; 完了率: 44.1%; 平均損失: 3.2057 反復: 1766; 完了率: 44.1%; 平均損失: 3.1950 反復: 1767; 完了率: 44.2%; 平均損失: 3.1452 反復: 1768; 完了率: 44.2%; 平均損失: 3.3857 反復: 1769; 完了率: 44.2%; 平均損失: 3.4636 反復: 1770; 完了率: 44.2%; 平均損失: 2.9290 反復: 1771; 完了率: 44.3%; 平均損失: 3.1982 反復: 1772; 完了率: 44.3%; 平均損失: 3.3795 反復: 1773; 完了率: 44.3%; 平均損失: 2.9717 反復: 1774; 完了率: 44.4%; 平均損失: 3.0632 反復: 1775; 完了率: 44.4%; 平均損失: 3.0667 反復: 1776; 完了率: 44.4%; 平均損失: 3.2949 反復: 1777; 完了率: 44.4%; 平均損失: 3.1454 反復: 1778; 完了率: 44.5%; 平均損失: 3.3341 反復: 1779; 完了率: 44.5%; 平均損失: 3.2754 反復: 1780; 完了率: 44.5%; 平均損失: 3.2357 反復: 1781; 完了率: 44.5%; 平均損失: 3.1785 反復: 1782; 完了率: 44.5%; 平均損失: 3.0183 反復: 1783; 完了率: 44.6%; 平均損失: 3.0679 反復: 1784; 完了率: 44.6%; 平均損失: 3.2736 反復: 1785; 完了率: 44.6%; 平均損失: 3.2168 反復: 1786; 完了率: 44.6%; 平均損失: 3.0485 反復: 1787; 完了率: 44.7%; 平均損失: 3.2214 反復: 1788; 完了率: 44.7%; 平均損失: 3.4904 反復: 1789; 完了率: 44.7%; 平均損失: 3.0856 反復: 1790; 完了率: 44.8%; 平均損失: 3.2643 反復: 1791; 完了率: 44.8%; 平均損失: 3.3901 反復: 1792; 完了率: 44.8%; 平均損失: 3.2404 反復: 1793; 完了率: 44.8%; 平均損失: 3.2423 反復: 1794; 完了率: 44.9%; 平均損失: 3.2675 反復: 1795; 完了率: 44.9%; 平均損失: 3.0530 反復: 1796; 完了率: 44.9%; 平均損失: 3.2306 反復: 1797; 完了率: 44.9%; 平均損失: 3.1857 反復: 1798; 完了率: 45.0%; 平均損失: 3.0405 反復: 1799; 完了率: 45.0%; 平均損失: 2.8466 反復: 1800; 完了率: 45.0%; 平均損失: 3.3357 反復: 1801; 完了率: 45.0%; 平均損失: 3.2088 反復: 1802; 完了率: 45.1%; 平均損失: 3.2076 反復: 1803; 完了率: 45.1%; 平均損失: 3.0990 反復: 1804; 完了率: 45.1%; 平均損失: 3.3286 反復: 1805; 完了率: 45.1%; 平均損失: 3.3242 反復: 1806; 完了率: 45.1%; 平均損失: 3.1032 反復: 1807; 完了率: 45.2%; 平均損失: 3.6023 反復: 1808; 完了率: 45.2%; 平均損失: 2.9637 反復: 1809; 完了率: 45.2%; 平均損失: 3.2192 反復: 1810; 完了率: 45.2%; 平均損失: 3.1872 反復: 1811; 完了率: 45.3%; 平均損失: 3.0540 反復: 1812; 完了率: 45.3%; 平均損失: 2.9579
Iteration: 1813; Percent complete: 45.3%; Average loss: 3.0189
Iteration: 1814; Percent complete: 45.4%; Average loss: 3.2733
Iteration: 1815; Percent complete: 45.4%; Average loss: 3.4648
Iteration: 1816; Percent complete: 45.4%; Average loss: 3.0278
Iteration: 1817; Percent complete: 45.4%; Average loss: 3.1361
Iteration: 1818; Percent complete: 45.5%; Average loss: 3.1139
Iteration: 1819; Percent complete: 45.5%; Average loss: 3.0613
Iteration: 1820; Percent complete: 45.5%; Average loss: 3.3479
Iteration: 1821; Percent complete: 45.5%; Average loss: 3.1969
Iteration: 1822; Percent complete: 45.6%; Average loss: 3.1262
Iteration: 1823; Percent complete: 45.6%; Average loss: 2.9444 反復: 1824; 完了率: 45.6%; 平均損失: 3.3982 反復: 1825; 完了率: 45.6%; 平均損失: 3.1803 反復: 1826; 完了率: 45.6%; 平均損失: 3.0371 反復: 1827; 完了率: 45.7%; 平均損失: 3.3056 反復: 1828; 完了率: 45.7%; 平均損失: 3.2214 反復: 1829; 完了率: 45.7%; 平均損失: 2.9139 反復: 1830; 完了率: 45.8%; 平均損失: 3.2797 反復: 1831; 完了率: 45.8%; 平均損失: 3.1116 反復: 1832; 完了率: 45.8%; 平均損失: 3.3238 反復: 1833; 完了率: 45.8%; 平均損失: 2.9779 反復: 1834; 完了率: 45.9%; 平均損失: 3.2327 反復: 1835; 完了率: 45.9%; 平均損失: 3.2836 反復: 1836; 完了率: 45.9%; 平均損失: 3.1328 反復: 1837; 完了率: 45.9%; 平均損失: 3.1456 反復: 1838; 完了率: 46.0%。平均損失: 3.3611 反復: 1839; 完了率: 46.0%。平均損失: 3.2231 反復: 1840; 完了率: 46.0%。平均損失: 3.5079 反復: 1841; 完了率: 46.0%。平均損失: 3.3690 反復: 1842; 完了率: 46.1%; 平均損失: 3.4282 反復: 1843; 完了率: 46.1%; 平均損失: 3.3327 反復: 1844; 完了率: 46.1%; 平均損失: 3.3303 反復: 1845; 完了率: 46.1%; 平均損失: 3.1288 反復: 1846; 完了率: 46.2%; 平均損失: 2.9459 反復: 1847; 完了率: 46.2%; 平均損失: 3.2612 反復: 1848; 完了率: 46.2%; 平均損失: 2.9897 反復: 1849; 完了率: 46.2%; 平均損失: 3.0847 反復: 1850; 完了率: 46.2%; 平均損失: 3.2543 反復: 1851; 完了率: 46.3%; 平均損失: 3.3284 反復: 1852; 完了率: 46.3%; 平均損失: 3.1476 反復: 1853; 完了率: 46.3%; 平均損失: 3.0918 反復: 1854; 完了率: 46.4%; 平均損失: 3.0953 反復: 1855; 完了率: 46.4%; 平均損失: 3.4184 反復: 1856; 完了率: 46.4%; 平均損失: 3.1987
Iteration: 1857; Percent complete: 46.4%; Average loss: 3.2077
Iteration: 1858; Percent complete: 46.5%; Average loss: 3.2104
Iteration: 1859; Percent complete: 46.5%; Average loss: 3.3018
Iteration: 1860; Percent complete: 46.5%; Average loss: 3.2334
Iteration: 1861; Percent complete: 46.5%; Average loss: 3.0063
Iteration: 1862; Percent complete: 46.6%; Average loss: 3.1470
Iteration: 1863; Percent complete: 46.6%; Average loss: 3.1010
Iteration: 1864; Percent complete: 46.6%; Average loss: 3.3399
Iteration: 1865; Percent complete: 46.6%; Average loss: 3.0798
Iteration: 1866; Percent complete: 46.7%; Average loss: 3.2170
Iteration: 1867; Percent complete: 46.7%; Average loss: 3.0612 反復: 1868年。完了率: 46.7%; 平均損失: 3.1479 反復: 1869; 完了率: 46.7%; 平均損失: 3.3403 反復: 1870; 完了率: 46.8%; 平均損失: 3.1551 反復: 1871; 完了率: 46.8%; 平均損失: 3.1093 反復: 1872; 完了率: 46.8%; 平均損失: 3.4572 反復: 1873; 完了率: 46.8%; 平均損失: 3.2220 反復: 1874; 完了率: 46.9%; 平均損失: 3.1767 反復: 1875; 完了率: 46.9%; 平均損失: 3.0934 反復: 1876; 完了率: 46.9%; 平均損失: 3.0525 反復: 1877; 完了率: 46.9%; 平均損失: 3.1703 反復: 1878; 完了率: 46.9%; 平均損失: 3.3739 反復: 1879; 完了率: 47.0%; 平均損失: 3.1407 反復: 1880; 完了率: 47.0%; 平均損失: 3.1277 反復: 1881; 完了率: 47.0%; 平均損失: 3.1388 反復: 1882; 完了率: 47.0%; 平均損失: 3.3663 反復: 1883; 完了率: 47.1%; 平均損失: 2.9790 反復: 1884; 完了率: 47.1%; 平均損失: 3.0398 反復: 1885; 完了率: 47.1%; 平均損失: 3.1797 反復: 1886; 完了率: 47.1%; 平均損失: 3.1260 反復: 1887; 完了率: 47.2%; 平均損失: 2.9043 反復: 1888; 完了率: 47.2%; 平均損失: 3.2288 反復: 1889; 完了率: 47.2%; 平均損失: 3.3846
Iteration: 1890; Percent complete: 47.2%; Average loss: 3.4445
Iteration: 1891; Percent complete: 47.3%; Average loss: 3.1920
Iteration: 1892; Percent complete: 47.3%; Average loss: 3.0827
Iteration: 1893; Percent complete: 47.3%; Average loss: 3.3378
Iteration: 1894; Percent complete: 47.3%; Average loss: 3.3243
Iteration: 1895; Percent complete: 47.4%; Average loss: 3.1799
Iteration: 1896; Percent complete: 47.4%; Average loss: 3.2246
Iteration: 1897; Percent complete: 47.4%; Average loss: 3.3089
Iteration: 1898; Percent complete: 47.4%; Average loss: 3.2095
Iteration: 1899; Percent complete: 47.5%; Average loss: 3.2982
Iteration: 1900; Percent complete: 47.5%; Average loss: 3.1905
Iteration: 1901; Percent complete: 47.5%; Average loss: 3.3258
Iteration: 1902; Percent complete: 47.5%; Average loss: 3.0206
Iteration: 1903; Percent complete: 47.6%; Average loss: 3.2043
Iteration: 1904; Percent complete: 47.6%; Average loss: 3.0434
Iteration: 1905; Percent complete: 47.6%; Average loss: 3.0641
Iteration: 1906; Percent complete: 47.6%; Average loss: 3.1440
Iteration: 1907; Percent complete: 47.7%; Average loss: 3.3448
Iteration: 1908; Percent complete: 47.7%; Average loss: 3.3288
Iteration: 1909; Percent complete: 47.7%; Average loss: 3.0154
Iteration: 1910; Percent complete: 47.8%; Average loss: 3.0019
Iteration: 1911; Percent complete: 47.8%; Average loss: 3.3511 反復: 1912年。完了率: 47.8%; 平均損失: 3.1009 反復: 1913; 完了率: 47.8%; 平均損失: 3.2037 反復: 1914; 完了率: 47.9%; 平均損失: 3.2009 反復: 1915; 完了率: 47.9%; 平均損失: 2.9993 反復: 1916; 完了率: 47.9%; 平均損失: 3.0834 反復: 1917; 完了率: 47.9%; 平均損失: 2.9184 反復: 1918; 完了率: 47.9%; 平均損失: 3.2017 反復: 1919; 完了率: 48.0%; 平均損失: 3.1598 反復: 1920; 完了率: 48.0%; 平均損失: 3.1256 反復: 1921; 完了率: 48.0%; 平均損失: 3.0708 反復: 1922; 完了率: 48.0%; 平均損失: 3.2170
Iteration: 1923; Percent complete: 48.1%; Average loss: 3.2664
Iteration: 1924; Percent complete: 48.1%; Average loss: 3.1711
Iteration: 1925; Percent complete: 48.1%; Average loss: 3.1226
Iteration: 1926; Percent complete: 48.1%; Average loss: 3.1643
Iteration: 1927; Percent complete: 48.2%; Average loss: 3.0150
Iteration: 1928; Percent complete: 48.2%; Average loss: 3.1769
Iteration: 1929; Percent complete: 48.2%; Average loss: 3.1137
Iteration: 1930; Percent complete: 48.2%; Average loss: 2.8844
Iteration: 1931; Percent complete: 48.3%; Average loss: 3.2283
Iteration: 1932; Percent complete: 48.3%; Average loss: 2.9927
Iteration: 1933; Percent complete: 48.3%; Average loss: 3.3062 反復: 1934 年。完了率: 48.4%; 平均損失: 3.0942 反復: 1935; 完了率: 48.4%; 平均損失: 3.3052 反復: 1936; 完了率: 48.4%; 平均損失: 3.1380 反復: 1937; 完了率: 48.4%; 平均損失: 3.0327 反復: 1938; 完了率: 48.4%; 平均損失: 3.2574 反復: 1939; 完了率: 48.5%; 平均損失: 3.0698 反復: 1940; 完了率: 48.5%; 平均損失: 3.2093 反復: 1941; 完了率: 48.5%; 平均損失: 3.0536 反復: 1942; 完了率: 48.5%; 平均損失: 3.2469 反復: 1943; 完了率: 48.6%; 平均損失: 3.1186 反復: 1944; 完了率: 48.6%; 平均損失: 2.9768
Iteration: 1945; Percent complete: 48.6%; Average loss: 3.1151
Iteration: 1946; Percent complete: 48.6%; Average loss: 3.3031
Iteration: 1947; Percent complete: 48.7%; Average loss: 3.2338
Iteration: 1948; Percent complete: 48.7%; Average loss: 3.1790
Iteration: 1949; Percent complete: 48.7%; Average loss: 3.3372
Iteration: 1950; Percent complete: 48.8%; Average loss: 3.2362
Iteration: 1951; Percent complete: 48.8%; Average loss: 3.0298
Iteration: 1952; Percent complete: 48.8%; Average loss: 3.2604
Iteration: 1953; Percent complete: 48.8%; Average loss: 3.1262
Iteration: 1954; Percent complete: 48.9%; Average loss: 3.0725
Iteration: 1955; Percent complete: 48.9%; Average loss: 2.9257
Iteration: 1956; Percent complete: 48.9%; Average loss: 3.1411
Iteration: 1957; Percent complete: 48.9%; Average loss: 2.9018
Iteration: 1958; Percent complete: 48.9%; Average loss: 3.3835
Iteration: 1959; Percent complete: 49.0%; Average loss: 3.2643
Iteration: 1960; Percent complete: 49.0%; Average loss: 3.4035
Iteration: 1961; Percent complete: 49.0%; Average loss: 2.9070
Iteration: 1962; Percent complete: 49.0%; Average loss: 3.1497
Iteration: 1963; Percent complete: 49.1%; Average loss: 3.3099
Iteration: 1964; Percent complete: 49.1%; Average loss: 2.9930
Iteration: 1965; Percent complete: 49.1%; Average loss: 3.0465
Iteration: 1966; Percent complete: 49.1%; Average loss: 2.9187 反復: 1967 年。完了率: 49.2%; 平均損失: 3.2372 反復: 1968; 完了率: 49.2%; 平均損失: 2.6721 反復: 1969; 完了率: 49.2%; 平均損失: 2.8061 反復: 1970; 完了率: 49.2%; 平均損失: 3.1426 反復: 1971; 完了率: 49.3%; 平均損失: 3.2118 反復: 1972; 完了率: 49.3%; 平均損失: 2.8236 反復: 1973; 完了率: 49.3%; 平均損失: 2.9591 反復: 1974; 完了率: 49.4%; 平均損失: 3.3194 反復: 1975; 完了率: 49.4%; 平均損失: 2.8094 反復: 1976; 完了率: 49.4%; 平均損失: 3.3163 反復: 1977 年。完了率: 49.4%; 平均損失: 2.9812 反復: 1978 年。完了率: 49.5%; 平均損失: 2.9714 反復: 1979; 完了率: 49.5%; 平均損失: 3.1695 反復: 1980; 完了率: 49.5%; 平均損失: 3.1524 反復: 1981; 完了率: 49.5%; 平均損失: 3.3003 反復: 1982; 完了率: 49.5%; 平均損失: 3.2046 反復: 1983; 完了率: 49.6%; 平均損失: 3.3633 反復: 1984; 完了率: 49.6%; 平均損失: 3.0855 反復: 1985; 完了率: 49.6%; 平均損失: 3.2255 反復: 1986; 完了率: 49.6%; 平均損失: 3.3823 反復: 1987; 完了率: 49.7%; 平均損失: 3.0410 反復: 1988; 完了率: 49.7%; 平均損失: 3.3700
Iteration: 1989; Percent complete: 49.7%; Average loss: 3.1323
Iteration: 1990; Percent complete: 49.8%; Average loss: 3.1176
Iteration: 1991; Percent complete: 49.8%; Average loss: 3.2359
Iteration: 1992; Percent complete: 49.8%; Average loss: 3.0791
Iteration: 1993; Percent complete: 49.8%; Average loss: 3.3222
Iteration: 1994; Percent complete: 49.9%; Average loss: 3.2944
Iteration: 1995; Percent complete: 49.9%; Average loss: 3.1204
Iteration: 1996; Percent complete: 49.9%; Average loss: 2.9556
Iteration: 1997; Percent complete: 49.9%; Average loss: 3.2455
Iteration: 1998; Percent complete: 50.0%; Average loss: 2.9874
Iteration: 1999; Percent complete: 50.0%; Average loss: 2.9447 反復: 2000; 完了率: 50.0%; 平均損失: 3.1913 反復: 2001; 完了率: 50.0%; 平均損失: 3.1197 反復: 2002; 完了率: 50.0%; 平均損失: 3.2235 反復: 2003; 完了率: 50.1%; 平均損失: 3.0875 反復: 2004; 完了率: 50.1%; 平均損失: 3.1316 反復: 2005; 完了率: 50.1%; 平均損失: 2.8627 反復: 2006; 完了率: 50.1%; 平均損失: 2.9953 反復: 2007; 完了率: 50.2%; 平均損失: 3.1586 イテレーション: 2008; 完了率: 50.2%; 平均損失: 3.2558 反復: 2009; 完了率: 50.2%; 平均損失: 3.0883 反復: 2010; 完了率: 50.2%; 平均損失: 2.8711 反復: 2011; 完了率: 50.3%; 平均損失: 2.9704 反復: 2012; 完了率: 50.3%; 平均損失: 3.2994 反復: 2013; 完了率: 50.3%; 平均損失: 3.0036 反復: 2014; 完了率: 50.3%; 平均損失: 3.1355 イテレーション: 2015; 完了率: 50.4%; 平均損失: 3.0174 イテレーション: 2016; 完了率: 50.4%; 平均損失: 3.2147 イテレーション: 2017; 完了率: 50.4%; 平均損失: 3.2793 イテレーション: 2018; 完了率: 50.4%; 平均損失: 3.0795 イテレーション: 2019; 完了率: 50.5%; 平均損失: 3.2669 イテレーション: 2020; 完了率: 50.5%; 平均損失: 3.0951 イテレーション: 2021; 完了率: 50.5%; 平均損失: 3.1640
Iteration: 2022; Percent complete: 50.5%; Average loss: 3.1359
Iteration: 2023; Percent complete: 50.6%; Average loss: 3.0758
Iteration: 2024; Percent complete: 50.6%; Average loss: 3.2728
Iteration: 2025; Percent complete: 50.6%; Average loss: 2.9493
Iteration: 2026; Percent complete: 50.6%; Average loss: 3.2741
Iteration: 2027; Percent complete: 50.7%; Average loss: 2.9232
Iteration: 2028; Percent complete: 50.7%; Average loss: 3.2270
Iteration: 2029; Percent complete: 50.7%; Average loss: 3.3822
Iteration: 2030; Percent complete: 50.7%; Average loss: 3.5319
Iteration: 2031; Percent complete: 50.8%; Average loss: 3.0255
Iteration: 2032; Percent complete: 50.8%; Average loss: 3.4231 反復: 2033; 完了率: 50.8%; 平均損失: 3.1885 反復: 2034; 完了率: 50.8%; 平均損失: 2.9595 反復: 2035; 完了率: 50.9%; 平均損失: 3.2476 反復: 2036; 完了率: 50.9%; 平均損失: 3.3287 反復: 2037; 完了率: 50.9%; 平均損失: 3.1836 反復: 2038; 完了率: 50.9%; 平均損失: 3.7879 反復: 2039; 完了率: 51.0%。平均損失: 3.1286 反復: 2040; 完了率: 51.0%。平均損失: 3.2141 反復: 2041; 完了率: 51.0%。平均損失: 2.9714 反復: 2042; 完了率: 51.0%。平均損失: 3.2823 反復: 2043; 完了率: 51.1%; 平均損失: 3.3096 反復: 2044; 完了率: 51.1%; 平均損失: 3.1415 反復: 2045; 完了率: 51.1%; 平均損失: 3.1211 反復: 2046; 完了率: 51.1%; 平均損失: 3.3252 反復: 2047; 完了率: 51.2%; 平均損失: 3.1504 反復: 2048; 完了率: 51.2%; 平均損失: 3.0149 反復: 2049; 完了率: 51.2%; 平均損失: 3.1656 反復: 2050; 完了率: 51.2%; 平均損失: 3.6852 反復: 2051; 完了率: 51.3%; 平均損失: 3.1873 反復: 2052; 完了率: 51.3%; 平均損失: 2.8356 反復: 2053; 完了率: 51.3%; 平均損失: 3.1772 反復: 2054; 完了率: 51.3%; 平均損失: 3.2623
Iteration: 2055; Percent complete: 51.4%; Average loss: 3.1892
Iteration: 2056; Percent complete: 51.4%; Average loss: 3.2838
Iteration: 2057; Percent complete: 51.4%; Average loss: 2.8205
Iteration: 2058; Percent complete: 51.4%; Average loss: 3.0023
Iteration: 2059; Percent complete: 51.5%; Average loss: 3.2671
Iteration: 2060; Percent complete: 51.5%; Average loss: 3.1093
Iteration: 2061; Percent complete: 51.5%; Average loss: 3.1558
Iteration: 2062; Percent complete: 51.5%; Average loss: 3.0153
Iteration: 2063; Percent complete: 51.6%; Average loss: 3.2670
Iteration: 2064; Percent complete: 51.6%; Average loss: 3.0485
Iteration: 2065; Percent complete: 51.6%; Average loss: 3.0730 反復: 2066; 完了率: 51.6%; 平均損失: 3.1033 反復: 2067; 完了率: 51.7%; 平均損失: 3.2239 反復: 2068; 完了率: 51.7%; 平均損失: 3.4485 反復: 2069; 完了率: 51.7%; 平均損失: 3.0178 反復: 2070; 完了率: 51.7%; 平均損失: 3.0401 反復: 2071; 完了率: 51.8%; 平均損失: 3.0763 反復: 2072; 完了率: 51.8%; 平均損失: 3.2098 反復: 2073; 完了率: 51.8%; 平均損失: 3.0434 反復: 2074; 完了率: 51.8%; 平均損失: 3.3423 反復: 2075; 完了率: 51.9%; 平均損失: 3.4111 反復: 2076; 完了率: 51.9%; 平均損失: 3.1914 反復: 2077; 完了率: 51.9%; 平均損失: 3.1254 反復: 2078; 完了率: 51.9%; 平均損失: 3.2225 反復: 2079; 完了率: 52.0%; 平均損失: 3.0064 反復: 2080; 完了率: 52.0%; 平均損失: 3.4989 反復: 2081; 完了率: 52.0%; 平均損失: 3.2836 反復: 2082; 完了率: 52.0%; 平均損失: 3.0343 反復: 2083; 完了率: 52.1%; 平均損失: 3.1080 反復: 2084; 完了率: 52.1%; 平均損失: 3.0967 反復: 2085; 完了率: 52.1%; 平均損失: 3.1937 反復: 2086; 完了率: 52.1%; 平均損失: 3.0576 反復: 2087; 完了率: 52.2%; 平均損失: 3.1921
Iteration: 2088; Percent complete: 52.2%; Average loss: 3.0176
Iteration: 2089; Percent complete: 52.2%; Average loss: 3.0040
Iteration: 2090; Percent complete: 52.2%; Average loss: 3.0399
Iteration: 2091; Percent complete: 52.3%; Average loss: 3.1300
Iteration: 2092; Percent complete: 52.3%; Average loss: 3.3584
Iteration: 2093; Percent complete: 52.3%; Average loss: 3.0511
Iteration: 2094; Percent complete: 52.3%; Average loss: 3.0364
Iteration: 2095; Percent complete: 52.4%; Average loss: 3.1076
Iteration: 2096; Percent complete: 52.4%; Average loss: 3.2046
Iteration: 2097; Percent complete: 52.4%; Average loss: 3.0780
Iteration: 2098; Percent complete: 52.4%; Average loss: 3.1273 反復: 2099; 完了率: 52.5%; 平均損失: 3.2299 反復: 2100; 完了率: 52.5%; 平均損失: 3.1248 反復: 2101; 完了率: 52.5%; 平均損失: 3.1288 反復: 2102; 完了率: 52.5%; 平均損失: 3.3916 反復: 2103; 完了率: 52.6%; 平均損失: 3.1079 反復: 2104; 完了率: 52.6%; 平均損失: 3.0958 反復: 2105; 完了率: 52.6%; 平均損失: 3.1407 反復: 2106; 完了率: 52.6%; 平均損失: 2.9247 反復: 2107; 完了率: 52.7%; 平均損失: 3.1562 反復: 2108; 完了率: 52.7%; 平均損失: 3.1241 反復: 2109; 完了率: 52.7%; 平均損失: 3.2056 反復: 2110; 完了率: 52.8%; 平均損失: 3.1744 反復: 2111; 完了率: 52.8%; 平均損失: 3.0260 反復: 2112; 完了率: 52.8%; 平均損失: 3.1090 反復: 2113; 完了率: 52.8%; 平均損失: 2.7897 反復: 2114; 完了率: 52.8%; 平均損失: 3.1030 反復: 2115; 完了率: 52.9%; 平均損失: 3.3524 反復: 2116; 完了率: 52.9%; 平均損失: 2.9973 反復: 2117; 完了率: 52.9%; 平均損失: 3.0776 反復: 2118; 完了率: 52.9%; 平均損失: 3.0282 反復: 2119; 完了率: 53.0%; 平均損失: 3.3184 反復: 2120; 完了率: 53.0%; 平均損失: 2.9256 反復: 2121; 完了率: 53.0%; 平均損失: 3.0975 反復: 2122; 完了率: 53.0%; 平均損失: 3.0405 反復: 2123; 完了率: 53.1%; 平均損失: 3.1692 反復: 2124; 完了率: 53.1%; 平均損失: 3.0204 反復: 2125; 完了率: 53.1%; 平均損失: 3.1578 反復: 2126; 完了率: 53.1%; 平均損失: 3.1415 反復: 2127; 完了率: 53.2%; 平均損失: 3.0937 反復: 2128; 完了率: 53.2%; 平均損失: 2.9920 反復: 2129; 完了率: 53.2%; 平均損失: 3.0628 反復: 2130; 完了率: 53.2%; 平均損失: 3.1844 反復: 2131; 完了率: 53.3%; 平均損失: 3.1292
Iteration: 2132; Percent complete: 53.3%; Average loss: 3.1093
Iteration: 2133; Percent complete: 53.3%; Average loss: 3.3065
Iteration: 2134; Percent complete: 53.3%; Average loss: 3.0798
Iteration: 2135; Percent complete: 53.4%; Average loss: 3.1241
Iteration: 2136; Percent complete: 53.4%; Average loss: 2.8985
Iteration: 2137; Percent complete: 53.4%; Average loss: 2.9257
Iteration: 2138; Percent complete: 53.4%; Average loss: 3.0317
Iteration: 2139; Percent complete: 53.5%; Average loss: 3.0434
Iteration: 2140; Percent complete: 53.5%; Average loss: 2.9261
Iteration: 2141; Percent complete: 53.5%; Average loss: 3.2701
Iteration: 2142; Percent complete: 53.5%; Average loss: 3.1128
Iteration: 2143; Percent complete: 53.6%; Average loss: 3.3022
Iteration: 2144; Percent complete: 53.6%; Average loss: 2.9923
Iteration: 2145; Percent complete: 53.6%; Average loss: 3.0311
Iteration: 2146; Percent complete: 53.6%; Average loss: 3.0643
Iteration: 2147; Percent complete: 53.7%; Average loss: 3.2816
Iteration: 2148; Percent complete: 53.7%; Average loss: 3.3363
Iteration: 2149; Percent complete: 53.7%; Average loss: 3.1957
Iteration: 2150; Percent complete: 53.8%; Average loss: 2.7525
Iteration: 2151; Percent complete: 53.8%; Average loss: 3.0678
Iteration: 2152; Percent complete: 53.8%; Average loss: 2.9848
Iteration: 2153; Percent complete: 53.8%; Average loss: 3.0898 反復: 2154; 完了率: 53.8%; 平均損失: 2.8468 反復: 2155; 完了率: 53.9%; 平均損失: 3.3032 反復: 2156; 完了率: 53.9%; 平均損失: 3.1979 反復: 2157; 完了率: 53.9%; 平均損失: 3.0813 反復: 2158; 完了率: 53.9%; 平均損失: 3.4758 反復: 2159; 完了率: 54.0%; 平均損失: 3.0926 反復: 2160; 完了率: 54.0%; 平均損失: 2.9867 反復: 2161; 完了率: 54.0%; 平均損失: 3.3208 反復: 2162; 完了率: 54.0%; 平均損失: 3.1586 反復: 2163; 完了率: 54.1%; 平均損失: 3.0038 反復: 2164; 完了率: 54.1%; 平均損失: 2.8986 反復: 2165; 完了率: 54.1%; 平均損失: 3.0403 反復: 2166; 完了率: 54.1%; 平均損失: 3.3206 反復: 2167; 完了率: 54.2%; 平均損失: 3.1292 反復: 2168; 完了率: 54.2%; 平均損失: 3.0891 反復: 2169; 完了率: 54.2%; 平均損失: 2.9648 反復: 2170; 完了率: 54.2%; 平均損失: 3.0805 反復: 2171; 完了率: 54.3%; 平均損失: 3.2816 反復: 2172; 完了率: 54.3%; 平均損失: 3.1796 反復: 2173; 完了率: 54.3%; 平均損失: 3.1103 反復: 2174; 完了率: 54.4%; 平均損失: 3.1702 反復: 2175; 完了率: 54.4%; 平均損失: 2.8795
Iteration: 2176; Percent complete: 54.4%; Average loss: 3.0093
Iteration: 2177; Percent complete: 54.4%; Average loss: 3.3178
Iteration: 2178; Percent complete: 54.4%; Average loss: 3.0768
Iteration: 2179; Percent complete: 54.5%; Average loss: 3.1970
Iteration: 2180; Percent complete: 54.5%; Average loss: 3.0387
Iteration: 2181; Percent complete: 54.5%; Average loss: 3.2550
Iteration: 2182; Percent complete: 54.5%; Average loss: 3.0971
Iteration: 2183; Percent complete: 54.6%; Average loss: 3.1243
Iteration: 2184; Percent complete: 54.6%; Average loss: 3.2497
Iteration: 2185; Percent complete: 54.6%; Average loss: 3.2632
Iteration: 2186; Percent complete: 54.6%; Average loss: 3.1339 反復: 2187; 完了率: 54.7%; 平均損失: 2.9902 反復: 2188; 完了率: 54.7%; 平均損失: 2.9092 反復: 2189; 完了率: 54.7%; 平均損失: 3.3322 反復: 2190; 完了率: 54.8%; 平均損失: 3.0820 反復: 2191; 完了率: 54.8%; 平均損失: 3.2697 反復: 2192; 完了率: 54.8%; 平均損失: 3.0746 反復: 2193; 完了率: 54.8%; 平均損失: 3.1129 反復: 2194; 完了率: 54.9%; 平均損失: 3.3296 反復: 2195; 完了率: 54.9%; 平均損失: 3.0637 反復: 2196; 完了率: 54.9%; 平均損失: 2.9717 反復: 2197; 完了率: 54.9%; 平均損失: 3.1083 反復: 2198; 完了率: 54.9%; 平均損失: 2.8568 反復: 2199; 完了率: 55.0%; 平均損失: 3.1392 反復: 2200; 完了率: 55.0%; 平均損失: 2.9915 反復: 2201; 完了率: 55.0%; 平均損失: 3.3001 反復: 2202; 完了率: 55.0%; 平均損失: 3.1752 反復: 2203; 完了率: 55.1%; 平均損失: 3.1891 反復: 2204; 完了率: 55.1%; 平均損失: 3.1236 反復: 2205; 完了率: 55.1%; 平均損失: 3.0967 反復: 2206; 完了率: 55.1%; 平均損失: 3.3153 反復: 2207; 完了率: 55.2%; 平均損失: 3.1961 反復: 2208; 完了率: 55.2%; 平均損失: 3.0584
Iteration: 2209; Percent complete: 55.2%; Average loss: 3.1995
Iteration: 2210; Percent complete: 55.2%; Average loss: 3.4049
Iteration: 2211; Percent complete: 55.3%; Average loss: 3.2051
Iteration: 2212; Percent complete: 55.3%; Average loss: 2.9717
Iteration: 2213; Percent complete: 55.3%; Average loss: 3.0911
Iteration: 2214; Percent complete: 55.4%; Average loss: 3.2037
Iteration: 2215; Percent complete: 55.4%; Average loss: 3.3287
Iteration: 2216; Percent complete: 55.4%; Average loss: 3.1016
Iteration: 2217; Percent complete: 55.4%; Average loss: 3.2704
Iteration: 2218; Percent complete: 55.5%; Average loss: 3.3376
Iteration: 2219; Percent complete: 55.5%; Average loss: 3.3878
Iteration: 2220; Percent complete: 55.5%; Average loss: 3.0400
Iteration: 2221; Percent complete: 55.5%; Average loss: 3.2771
Iteration: 2222; Percent complete: 55.5%; Average loss: 3.2196
Iteration: 2223; Percent complete: 55.6%; Average loss: 3.1258
Iteration: 2224; Percent complete: 55.6%; Average loss: 2.9873
Iteration: 2225; Percent complete: 55.6%; Average loss: 2.8874
Iteration: 2226; Percent complete: 55.6%; Average loss: 3.0194
Iteration: 2227; Percent complete: 55.7%; Average loss: 3.2725
Iteration: 2228; Percent complete: 55.7%; Average loss: 3.3364
Iteration: 2229; Percent complete: 55.7%; Average loss: 3.1921
Iteration: 2230; Percent complete: 55.8%; Average loss: 3.2070 反復: 2231; 完了率: 55.8%; 平均損失: 2.9679 反復: 2232; 完了率: 55.8%; 平均損失: 3.0112 反復: 2233; 完了率: 55.8%; 平均損失: 3.2855 反復: 2234; 完了率: 55.9%; 平均損失: 3.1391 反復: 2235; 完了率: 55.9%; 平均損失: 2.9632 反復: 2236; 完了率: 55.9%; 平均損失: 3.0382 反復: 2237; 完了率: 55.9%; 平均損失: 3.0145 反復: 2238; 完了率: 56.0%; 平均損失: 3.0027 反復: 2239; 完了率: 56.0%; 平均損失: 2.9812 反復: 2240; 完了率: 56.0%; 平均損失: 2.9918 反復: 2241; 完了率: 56.0%; 平均損失: 3.0770
Iteration: 2242; Percent complete: 56.0%; Average loss: 3.0492
Iteration: 2243; Percent complete: 56.1%; Average loss: 2.9890
Iteration: 2244; Percent complete: 56.1%; Average loss: 3.1056
Iteration: 2245; Percent complete: 56.1%; Average loss: 3.2640
Iteration: 2246; Percent complete: 56.1%; Average loss: 3.0797
Iteration: 2247; Percent complete: 56.2%; Average loss: 3.4774
Iteration: 2248; Percent complete: 56.2%; Average loss: 3.0210
Iteration: 2249; Percent complete: 56.2%; Average loss: 3.1366
Iteration: 2250; Percent complete: 56.2%; Average loss: 2.9125
Iteration: 2251; Percent complete: 56.3%; Average loss: 3.1617
Iteration: 2252; Percent complete: 56.3%; Average loss: 3.1148 反復: 2253; 完了率: 56.3%; 平均損失: 3.0788 反復: 2254; 完了率: 56.4%; 平均損失: 3.1774 反復: 2255; 完了率: 56.4%; 平均損失: 2.9591 反復: 2256; 完了率: 56.4%; 平均損失: 3.3164 反復: 2257; 完了率: 56.4%; 平均損失: 2.9916 反復: 2258; 完了率: 56.5%; 平均損失: 3.3186 反復: 2259; 完了率: 56.5%; 平均損失: 3.1728 反復: 2260; 完了率: 56.5%; 平均損失: 2.9456 反復: 2261; 完了率: 56.5%; 平均損失: 3.0772 反復: 2262; 完了率: 56.5%; 平均損失: 2.9775 反復: 2263; 完了率: 56.6%; 平均損失: 2.8061
Iteration: 2264; Percent complete: 56.6%; Average loss: 2.8692
Iteration: 2265; Percent complete: 56.6%; Average loss: 2.7864
Iteration: 2266; Percent complete: 56.6%; Average loss: 3.1633
Iteration: 2267; Percent complete: 56.7%; Average loss: 3.0564
Iteration: 2268; Percent complete: 56.7%; Average loss: 2.8535
Iteration: 2269; Percent complete: 56.7%; Average loss: 3.1145
Iteration: 2270; Percent complete: 56.8%; Average loss: 2.7544
Iteration: 2271; Percent complete: 56.8%; Average loss: 3.2477
Iteration: 2272; Percent complete: 56.8%; Average loss: 2.8888
Iteration: 2273; Percent complete: 56.8%; Average loss: 3.0928
Iteration: 2274; Percent complete: 56.9%; Average loss: 2.9278
Iteration: 2275; Percent complete: 56.9%; Average loss: 3.0437
Iteration: 2276; Percent complete: 56.9%; Average loss: 3.1166
Iteration: 2277; Percent complete: 56.9%; Average loss: 3.0004
Iteration: 2278; Percent complete: 57.0%; Average loss: 3.1160
Iteration: 2279; Percent complete: 57.0%; Average loss: 3.2362
Iteration: 2280; Percent complete: 57.0%; Average loss: 3.1360
Iteration: 2281; Percent complete: 57.0%; Average loss: 3.0532
Iteration: 2282; Percent complete: 57.0%; Average loss: 3.2955
Iteration: 2283; Percent complete: 57.1%; Average loss: 3.1674
Iteration: 2284; Percent complete: 57.1%; Average loss: 3.2263
Iteration: 2285; Percent complete: 57.1%; Average loss: 3.0422 反復: 2286; 完了率: 57.1%; 平均損失: 3.1102 反復: 2287; 完了率: 57.2%; 平均損失: 3.0151 反復: 2288; 完了率: 57.2%; 平均損失: 2.9713 反復: 2289; 完了率: 57.2%; 平均損失: 2.9456 反復: 2290; 完了率: 57.2%; 平均損失: 2.9819 反復: 2291; 完了率: 57.3%; 平均損失: 2.8250 反復: 2292; 完了率: 57.3%; 平均損失: 3.0092 反復: 2293; 完了率: 57.3%; 平均損失: 3.1017 反復: 2294; 完了率: 57.4%; 平均損失: 3.0883 反復: 2295; 完了率: 57.4%; 平均損失: 2.9398 反復: 2296; 完了率: 57.4%; 平均損失: 3.0450
Iteration: 2297; Percent complete: 57.4%; Average loss: 2.9996
Iteration: 2298; Percent complete: 57.5%; Average loss: 3.1310
Iteration: 2299; Percent complete: 57.5%; Average loss: 2.8010
Iteration: 2300; Percent complete: 57.5%; Average loss: 2.8593
Iteration: 2301; Percent complete: 57.5%; Average loss: 3.1683
Iteration: 2302; Percent complete: 57.6%; Average loss: 3.0818
Iteration: 2303; Percent complete: 57.6%; Average loss: 3.5843
Iteration: 2304; Percent complete: 57.6%; Average loss: 3.1267
Iteration: 2305; Percent complete: 57.6%; Average loss: 3.0752
Iteration: 2306; Percent complete: 57.6%; Average loss: 3.3129
Iteration: 2307; Percent complete: 57.7%; Average loss: 2.8716 反復: 2308; 完了率: 57.7%; 平均損失: 3.1112 反復: 2309; 完了率: 57.7%; 平均損失: 2.9868 反復: 2310; 完了率: 57.8%; 平均損失: 3.0652 反復: 2311; 完了率: 57.8%; 平均損失: 3.0736 反復: 2312; 完了率: 57.8%; 平均損失: 3.1129 反復: 2313; 完了率: 57.8%; 平均損失: 2.9390 反復: 2314; 完了率: 57.9%; 平均損失: 2.8676 反復: 2315; 完了率: 57.9%; 平均損失: 3.0772 反復: 2316; 完了率: 57.9%; 平均損失: 3.0162 反復: 2317; 完了率: 57.9%; 平均損失: 3.3064 反復: 2318; 完了率: 58.0%; 平均損失: 3.0727 反復: 2319; 完了率: 58.0%; 平均損失: 3.0232 反復: 2320; 完了率: 58.0%; 平均損失: 2.9897 反復: 2321; 完了率: 58.0%; 平均損失: 3.1535 反復: 2322; 完了率: 58.1%; 平均損失: 3.0210 反復: 2323; 完了率: 58.1%; 平均損失: 3.2153 反復: 2324; 完了率: 58.1%; 平均損失: 2.9442 反復: 2325; 完了率: 58.1%; 平均損失: 3.1183 反復: 2326; 完了率: 58.1%; 平均損失: 3.0078 反復: 2327; 完了率: 58.2%; 平均損失: 3.0243 反復: 2328; 完了率: 58.2%; 平均損失: 3.0384 反復: 2329; 完了率: 58.2%; 平均損失: 2.9314 反復: 2330; 完了率: 58.2%; 平均損失: 3.0747 反復: 2331; 完了率: 58.3%; 平均損失: 3.3255 反復: 2332; 完了率: 58.3%; 平均損失: 3.1679 反復: 2333; 完了率: 58.3%; 平均損失: 3.0622 反復: 2334; 完了率: 58.4%; 平均損失: 2.8509 反復: 2335; 完了率: 58.4%; 平均損失: 3.1293 反復: 2336; 完了率: 58.4%; 平均損失: 3.1161 反復: 2337; 完了率: 58.4%; 平均損失: 3.0836 反復: 2338; 完了率: 58.5%; 平均損失: 3.0401 反復: 2339; 完了率: 58.5%; 平均損失: 3.1791 反復: 2340; 完了率: 58.5%; 平均損失: 3.0428
Iteration: 2341; Percent complete: 58.5%; Average loss: 3.0045
Iteration: 2342; Percent complete: 58.6%; Average loss: 3.1148
Iteration: 2343; Percent complete: 58.6%; Average loss: 3.1060
Iteration: 2344; Percent complete: 58.6%; Average loss: 2.9190
Iteration: 2345; Percent complete: 58.6%; Average loss: 3.0762
Iteration: 2346; Percent complete: 58.7%; Average loss: 3.2960
Iteration: 2347; Percent complete: 58.7%; Average loss: 3.0610
Iteration: 2348; Percent complete: 58.7%; Average loss: 2.9436
Iteration: 2349; Percent complete: 58.7%; Average loss: 3.0218
Iteration: 2350; Percent complete: 58.8%; Average loss: 3.1972
Iteration: 2351; Percent complete: 58.8%; Average loss: 2.9246 反復: 2352; 完了率: 58.8%; 平均損失: 2.9806 反復: 2353; 完了率: 58.8%; 平均損失: 2.9844 反復: 2354; 完了率: 58.9%; 平均損失: 3.0761 反復: 2355; 完了率: 58.9%; 平均損失: 3.1563 反復: 2356; 完了率: 58.9%; 平均損失: 3.1000 反復: 2357; 完了率: 58.9%; 平均損失: 3.0744 反復: 2358; 完了率: 59.0%; 平均損失: 3.3202 反復: 2359; 完了率: 59.0%; 平均損失: 3.1427 反復: 2360; 完了率: 59.0%; 平均損失: 2.8752 反復: 2361; 完了率: 59.0%; 平均損失: 2.9509 反復: 2362; 完了率: 59.1%; 平均損失: 3.3466
Iteration: 2363; Percent complete: 59.1%; Average loss: 3.0502
Iteration: 2364; Percent complete: 59.1%; Average loss: 3.2602
Iteration: 2365; Percent complete: 59.1%; Average loss: 3.2599
Iteration: 2366; Percent complete: 59.2%; Average loss: 3.2664
Iteration: 2367; Percent complete: 59.2%; Average loss: 3.0201
Iteration: 2368; Percent complete: 59.2%; Average loss: 3.0388
Iteration: 2369; Percent complete: 59.2%; Average loss: 3.1378
Iteration: 2370; Percent complete: 59.2%; Average loss: 3.0384
Iteration: 2371; Percent complete: 59.3%; Average loss: 3.0904
Iteration: 2372; Percent complete: 59.3%; Average loss: 2.9159
Iteration: 2373; Percent complete: 59.3%; Average loss: 2.9554 反復: 2374; 完了率: 59.4%; 平均損失: 2.9580 反復: 2375; 完了率: 59.4%; 平均損失: 3.1549 反復: 2376; 完了率: 59.4%; 平均損失: 2.9553 反復: 2377; 完了率: 59.4%; 平均損失: 3.1021 反復: 2378; 完了率: 59.5%; 平均損失: 3.0800 反復: 2379; 完了率: 59.5%; 平均損失: 2.9453 反復: 2380; 完了率: 59.5%; 平均損失: 3.1070 反復: 2381; 完了率: 59.5%; 平均損失: 3.0925 反復: 2382; 完了率: 59.6%; 平均損失: 3.3733 反復: 2383; 完了率: 59.6%; 平均損失: 3.1546 反復: 2384; 完了率: 59.6%; 平均損失: 2.8652 反復: 2385; 完了率: 59.6%; 平均損失: 3.2393 反復: 2386; 完了率: 59.7%; 平均損失: 3.2042 反復: 2387; 完了率: 59.7%; 平均損失: 2.8791 反復: 2388; 完了率: 59.7%; 平均損失: 2.9418 反復: 2389; 完了率: 59.7%; 平均損失: 2.8363 反復: 2390; 完了率: 59.8%; 平均損失: 2.9549 反復: 2391; 完了率: 59.8%; 平均損失: 3.2512 反復: 2392; 完了率: 59.8%; 平均損失: 3.1164 反復: 2393; 完了率: 59.8%; 平均損失: 3.2587 反復: 2394; 完了率: 59.9%; 平均損失: 2.9347 反復: 2395; 完了率: 59.9%; 平均損失: 3.0743
Iteration: 2396; Percent complete: 59.9%; Average loss: 3.1110
Iteration: 2397; Percent complete: 59.9%; Average loss: 2.8222
Iteration: 2398; Percent complete: 60.0%; Average loss: 3.1630
Iteration: 2399; Percent complete: 60.0%; Average loss: 2.8565
Iteration: 2400; Percent complete: 60.0%; Average loss: 2.6509
Iteration: 2401; Percent complete: 60.0%; Average loss: 2.9225
Iteration: 2402; Percent complete: 60.1%; Average loss: 2.8848
Iteration: 2403; Percent complete: 60.1%; Average loss: 2.7846
Iteration: 2404; Percent complete: 60.1%; Average loss: 2.7785
Iteration: 2405; Percent complete: 60.1%; Average loss: 3.2029
Iteration: 2406; Percent complete: 60.2%; Average loss: 3.1734
Iteration: 2407; Percent complete: 60.2%; Average loss: 3.0964
Iteration: 2408; Percent complete: 60.2%; Average loss: 3.0109
Iteration: 2409; Percent complete: 60.2%; Average loss: 3.1598
Iteration: 2410; Percent complete: 60.2%; Average loss: 2.9957
Iteration: 2411; Percent complete: 60.3%; Average loss: 2.9907
Iteration: 2412; Percent complete: 60.3%; Average loss: 3.1935
Iteration: 2413; Percent complete: 60.3%; Average loss: 3.2891
Iteration: 2414; Percent complete: 60.4%; Average loss: 3.3107
Iteration: 2415; Percent complete: 60.4%; Average loss: 3.1740
Iteration: 2416; Percent complete: 60.4%; Average loss: 3.1878
Iteration: 2417; Percent complete: 60.4%; Average loss: 3.1262 反復: 2418; 完了率: 60.5%; 平均損失: 3.1831 反復: 2419; 完了率: 60.5%; 平均損失: 3.2178 反復: 2420; 完了率: 60.5%; 平均損失: 3.1775 反復: 2421; 完了率: 60.5%; 平均損失: 3.1689 反復: 2422; 完了率: 60.6%; 平均損失: 2.9597 反復: 2423; 完了率: 60.6%; 平均損失: 3.0766 反復: 2424; 完了率: 60.6%; 平均損失: 2.8048 反復: 2425; 完了率: 60.6%; 平均損失: 2.9344 反復: 2426; 完了率: 60.7%; 平均損失: 2.9793 反復: 2427; 完了率: 60.7%; 平均損失: 2.9215 反復: 2428; 完了率: 60.7%; 平均損失: 2.8392
Iteration: 2429; Percent complete: 60.7%; Average loss: 3.1669
Iteration: 2430; Percent complete: 60.8%; Average loss: 3.0947
Iteration: 2431; Percent complete: 60.8%; Average loss: 2.8993
Iteration: 2432; Percent complete: 60.8%; Average loss: 3.0709
Iteration: 2433; Percent complete: 60.8%; Average loss: 2.9329
Iteration: 2434; Percent complete: 60.9%; Average loss: 3.0405
Iteration: 2435; Percent complete: 60.9%; Average loss: 3.0742
Iteration: 2436; Percent complete: 60.9%; Average loss: 2.9715
Iteration: 2437; Percent complete: 60.9%; Average loss: 3.1307
Iteration: 2438; Percent complete: 61.0%; Average loss: 2.8098
Iteration: 2439; Percent complete: 61.0%; Average loss: 2.8850 反復: 2440; 完了率: 61.0%。平均損失: 2.8758 反復: 2441; 完了率: 61.0%。平均損失: 2.8646 反復: 2442; 完了率: 61.1%; 平均損失: 2.9402 反復: 2443; 完了率: 61.1%; 平均損失: 2.9933 反復: 2444; 完了率: 61.1%; 平均損失: 3.0753 反復: 2445; 完了率: 61.1%; 平均損失: 2.9071 反復: 2446; 完了率: 61.2%; 平均損失: 3.0659 反復: 2447; 完了率: 61.2%; 平均損失: 3.0112 反復: 2448; 完了率: 61.2%; 平均損失: 2.8507 反復: 2449; 完了率: 61.2%; 平均損失: 2.8009 反復: 2450; 完了率: 61.3%; 平均損失: 2.9761
Iteration: 2451; Percent complete: 61.3%; Average loss: 2.8785
Iteration: 2452; Percent complete: 61.3%; Average loss: 2.9778
Iteration: 2453; Percent complete: 61.3%; Average loss: 3.0782
Iteration: 2454; Percent complete: 61.4%; Average loss: 3.1972
Iteration: 2455; Percent complete: 61.4%; Average loss: 2.9746
Iteration: 2456; Percent complete: 61.4%; Average loss: 2.9800
Iteration: 2457; Percent complete: 61.4%; Average loss: 3.0350
Iteration: 2458; Percent complete: 61.5%; Average loss: 3.2193
Iteration: 2459; Percent complete: 61.5%; Average loss: 3.1953
Iteration: 2460; Percent complete: 61.5%; Average loss: 3.1009
Iteration: 2461; Percent complete: 61.5%; Average loss: 3.0594
Iteration: 2462; Percent complete: 61.6%; Average loss: 2.9035
Iteration: 2463; Percent complete: 61.6%; Average loss: 2.9778
Iteration: 2464; Percent complete: 61.6%; Average loss: 2.8606
Iteration: 2465; Percent complete: 61.6%; Average loss: 2.9781
Iteration: 2466; Percent complete: 61.7%; Average loss: 3.1709
Iteration: 2467; Percent complete: 61.7%; Average loss: 2.8020
Iteration: 2468; Percent complete: 61.7%; Average loss: 2.9450
Iteration: 2469; Percent complete: 61.7%; Average loss: 2.9630
Iteration: 2470; Percent complete: 61.8%; Average loss: 2.8761
Iteration: 2471; Percent complete: 61.8%; Average loss: 3.1787
Iteration: 2472; Percent complete: 61.8%; Average loss: 2.9714 反復: 2473; 完了率: 61.8%; 平均損失: 3.1867 反復: 2474; 完了率: 61.9%; 平均損失: 3.0304 反復: 2475; 完了率: 61.9%; 平均損失: 2.7913 反復: 2476; 完了率: 61.9%; 平均損失: 3.3231 反復: 2477; 完了率: 61.9%; 平均損失: 2.7211 反復: 2478; 完了率: 62.0%; 平均損失: 3.0938 反復: 2479; 完了率: 62.0%; 平均損失: 3.2889 反復: 2480; 完了率: 62.0%; 平均損失: 3.0758 反復: 2481; 完了率: 62.0%; 平均損失: 3.2690 反復: 2482; 完了率: 62.1%; 平均損失: 3.1744 反復: 2483; 完了率: 62.1%; 平均損失: 2.9487 反復: 2484; 完了率: 62.1%; 平均損失: 3.0104 反復: 2485; 完了率: 62.1%; 平均損失: 3.0319 反復: 2486; 完了率: 62.2%; 平均損失: 2.9444 反復: 2487; 完了率: 62.2%; 平均損失: 3.1453 反復: 2488; 完了率: 62.2%; 平均損失: 2.7463 反復: 2489; 完了率: 62.2%; 平均損失: 2.9355 反復: 2490; 完了率: 62.3%; 平均損失: 3.0119 反復: 2491; 完了率: 62.3%; 平均損失: 3.0427 反復: 2492; 完了率: 62.3%; 平均損失: 3.1642 反復: 2493; 完了率: 62.3%; 平均損失: 2.9699 反復: 2494; 完了率: 62.4%; 平均損失: 3.4102
Iteration: 2495; Percent complete: 62.4%; Average loss: 3.2116
Iteration: 2496; Percent complete: 62.4%; Average loss: 2.9830
Iteration: 2497; Percent complete: 62.4%; Average loss: 3.1177
Iteration: 2498; Percent complete: 62.5%; Average loss: 2.9563
Iteration: 2499; Percent complete: 62.5%; Average loss: 3.0650
Iteration: 2500; Percent complete: 62.5%; Average loss: 3.0865
Iteration: 2501; Percent complete: 62.5%; Average loss: 2.9232
Iteration: 2502; Percent complete: 62.5%; Average loss: 2.9820
Iteration: 2503; Percent complete: 62.6%; Average loss: 3.0933
Iteration: 2504; Percent complete: 62.6%; Average loss: 2.9038
Iteration: 2505; Percent complete: 62.6%; Average loss: 3.0606
Iteration: 2506; Percent complete: 62.6%; Average loss: 2.9566
Iteration: 2507; Percent complete: 62.7%; Average loss: 3.1317
Iteration: 2508; Percent complete: 62.7%; Average loss: 3.0128
Iteration: 2509; Percent complete: 62.7%; Average loss: 2.8879
Iteration: 2510; Percent complete: 62.7%; Average loss: 2.8615
Iteration: 2511; Percent complete: 62.8%; Average loss: 2.8921
Iteration: 2512; Percent complete: 62.8%; Average loss: 3.0534
Iteration: 2513; Percent complete: 62.8%; Average loss: 3.0897
Iteration: 2514; Percent complete: 62.8%; Average loss: 2.7838
Iteration: 2515; Percent complete: 62.9%; Average loss: 2.8472
Iteration: 2516; Percent complete: 62.9%; Average loss: 3.0137 反復: 2517; 完了率: 62.9%; 平均損失: 3.2288 反復: 2518; 完了率: 62.9%; 平均損失: 2.9755 反復: 2519; 完了率: 63.0%; 平均損失: 3.2579 反復: 2520; 完了率: 63.0%。平均損失: 2.7489 反復: 2521; 完了率: 63.0%。平均損失: 3.1481 反復: 2522; 完了率: 63.0%。平均損失: 2.9058 反復: 2523; 完了率: 63.1%; 平均損失: 3.0740 反復: 2524; 完了率: 63.1%; 平均損失: 2.8643 反復: 2525; 完了率: 63.1%; 平均損失: 3.0609 反復: 2526; 完了率: 63.1%; 平均損失: 2.9330 反復: 2527; 完了率: 63.2%; 平均損失: 3.1945 反復: 2528; 完了率: 63.2%; 平均損失: 2.9167 反復: 2529; 完了率: 63.2%; 平均損失: 3.0811 反復: 2530; 完了率: 63.2%; 平均損失: 3.1511 反復: 2531; 完了率: 63.3%; 平均損失: 2.9722 反復: 2532; 完了率: 63.3%; 平均損失: 2.9541 反復: 2533; 完了率: 63.3%; 平均損失: 3.1472 反復: 2534; 完了率: 63.3%; 平均損失: 2.8963 反復: 2535; 完了率: 63.4%; 平均損失: 3.1040 反復: 2536; 完了率: 63.4%; 平均損失: 3.0082 反復: 2537; 完了率: 63.4%; 平均損失: 2.7428 反復: 2538; 完了率: 63.4%; 平均損失: 3.1276 反復: 2539; 完了率: 63.5%; 平均損失: 3.1702 反復: 2540; 完了率: 63.5%; 平均損失: 3.0390 反復: 2541; 完了率: 63.5%; 平均損失: 3.0735 反復: 2542; 完了率: 63.5%; 平均損失: 2.9593 反復: 2543; 完了率: 63.6%; 平均損失: 3.1316 反復: 2544; 完了率: 63.6%; 平均損失: 2.9566 反復: 2545; 完了率: 63.6%; 平均損失: 3.0541 反復: 2546; 完了率: 63.6%; 平均損失: 2.8510 反復: 2547; 完了率: 63.7%; 平均損失: 3.1570 反復: 2548; 完了率: 63.7%; 平均損失: 3.3161 反復: 2549; 完了率: 63.7%; 平均損失: 3.0934 反復: 2550; 完了率: 63.7%; 平均損失: 2.7384 反復: 2551; 完了率: 63.8%; 平均損失: 2.8517 反復: 2552; 完了率: 63.8%; 平均損失: 2.8114 反復: 2553; 完了率: 63.8%; 平均損失: 2.9827 反復: 2554; 完了率: 63.8%; 平均損失: 2.9104 反復: 2555; 完了率: 63.9%; 平均損失: 3.0919 反復: 2556; 完了率: 63.9%; 平均損失: 3.0690 反復: 2557; 完了率: 63.9%; 平均損失: 3.0957 反復: 2558; 完了率: 63.9%; 平均損失: 2.9921 反復: 2559; 完了率: 64.0%; 平均損失: 2.9404 反復: 2560; 完了率: 64.0%; 平均損失: 2.9503 反復: 2561; 完了率: 64.0%; 平均損失: 3.0078 反復: 2562; 完了率: 64.0%; 平均損失: 3.1286 反復: 2563; 完了率: 64.1%; 平均損失: 2.8652 反復: 2564; 完了率: 64.1%; 平均損失: 3.0342 反復: 2565; 完了率: 64.1%; 平均損失: 2.9201 反復: 2566; 完了率: 64.1%; 平均損失: 2.8465 反復: 2567; 完了率: 64.2%; 平均損失: 3.0654 反復: 2568; 完了率: 64.2%; 平均損失: 3.1371 反復: 2569; 完了率: 64.2%; 平均損失: 3.0328 反復: 2570; 完了率: 64.2%; 平均損失: 3.0551 反復: 2571; 完了率: 64.3%; 平均損失: 2.9468
Iteration: 2572; Percent complete: 64.3%; Average loss: 3.0390
Iteration: 2573; Percent complete: 64.3%; Average loss: 2.9121
Iteration: 2574; Percent complete: 64.3%; Average loss: 3.0295
Iteration: 2575; Percent complete: 64.4%; Average loss: 2.8644
Iteration: 2576; Percent complete: 64.4%; Average loss: 2.8744
Iteration: 2577; Percent complete: 64.4%; Average loss: 2.8617
Iteration: 2578; Percent complete: 64.5%; Average loss: 2.9077
Iteration: 2579; Percent complete: 64.5%; Average loss: 2.9754
Iteration: 2580; Percent complete: 64.5%; Average loss: 3.1065
Iteration: 2581; Percent complete: 64.5%; Average loss: 3.0537
Iteration: 2582; Percent complete: 64.5%; Average loss: 2.9967 反復: 2583; 完了率: 64.6%; 平均損失: 2.9721 反復: 2584; 完了率: 64.6%; 平均損失: 2.9958 反復: 2585; 完了率: 64.6%; 平均損失: 2.9881 反復: 2586; 完了率: 64.6%; 平均損失: 3.0088 反復: 2587; 完了率: 64.7%; 平均損失: 3.2258 反復: 2588; 完了率: 64.7%; 平均損失: 3.0431 反復: 2589; 完了率: 64.7%; 平均損失: 2.7865 反復: 2590; 完了率: 64.8%; 平均損失: 3.0031 反復: 2591; 完了率: 64.8%; 平均損失: 3.1517 反復: 2592; 完了率: 64.8%; 平均損失: 3.0455 反復: 2593; 完了率: 64.8%; 平均損失: 2.9903 反復: 2594; 完了率: 64.8%; 平均損失: 3.1832 反復: 2595; 完了率: 64.9%; 平均損失: 3.0362 反復: 2596; 完了率: 64.9%; 平均損失: 2.9187 反復: 2597; 完了率: 64.9%; 平均損失: 2.9790 反復: 2598; 完了率: 65.0%。平均損失: 2.8725 反復: 2599; 完了率: 65.0%。平均損失: 2.9556 反復: 2600; 完了率: 65.0%; 平均損失: 3.1295 反復: 2601; 完了率: 65.0%。平均損失: 2.7896 反復: 2602; 完了率: 65.0%; 平均損失: 2.7533 反復: 2603; 完了率: 65.1%; 平均損失: 2.6595 反復: 2604; 完了率: 65.1%; 平均損失: 2.9213 反復: 2605; 完了率: 65.1%; 平均損失: 2.9867 反復: 2606; 完了率: 65.1%; 平均損失: 2.8525 反復: 2607; 完了率: 65.2%; 平均損失: 2.9954 反復: 2608; 完了率: 65.2%; 平均損失: 3.0242 反復: 2609; 完了率: 65.2%; 平均損失: 2.9411 反復: 2610; 完了率: 65.2%; 平均損失: 2.9791 反復: 2611; 完了率: 65.3%; 平均損失: 2.9898 反復: 2612; 完了率: 65.3%; 平均損失: 3.1907 反復: 2613; 完了率: 65.3%; 平均損失: 2.9187 反復: 2614; 完了率: 65.3%; 平均損失: 2.9411 反復: 2615; 完了率: 65.4%; 平均損失: 2.9931 反復: 2616; 完了率: 65.4%; 平均損失: 2.9434 反復: 2617; 完了率: 65.4%; 平均損失: 2.9787 反復: 2618; 完了率: 65.5%; 平均損失: 3.0412 反復: 2619; 完了率: 65.5%; 平均損失: 2.9322 反復: 2620; 完了率: 65.5%; 平均損失: 3.2142 反復: 2621; 完了率: 65.5%; 平均損失: 2.8550 反復: 2622; 完了率: 65.5%; 平均損失: 2.8026 反復: 2623; 完了率: 65.6%; 平均損失: 2.8920 反復: 2624; 完了率: 65.6%; 平均損失: 2.8633 反復: 2625; 完了率: 65.6%; 平均損失: 3.0554 反復: 2626; 完了率: 65.6%; 平均損失: 2.9736
Iteration: 2627; Percent complete: 65.7%; Average loss: 2.9830
Iteration: 2628; Percent complete: 65.7%; Average loss: 3.0041
Iteration: 2629; Percent complete: 65.7%; Average loss: 2.7545
Iteration: 2630; Percent complete: 65.8%; Average loss: 2.9692
Iteration: 2631; Percent complete: 65.8%; Average loss: 3.1761
Iteration: 2632; Percent complete: 65.8%; Average loss: 2.8432
Iteration: 2633; Percent complete: 65.8%; Average loss: 2.9829
Iteration: 2634; Percent complete: 65.8%; Average loss: 2.9266
Iteration: 2635; Percent complete: 65.9%; Average loss: 3.1029
Iteration: 2636; Percent complete: 65.9%; Average loss: 2.8519
Iteration: 2637; Percent complete: 65.9%; Average loss: 2.9450
Iteration: 2638; Percent complete: 66.0%; Average loss: 2.8228
Iteration: 2639; Percent complete: 66.0%; Average loss: 2.8476
Iteration: 2640; Percent complete: 66.0%; Average loss: 2.8644
Iteration: 2641; Percent complete: 66.0%; Average loss: 2.9213
Iteration: 2642; Percent complete: 66.0%; Average loss: 3.0804
Iteration: 2643; Percent complete: 66.1%; Average loss: 3.0568
Iteration: 2644; Percent complete: 66.1%; Average loss: 2.8744
Iteration: 2645; Percent complete: 66.1%; Average loss: 3.0653
Iteration: 2646; Percent complete: 66.1%; Average loss: 3.3139
Iteration: 2647; Percent complete: 66.2%; Average loss: 2.9657
Iteration: 2648; Percent complete: 66.2%; Average loss: 2.8673 反復: 2649; 完了率: 66.2%; 平均損失: 2.8463 反復: 2650; 完了率: 66.2%; 平均損失: 2.8480 反復: 2651; 完了率: 66.3%; 平均損失: 2.8807 反復: 2652; 完了率: 66.3%; 平均損失: 3.1087 反復: 2653; 完了率: 66.3%; 平均損失: 2.9096 反復: 2654; 完了率: 66.3%; 平均損失: 2.6968 反復: 2655; 完了率: 66.4%; 平均損失: 2.9342 反復: 2656; 完了率: 66.4%; 平均損失: 3.1519 反復: 2657; 完了率: 66.4%; 平均損失: 2.8634 反復: 2658; 完了率: 66.5%; 平均損失: 2.7274 反復: 2659; 完了率: 66.5%; 平均損失: 3.2263 反復: 2660; 完了率: 66.5%; 平均損失: 3.0311 反復: 2661; 完了率: 66.5%; 平均損失: 2.9810 反復: 2662; 完了率: 66.5%; 平均損失: 2.8290 反復: 2663; 完了率: 66.6%; 平均損失: 3.2688 反復: 2664; 完了率: 66.6%; 平均損失: 2.9068 反復: 2665; 完了率: 66.6%; 平均損失: 3.0316 反復: 2666; 完了率: 66.6%; 平均損失: 2.8046 反復: 2667; 完了率: 66.7%; 平均損失: 2.9919 反復: 2668; 完了率: 66.7%; 平均損失: 2.9210 反復: 2669; 完了率: 66.7%; 平均損失: 3.1405 反復: 2670; 完了率: 66.8%; 平均損失: 3.1468
Iteration: 2671; Percent complete: 66.8%; Average loss: 2.8994
Iteration: 2672; Percent complete: 66.8%; Average loss: 3.1178
Iteration: 2673; Percent complete: 66.8%; Average loss: 3.0923
Iteration: 2674; Percent complete: 66.8%; Average loss: 2.8226
Iteration: 2675; Percent complete: 66.9%; Average loss: 2.9602
Iteration: 2676; Percent complete: 66.9%; Average loss: 2.9431
Iteration: 2677; Percent complete: 66.9%; Average loss: 2.9174
Iteration: 2678; Percent complete: 67.0%; Average loss: 2.9096
Iteration: 2679; Percent complete: 67.0%; Average loss: 2.7657
Iteration: 2680; Percent complete: 67.0%; Average loss: 3.0630
Iteration: 2681; Percent complete: 67.0%; Average loss: 2.7392 反復: 2682; 完了率: 67.0%; 平均損失: 2.9533 反復: 2683; 完了率: 67.1%; 平均損失: 2.8859 反復: 2684; 完了率: 67.1%; 平均損失: 2.9039 反復: 2685; 完了率: 67.1%; 平均損失: 2.8336 反復: 2686; 完了率: 67.2%; 平均損失: 2.8811 反復: 2687; 完了率: 67.2%; 平均損失: 3.0752 反復: 2688; 完了率: 67.2%; 平均損失: 2.8744 反復: 2689; 完了率: 67.2%; 平均損失: 2.8814 反復: 2690; 完了率: 67.2%; 平均損失: 3.0468 反復: 2691; 完了率: 67.3%; 平均損失: 2.6993 反復: 2692; 完了率: 67.3%; 平均損失: 3.0364 反復: 2693; 完了率: 67.3%; 平均損失: 3.3457 反復: 2694; 完了率: 67.3%; 平均損失: 3.0691 反復: 2695; 完了率: 67.4%; 平均損失: 3.0665 反復: 2696; 完了率: 67.4%; 平均損失: 2.8923 反復: 2697; 完了率: 67.4%; 平均損失: 2.9253 反復: 2698; 完了率: 67.5%; 平均損失: 3.1286 反復: 2699; 完了率: 67.5%; 平均損失: 2.7347 反復: 2700; 完了率: 67.5%; 平均損失: 2.9066 反復: 2701; 完了率: 67.5%; 平均損失: 3.0351 反復: 2702; 完了率: 67.5%; 平均損失: 2.8359 反復: 2703; 完了率: 67.6%; 平均損失: 2.8236
Iteration: 2704; Percent complete: 67.6%; Average loss: 3.2896
Iteration: 2705; Percent complete: 67.6%; Average loss: 2.7712
Iteration: 2706; Percent complete: 67.7%; Average loss: 2.7662
Iteration: 2707; Percent complete: 67.7%; Average loss: 2.7613
Iteration: 2708; Percent complete: 67.7%; Average loss: 2.9348
Iteration: 2709; Percent complete: 67.7%; Average loss: 3.1444
Iteration: 2710; Percent complete: 67.8%; Average loss: 2.9050
Iteration: 2711; Percent complete: 67.8%; Average loss: 2.9515
Iteration: 2712; Percent complete: 67.8%; Average loss: 3.0379
Iteration: 2713; Percent complete: 67.8%; Average loss: 3.0263
Iteration: 2714; Percent complete: 67.8%; Average loss: 3.0578
Iteration: 2715; Percent complete: 67.9%; Average loss: 3.0283
Iteration: 2716; Percent complete: 67.9%; Average loss: 2.9111
Iteration: 2717; Percent complete: 67.9%; Average loss: 2.6511
Iteration: 2718; Percent complete: 68.0%; Average loss: 2.7859
Iteration: 2719; Percent complete: 68.0%; Average loss: 2.8902
Iteration: 2720; Percent complete: 68.0%; Average loss: 2.8789
Iteration: 2721; Percent complete: 68.0%; Average loss: 2.9289
Iteration: 2722; Percent complete: 68.0%; Average loss: 2.9644
Iteration: 2723; Percent complete: 68.1%; Average loss: 3.0896
Iteration: 2724; Percent complete: 68.1%; Average loss: 3.0791
Iteration: 2725; Percent complete: 68.1%; Average loss: 3.1497 反復: 2726; 完了率: 68.2%; 平均損失: 2.7770 反復: 2727; 完了率: 68.2%; 平均損失: 3.1052 反復: 2728; 完了率: 68.2%; 平均損失: 2.7897 反復: 2729; 完了率: 68.2%; 平均損失: 2.7800 反復: 2730; 完了率: 68.2%; 平均損失: 3.0559 反復: 2731; 完了率: 68.3%; 平均損失: 2.8990 反復: 2732; 完了率: 68.3%; 平均損失: 3.0887 反復: 2733; 完了率: 68.3%; 平均損失: 2.9491 反復: 2734; 完了率: 68.3%; 平均損失: 3.1293 反復: 2735; 完了率: 68.4%; 平均損失: 2.8100 反復: 2736; 完了率: 68.4%; 平均損失: 3.0628
Iteration: 2737; Percent complete: 68.4%; Average loss: 2.9040
Iteration: 2738; Percent complete: 68.5%; Average loss: 2.9025
Iteration: 2739; Percent complete: 68.5%; Average loss: 2.9551
Iteration: 2740; Percent complete: 68.5%; Average loss: 3.0432
Iteration: 2741; Percent complete: 68.5%; Average loss: 2.6855
Iteration: 2742; Percent complete: 68.5%; Average loss: 3.1136
Iteration: 2743; Percent complete: 68.6%; Average loss: 2.8243
Iteration: 2744; Percent complete: 68.6%; Average loss: 3.0773
Iteration: 2745; Percent complete: 68.6%; Average loss: 3.1913
Iteration: 2746; Percent complete: 68.7%; Average loss: 2.8263
Iteration: 2747; Percent complete: 68.7%; Average loss: 2.6228 反復: 2748; 完了率: 68.7%; 平均損失: 2.6747 反復: 2749; 完了率: 68.7%; 平均損失: 2.9337 反復: 2750; 完了率: 68.8%; 平均損失: 2.8996 反復: 2751; 完了率: 68.8%; 平均損失: 2.8538 反復: 2752; 完了率: 68.8%; 平均損失: 2.9855 反復: 2753; 完了率: 68.8%; 平均損失: 2.9175 反復: 2754; 完了率: 68.8%; 平均損失: 2.8772 反復: 2755; 完了率: 68.9%; 平均損失: 3.1281 反復: 2756; 完了率: 68.9%; 平均損失: 2.7937 反復: 2757; 完了率: 68.9%; 平均損失: 3.0514 反復: 2758; 完了率: 69.0%; 平均損失: 3.2295
Iteration: 2759; Percent complete: 69.0%; Average loss: 2.8074
Iteration: 2760; Percent complete: 69.0%; Average loss: 2.8993
Iteration: 2761; Percent complete: 69.0%; Average loss: 2.9323
Iteration: 2762; Percent complete: 69.0%; Average loss: 2.8051
Iteration: 2763; Percent complete: 69.1%; Average loss: 2.9703
Iteration: 2764; Percent complete: 69.1%; Average loss: 2.9206
Iteration: 2765; Percent complete: 69.1%; Average loss: 2.8816
Iteration: 2766; Percent complete: 69.2%; Average loss: 3.0397
Iteration: 2767; Percent complete: 69.2%; Average loss: 2.9311
Iteration: 2768; Percent complete: 69.2%; Average loss: 2.8098
Iteration: 2769; Percent complete: 69.2%; Average loss: 3.2060 反復: 2770; 完了率: 69.2%; 平均損失: 3.0123 反復: 2771; 完了率: 69.3%; 平均損失: 2.9479 反復: 2772; 完了率: 69.3%; 平均損失: 3.0342 反復: 2773; 完了率: 69.3%; 平均損失: 2.7490 反復: 2774; 完了率: 69.3%; 平均損失: 3.0704 反復: 2775; 完了率: 69.4%; 平均損失: 2.8406 反復: 2776; 完了率: 69.4%; 平均損失: 3.0020 反復: 2777; 完了率: 69.4%; 平均損失: 3.2553 反復: 2778; 完了率: 69.5%; 平均損失: 2.8699 反復: 2779; 完了率: 69.5%; 平均損失: 2.9673 反復: 2780; 完了率: 69.5%; 平均損失: 3.0152 反復: 2781; 完了率: 69.5%; 平均損失: 2.9098 反復: 2782; 完了率: 69.5%; 平均損失: 3.0996 反復: 2783; 完了率: 69.6%; 平均損失: 2.8998 反復: 2784; 完了率: 69.6%; 平均損失: 2.6669 反復: 2785; 完了率: 69.6%; 平均損失: 2.9219 反復: 2786; 完了率: 69.7%; 平均損失: 3.0511 反復: 2787; 完了率: 69.7%; 平均損失: 2.9774 反復: 2788; 完了率: 69.7%; 平均損失: 2.8367 反復: 2789; 完了率: 69.7%; 平均損失: 2.9668 反復: 2790; 完了率: 69.8%; 平均損失: 2.9426 反復: 2791; 完了率: 69.8%; 平均損失: 2.9635
Iteration: 2792; Percent complete: 69.8%; Average loss: 3.0329
Iteration: 2793; Percent complete: 69.8%; Average loss: 2.9420
Iteration: 2794; Percent complete: 69.8%; Average loss: 3.0063
Iteration: 2795; Percent complete: 69.9%; Average loss: 2.8806
Iteration: 2796; Percent complete: 69.9%; Average loss: 2.9448
Iteration: 2797; Percent complete: 69.9%; Average loss: 3.1839
Iteration: 2798; Percent complete: 70.0%; Average loss: 2.7731
Iteration: 2799; Percent complete: 70.0%; Average loss: 3.0173
Iteration: 2800; Percent complete: 70.0%; Average loss: 3.0754
Iteration: 2801; Percent complete: 70.0%; Average loss: 2.9319
Iteration: 2802; Percent complete: 70.0%; Average loss: 2.9510 反復: 2803; 完了率: 70.1%。平均損失: 2.8086 反復: 2804; 完了率: 70.1%。平均損失: 2.7560 反復: 2805; 完了率: 70.1%。平均損失: 2.7977 反復: 2806; 完了率: 70.2%。平均損失: 2.9799 反復: 2807; 完了率: 70.2%。平均損失: 2.9387 反復: 2808; 完了率: 70.2%。平均損失: 3.0709 反復: 2809; 完了率: 70.2%; 平均損失: 2.8732 反復: 2810; 完了率: 70.2%; 平均損失: 2.7635 反復: 2811; 完了率: 70.3%。平均損失: 3.1909 反復: 2812; 完了率: 70.3%。平均損失: 2.6149 反復: 2813; 完了率: 70.3%。平均損失: 2.7763
Iteration: 2814; Percent complete: 70.3%; Average loss: 2.8487
Iteration: 2815; Percent complete: 70.4%; Average loss: 2.9606
Iteration: 2816; Percent complete: 70.4%; Average loss: 2.9671
Iteration: 2817; Percent complete: 70.4%; Average loss: 3.0499
Iteration: 2818; Percent complete: 70.5%; Average loss: 2.9161
Iteration: 2819; Percent complete: 70.5%; Average loss: 2.8150
Iteration: 2820; Percent complete: 70.5%; Average loss: 2.8929
Iteration: 2821; Percent complete: 70.5%; Average loss: 2.7976
Iteration: 2822; Percent complete: 70.5%; Average loss: 2.9606
Iteration: 2823; Percent complete: 70.6%; Average loss: 3.0420
Iteration: 2824; Percent complete: 70.6%; Average loss: 3.0610 反復: 2825; 完了率: 70.6%; 平均損失: 2.7344 反復: 2826; 完了率: 70.7%; 平均損失: 2.9405 反復: 2827; 完了率: 70.7%; 平均損失: 2.7650 反復: 2828; 完了率: 70.7%; 平均損失: 2.8716 反復: 2829; 完了率: 70.7%; 平均損失: 2.7894 反復: 2830; 完了率: 70.8%; 平均損失: 2.7876 反復: 2831; 完了率: 70.8%; 平均損失: 2.6531 反復: 2832; 完了率: 70.8%; 平均損失: 2.6075 反復: 2833; 完了率: 70.8%; 平均損失: 2.9735 反復: 2834; 完了率: 70.9%; 平均損失: 2.9563 反復: 2835; 完了率: 70.9%; 平均損失: 2.8260 反復: 2836; 完了率: 70.9%; 平均損失: 3.0925 反復: 2837; 完了率: 70.9%; 平均損失: 2.7571 反復: 2838; 完了率: 71.0%。平均損失: 2.7115 反復: 2839; 完了率: 71.0%。平均損失: 2.8734 反復: 2840; 完了率: 71.0%。平均損失: 2.8697 反復: 2841; 完了率: 71.0%。平均損失: 2.8601 反復: 2842; 完了率: 71.0%。平均損失: 2.8507 反復: 2843; 完了率: 71.1%。平均損失: 2.9071 反復: 2844; 完了率: 71.1%。平均損失: 3.1631 反復: 2845; 完了率: 71.1%。平均損失: 2.9049 反復: 2846; 完了率: 71.2%; 平均損失: 2.8842
Iteration: 2847; Percent complete: 71.2%; Average loss: 3.0264
Iteration: 2848; Percent complete: 71.2%; Average loss: 3.3051
Iteration: 2849; Percent complete: 71.2%; Average loss: 3.0651
Iteration: 2850; Percent complete: 71.2%; Average loss: 2.8498
Iteration: 2851; Percent complete: 71.3%; Average loss: 3.1002
Iteration: 2852; Percent complete: 71.3%; Average loss: 2.8427
Iteration: 2853; Percent complete: 71.3%; Average loss: 2.9740
Iteration: 2854; Percent complete: 71.4%; Average loss: 2.9746
Iteration: 2855; Percent complete: 71.4%; Average loss: 2.8732
Iteration: 2856; Percent complete: 71.4%; Average loss: 2.7279
Iteration: 2857; Percent complete: 71.4%; Average loss: 3.1034 反復: 2858; 完了率: 71.5%。平均損失: 2.9281 反復: 2859; 完了率: 71.5%。平均損失: 3.1023 反復: 2860; 完了率: 71.5%。平均損失: 2.9999 反復: 2861; 完了率: 71.5%。平均損失: 2.8239 反復: 2862; 完了率: 71.5%。平均損失: 2.9745 反復: 2863; 完了率: 71.6%; 平均損失: 2.6461 反復: 2864; 完了率: 71.6%; 平均損失: 2.9835 反復: 2865; 完了率: 71.6%; 平均損失: 2.9394 反復: 2866; 完了率: 71.7%。平均損失: 3.1531 反復: 2867; 完了率: 71.7%。平均損失: 2.6448 反復: 2868; 完了率: 71.7%。平均損失: 2.9850 反復: 2869; 完了率: 71.7%。平均損失: 2.6996 反復: 2870; 完了率: 71.8%; 平均損失: 2.8735 反復: 2871; 完了率: 71.8%; 平均損失: 2.8405 反復: 2872; 完了率: 71.8%; 平均損失: 2.6348 反復: 2873; 完了率: 71.8%; 平均損失: 2.9328 反復: 2874; 完了率: 71.9%; 平均損失: 2.9802 反復: 2875; 完了率: 71.9%; 平均損失: 2.8764 反復: 2876; 完了率: 71.9%; 平均損失: 2.9751 反復: 2877; 完了率: 71.9%; 平均損失: 2.7779 反復: 2878; 完了率: 72.0%。平均損失: 3.1414 反復: 2879; 完了率: 72.0%。平均損失: 2.9030
Iteration: 2880; Percent complete: 72.0%; Average loss: 3.0445
Iteration: 2881; Percent complete: 72.0%; Average loss: 2.7660
Iteration: 2882; Percent complete: 72.0%; Average loss: 2.8299
Iteration: 2883; Percent complete: 72.1%; Average loss: 2.9405
Iteration: 2884; Percent complete: 72.1%; Average loss: 2.6777
Iteration: 2885; Percent complete: 72.1%; Average loss: 2.9782
Iteration: 2886; Percent complete: 72.2%; Average loss: 3.2044
Iteration: 2887; Percent complete: 72.2%; Average loss: 2.7055
Iteration: 2888; Percent complete: 72.2%; Average loss: 2.6670
Iteration: 2889; Percent complete: 72.2%; Average loss: 3.0082
Iteration: 2890; Percent complete: 72.2%; Average loss: 2.8225 反復: 2891; 完了率: 72.3%; 平均損失: 2.9088 反復: 2892; 完了率: 72.3%; 平均損失: 2.8167 反復: 2893; 完了率: 72.3%; 平均損失: 3.0628 反復: 2894; 完了率: 72.4%; 平均損失: 3.0006 反復: 2895; 完了率: 72.4%; 平均損失: 3.0637 反復: 2896; 完了率: 72.4%; 平均損失: 3.0144 反復: 2897; 完了率: 72.4%; 平均損失: 3.0548 反復: 2898; 完了率: 72.5%; 平均損失: 2.8918 反復: 2899; 完了率: 72.5%; 平均損失: 2.9062 反復: 2900; 完了率: 72.5%; 平均損失: 2.6467 反復: 2901; 完了率: 72.5%; 平均損失: 2.9629
Iteration: 2902; Percent complete: 72.5%; Average loss: 2.8660
Iteration: 2903; Percent complete: 72.6%; Average loss: 3.0495
Iteration: 2904; Percent complete: 72.6%; Average loss: 2.8643
Iteration: 2905; Percent complete: 72.6%; Average loss: 2.8103
Iteration: 2906; Percent complete: 72.7%; Average loss: 2.8733
Iteration: 2907; Percent complete: 72.7%; Average loss: 2.8818
Iteration: 2908; Percent complete: 72.7%; Average loss: 2.6980
Iteration: 2909; Percent complete: 72.7%; Average loss: 3.0065
Iteration: 2910; Percent complete: 72.8%; Average loss: 2.9861
Iteration: 2911; Percent complete: 72.8%; Average loss: 2.9519
Iteration: 2912; Percent complete: 72.8%; Average loss: 2.7734 反復: 2913; 完了率: 72.8%; 平均損失: 2.9950 反復: 2914; 完了率: 72.9%; 平均損失: 2.9318 反復: 2915; 完了率: 72.9%; 平均損失: 2.9005 反復: 2916; 完了率: 72.9%; 平均損失: 2.7580 反復: 2917; 完了率: 72.9%; 平均損失: 2.6947 反復: 2918; 完了率: 73.0%。平均損失: 2.8509 反復: 2919; 完了率: 73.0%。平均損失: 2.9080 反復: 2920; 完了率: 73.0%。平均損失: 2.8826 反復: 2921; 完了率: 73.0%。平均損失: 2.6888 反復: 2922; 完了率: 73.0%。平均損失: 2.6103 反復: 2923; 完了率: 73.1%。平均損失: 3.0272 反復: 2924; 完了率: 73.1%。平均損失: 2.8656 反復: 2925; 完了率: 73.1%。平均損失: 3.0559 反復: 2926; 完了率: 73.2%; 平均損失: 2.9893 反復: 2927; 完了率: 73.2%; 平均損失: 2.9656 反復: 2928; 完了率: 73.2%; 平均損失: 3.0029 反復: 2929; 完了率: 73.2%; 平均損失: 2.8631 反復: 2930; 完了率: 73.2%; 平均損失: 2.7385 反復: 2931; 完了率: 73.3%; 平均損失: 2.9353 反復: 2932; 完了率: 73.3%; 平均損失: 2.7064 反復: 2933; 完了率: 73.3%; 平均損失: 2.7958 反復: 2934; 完了率: 73.4%。平均損失: 2.9631 反復: 2935; 完了率: 73.4%。平均損失: 2.9521 反復: 2936; 完了率: 73.4%。平均損失: 2.7764 反復: 2937; 完了率: 73.4%。平均損失: 2.7716 反復: 2938; 完了率: 73.5%; 平均損失: 2.9591 反復: 2939; 完了率: 73.5%; 平均損失: 2.9168 反復: 2940; 完了率: 73.5%; 平均損失: 2.8270 反復: 2941; 完了率: 73.5%; 平均損失: 2.7511 反復: 2942; 完了率: 73.6%; 平均損失: 2.7074 反復: 2943; 完了率: 73.6%; 平均損失: 2.8905 反復: 2944; 完了率: 73.6%; 平均損失: 2.7952 反復: 2945; 完了率: 73.6%; 平均損失: 2.6676
Iteration: 2946; Percent complete: 73.7%; Average loss: 2.8904
Iteration: 2947; Percent complete: 73.7%; Average loss: 2.8571
Iteration: 2948; Percent complete: 73.7%; Average loss: 3.0336
Iteration: 2949; Percent complete: 73.7%; Average loss: 2.8534
Iteration: 2950; Percent complete: 73.8%; Average loss: 2.8264
Iteration: 2951; Percent complete: 73.8%; Average loss: 2.8189
Iteration: 2952; Percent complete: 73.8%; Average loss: 2.8780
Iteration: 2953; Percent complete: 73.8%; Average loss: 2.8670
Iteration: 2954; Percent complete: 73.9%; Average loss: 2.6855
Iteration: 2955; Percent complete: 73.9%; Average loss: 2.8326
Iteration: 2956; Percent complete: 73.9%; Average loss: 2.9385 反復: 2957; 完了率: 73.9%; 平均損失: 2.8377 反復: 2958; 完了率: 74.0%。平均損失: 2.7470 反復: 2959; 完了率: 74.0%。平均損失: 2.7453 反復: 2960; 完了率: 74.0%。平均損失: 2.9980 反復: 2961; 完了率: 74.0%。平均損失: 2.7691 反復: 2962; 完了率: 74.1%; 平均損失: 2.7939 反復: 2963; 完了率: 74.1%; 平均損失: 2.8768 反復: 2964; 完了率: 74.1%; 平均損失: 2.8439 反復: 2965; 完了率: 74.1%; 平均損失: 2.9102 反復: 2966; 完了率: 74.2%; 平均損失: 2.9781 反復: 2967; 完了率: 74.2%; 平均損失: 2.9837
Iteration: 2968; Percent complete: 74.2%; Average loss: 2.8725
Iteration: 2969; Percent complete: 74.2%; Average loss: 2.7214
Iteration: 2970; Percent complete: 74.2%; Average loss: 2.7303
Iteration: 2971; Percent complete: 74.3%; Average loss: 2.6839
Iteration: 2972; Percent complete: 74.3%; Average loss: 2.7410
Iteration: 2973; Percent complete: 74.3%; Average loss: 2.6838
Iteration: 2974; Percent complete: 74.4%; Average loss: 2.8844
Iteration: 2975; Percent complete: 74.4%; Average loss: 2.7657
Iteration: 2976; Percent complete: 74.4%; Average loss: 3.0007
Iteration: 2977; Percent complete: 74.4%; Average loss: 2.7683
Iteration: 2978; Percent complete: 74.5%; Average loss: 2.7754 反復: 2979; 完了率: 74.5%; 平均損失: 2.9418 反復: 2980; 完了率: 74.5%; 平均損失: 2.9081 反復: 2981; 完了率: 74.5%; 平均損失: 2.6613 反復: 2982; 完了率: 74.6%; 平均損失: 2.9718 反復: 2983; 完了率: 74.6%; 平均損失: 2.9895 反復: 2984; 完了率: 74.6%; 平均損失: 2.9702 反復: 2985; 完了率: 74.6%; 平均損失: 2.7908 反復: 2986; 完了率: 74.7%; 平均損失: 2.8434 反復: 2987; 完了率: 74.7%; 平均損失: 2.7384 反復: 2988; 完了率: 74.7%; 平均損失: 2.8005 反復: 2989; 完了率: 74.7%; 平均損失: 2.7824
Iteration: 2990; Percent complete: 74.8%; Average loss: 3.1291
Iteration: 2991; Percent complete: 74.8%; Average loss: 3.1140
Iteration: 2992; Percent complete: 74.8%; Average loss: 2.6581
Iteration: 2993; Percent complete: 74.8%; Average loss: 2.9030
Iteration: 2994; Percent complete: 74.9%; Average loss: 2.9360
Iteration: 2995; Percent complete: 74.9%; Average loss: 2.7942
Iteration: 2996; Percent complete: 74.9%; Average loss: 3.0128
Iteration: 2997; Percent complete: 74.9%; Average loss: 2.8045
Iteration: 2998; Percent complete: 75.0%; Average loss: 2.9057
Iteration: 2999; Percent complete: 75.0%; Average loss: 2.9687
Iteration: 3000; Percent complete: 75.0%; Average loss: 2.7950
Iteration: 3001; Percent complete: 75.0%; Average loss: 3.0979
Iteration: 3002; Percent complete: 75.0%; Average loss: 2.8560
Iteration: 3003; Percent complete: 75.1%; Average loss: 2.8208
Iteration: 3004; Percent complete: 75.1%; Average loss: 2.9010
Iteration: 3005; Percent complete: 75.1%; Average loss: 2.9888
Iteration: 3006; Percent complete: 75.1%; Average loss: 3.0923
Iteration: 3007; Percent complete: 75.2%; Average loss: 2.7891
Iteration: 3008; Percent complete: 75.2%; Average loss: 2.7827
Iteration: 3009; Percent complete: 75.2%; Average loss: 3.0056
Iteration: 3010; Percent complete: 75.2%; Average loss: 2.6493
Iteration: 3011; Percent complete: 75.3%; Average loss: 2.9089 反復: 3012; 完了率: 75.3%; 平均損失: 3.0040 反復: 3013; 完了率: 75.3%; 平均損失: 2.7856 反復: 3014; 完了率: 75.3%; 平均損失: 2.8520 反復: 3015; 完了率: 75.4%; 平均損失: 2.8815 反復: 3016; 完了率: 75.4%; 平均損失: 2.9201 反復: 3017; 完了率: 75.4%; 平均損失: 2.9489 反復: 3018; 完了率: 75.4%; 平均損失: 3.1400 反復: 3019; 完了率: 75.5%; 平均損失: 2.7049 反復: 3020; 完了率: 75.5%; 平均損失: 2.6831 反復: 3021; 完了率: 75.5%; 平均損失: 2.9212 反復: 3022; 完了率: 75.5%; 平均損失: 2.7993 反復: 3023; 完了率: 75.6%; 平均損失: 2.9870 反復: 3024; 完了率: 75.6%; 平均損失: 3.0753 反復: 3025; 完了率: 75.6%; 平均損失: 2.8577 反復: 3026; 完了率: 75.6%; 平均損失: 2.9678 反復: 3027; 完了率: 75.7%; 平均損失: 2.9237 反復: 3028; 完了率: 75.7%; 平均損失: 2.7608 反復: 3029; 完了率: 75.7%; 平均損失: 2.8617 反復: 3030; 完了率: 75.8%; 平均損失: 2.7351 反復: 3031; 完了率: 75.8%; 平均損失: 2.7582 反復: 3032; 完了率: 75.8%; 平均損失: 2.9949 反復: 3033; 完了率: 75.8%; 平均損失: 2.7493 反復: 3034; 完了率: 75.8%; 平均損失: 2.9363 反復: 3035; 完了率: 75.9%; 平均損失: 2.6651 反復: 3036; 完了率: 75.9%; 平均損失: 2.6201 反復: 3037; 完了率: 75.9%; 平均損失: 2.9805 反復: 3038; 完了率: 75.9%; 平均損失: 2.5554 反復: 3039; 完了率: 76.0%。平均損失: 2.9647 反復: 3040; 完了率: 76.0%。平均損失: 2.7370 反復: 3041; 完了率: 76.0%。平均損失: 2.8865 反復: 3042; 完了率: 76.0%。平均損失: 2.7523 反復: 3043; 完了率: 76.1%; 平均損失: 2.8022 反復: 3044; 完了率: 76.1%; 平均損失: 3.1104 反復: 3045; 完了率: 76.1%。平均損失: 3.0355 反復: 3046; 完了率: 76.1%。平均損失: 3.0842 反復: 3047; 完了率: 76.2%。平均損失: 2.8329 反復: 3048; 完了率: 76.2%; 平均損失: 2.5439 反復: 3049; 完了率: 76.2%; 平均損失: 3.0823 反復: 3050; 完了率: 76.2%。平均損失: 3.0757 反復: 3051; 完了率: 76.3%; 平均損失: 3.0922 反復: 3052; 完了率: 76.3%; 平均損失: 2.7747 反復: 3053; 完了率: 76.3%; 平均損失: 2.9779 反復: 3054; 完了率: 76.3%; 平均損失: 2.8833 反復: 3055; 完了率: 76.4%; 平均損失: 2.7734 反復: 3056; 完了率: 76.4%; 平均損失: 3.0928 反復: 3057; 完了率: 76.4%; 平均損失: 2.9566 反復: 3058; 完了率: 76.4%; 平均損失: 2.8484 反復: 3059; 完了率: 76.5%; 平均損失: 2.8120 反復: 3060; 完了率: 76.5%; 平均損失: 2.6526 反復: 3061; 完了率: 76.5%; 平均損失: 3.0492 反復: 3062; 完了率: 76.5%; 平均損失: 2.8233 反復: 3063; 完了率: 76.6%; 平均損失: 2.9126 反復: 3064; 完了率: 76.6%; 平均損失: 2.7894 反復: 3065; 完了率: 76.6%; 平均損失: 2.8252 反復: 3066; 完了率: 76.6%; 平均損失: 2.8729 反復: 3067; 完了率: 76.7%; 平均損失: 2.8385 反復: 3068; 完了率: 76.7%; 平均損失: 2.8218 反復: 3069; 完了率: 76.7%; 平均損失: 2.7631 反復: 3070; 完了率: 76.8%; 平均損失: 2.8235 反復: 3071; 完了率: 76.8%; 平均損失: 2.7714 反復: 3072; 完了率: 76.8%; 平均損失: 3.0605 反復: 3073; 完了率: 76.8%; 平均損失: 2.9724 反復: 3074; 完了率: 76.8%; 平均損失: 2.7732 反復: 3075; 完了率: 76.9%; 平均損失: 2.8887 反復: 3076; 完了率: 76.9%; 平均損失: 2.7575 反復: 3077; 完了率: 76.9%; 平均損失: 2.7968
Iteration: 3078; Percent complete: 77.0%; Average loss: 2.8895
Iteration: 3079; Percent complete: 77.0%; Average loss: 2.9905
Iteration: 3080; Percent complete: 77.0%; Average loss: 2.8044
Iteration: 3081; Percent complete: 77.0%; Average loss: 2.9526
Iteration: 3082; Percent complete: 77.0%; Average loss: 2.5864
Iteration: 3083; Percent complete: 77.1%; Average loss: 2.9612
Iteration: 3084; Percent complete: 77.1%; Average loss: 2.9876
Iteration: 3085; Percent complete: 77.1%; Average loss: 2.8911
Iteration: 3086; Percent complete: 77.1%; Average loss: 2.8401
Iteration: 3087; Percent complete: 77.2%; Average loss: 2.8640
Iteration: 3088; Percent complete: 77.2%; Average loss: 2.8821 反復: 3089; 完了率: 77.2%; 平均損失: 2.6638 反復: 3090; 完了率: 77.2%; 平均損失: 2.8038 反復: 3091; 完了率: 77.3%; 平均損失: 2.7707 反復: 3092; 完了率: 77.3%; 平均損失: 2.6988 反復: 3093; 完了率: 77.3%; 平均損失: 2.8855 反復: 3094; 完了率: 77.3%; 平均損失: 2.6391 反復: 3095; 完了率: 77.4%; 平均損失: 2.7761 反復: 3096; 完了率: 77.4%; 平均損失: 2.7997 反復: 3097; 完了率: 77.4%; 平均損失: 2.7666 反復: 3098; 完了率: 77.5%; 平均損失: 2.8814 反復: 3099; 完了率: 77.5%; 平均損失: 2.6656 反復: 3100; 完了率: 77.5%; 平均損失: 2.9670 反復: 3101; 完了率: 77.5%; 平均損失: 2.6348 反復: 3102; 完了率: 77.5%; 平均損失: 2.8028 反復: 3103; 完了率: 77.6%; 平均損失: 2.7795 反復: 3104; 完了率: 77.6%; 平均損失: 2.8384 反復: 3105; 完了率: 77.6%; 平均損失: 3.0241 反復: 3106; 完了率: 77.6%; 平均損失: 3.0847 反復: 3107; 完了率: 77.7%; 平均損失: 2.7715 反復: 3108; 完了率: 77.7%; 平均損失: 2.7053 反復: 3109; 完了率: 77.7%; 平均損失: 3.0693 反復: 3110; 完了率: 77.8%; 平均損失: 2.7329 反復: 3111; 完了率: 77.8%; 平均損失: 2.7823 反復: 3112; 完了率: 77.8%; 平均損失: 3.0488 反復: 3113; 完了率: 77.8%; 平均損失: 2.9797 反復: 3114; 完了率: 77.8%; 平均損失: 2.8829 反復: 3115; 完了率: 77.9%; 平均損失: 2.9516 反復: 3116; 完了率: 77.9%; 平均損失: 2.8601 反復: 3117; 完了率: 77.9%; 平均損失: 2.8856 反復: 3118; 完了率: 78.0%。平均損失: 2.7686 反復: 3119; 完了率: 78.0%; 平均損失: 2.7822 反復: 3120; 完了率: 78.0%; 平均損失: 3.1027 反復: 3121; 完了率: 78.0%。平均損失: 2.8675
Iteration: 3122; Percent complete: 78.0%; Average loss: 2.8810
Iteration: 3123; Percent complete: 78.1%; Average loss: 2.6273
Iteration: 3124; Percent complete: 78.1%; Average loss: 2.9783
Iteration: 3125; Percent complete: 78.1%; Average loss: 2.9352
Iteration: 3126; Percent complete: 78.1%; Average loss: 2.9763
Iteration: 3127; Percent complete: 78.2%; Average loss: 2.5655
Iteration: 3128; Percent complete: 78.2%; Average loss: 2.9364
Iteration: 3129; Percent complete: 78.2%; Average loss: 2.7606
Iteration: 3130; Percent complete: 78.2%; Average loss: 2.9881
Iteration: 3131; Percent complete: 78.3%; Average loss: 2.8544
Iteration: 3132; Percent complete: 78.3%; Average loss: 2.7054 反復: 3133; 完了率: 78.3%; 平均損失: 2.6495 反復: 3134; 完了率: 78.3%; 平均損失: 2.9616 反復: 3135; 完了率: 78.4%; 平均損失: 2.7140 反復: 3136; 完了率: 78.4%; 平均損失: 2.5602 反復: 3137; 完了率: 78.4%; 平均損失: 2.8600 反復: 3138; 完了率: 78.5%; 平均損失: 2.9266 反復: 3139; 完了率: 78.5%; 平均損失: 2.7949 反復: 3140; 完了率: 78.5%; 平均損失: 2.8710 反復: 3141; 完了率: 78.5%; 平均損失: 2.6866 反復: 3142; 完了率: 78.5%; 平均損失: 2.7120 反復: 3143; 完了率: 78.6%; 平均損失: 2.7020 反復: 3144; 完了率: 78.6%; 平均損失: 2.9507 反復: 3145; 完了率: 78.6%; 平均損失: 2.8417 反復: 3146; 完了率: 78.6%; 平均損失: 3.0305 反復: 3147; 完了率: 78.7%; 平均損失: 2.7897 反復: 3148; 完了率: 78.7%; 平均損失: 2.8635 反復: 3149; 完了率: 78.7%; 平均損失: 2.7452 反復: 3150; 完了率: 78.8%; 平均損失: 2.8818 反復: 3151; 完了率: 78.8%; 平均損失: 2.9060 反復: 3152; 完了率: 78.8%; 平均損失: 2.9719 反復: 3153; 完了率: 78.8%; 平均損失: 2.8219 反復: 3154; 完了率: 78.8%; 平均損失: 2.9910
Iteration: 3155; Percent complete: 78.9%; Average loss: 2.6852
Iteration: 3156; Percent complete: 78.9%; Average loss: 2.7237
Iteration: 3157; Percent complete: 78.9%; Average loss: 3.0948
Iteration: 3158; Percent complete: 79.0%; Average loss: 2.5537
Iteration: 3159; Percent complete: 79.0%; Average loss: 2.9361
Iteration: 3160; Percent complete: 79.0%; Average loss: 2.7377
Iteration: 3161; Percent complete: 79.0%; Average loss: 2.8364
Iteration: 3162; Percent complete: 79.0%; Average loss: 3.2526
Iteration: 3163; Percent complete: 79.1%; Average loss: 2.9088
Iteration: 3164; Percent complete: 79.1%; Average loss: 2.7325
Iteration: 3165; Percent complete: 79.1%; Average loss: 2.7050 反復: 3166; 完了率: 79.1%; 平均損失: 2.9021 反復: 3167; 完了率: 79.2%; 平均損失: 2.6845 反復: 3168; 完了率: 79.2%; 平均損失: 2.5682 反復: 3169; 完了率: 79.2%; 平均損失: 2.7566 反復: 3170; 完了率: 79.2%; 平均損失: 2.8539 反復: 3171; 完了率: 79.3%; 平均損失: 2.8497 反復: 3172; 完了率: 79.3%; 平均損失: 2.8065 反復: 3173; 完了率: 79.3%; 平均損失: 2.7172 反復: 3174; 完了率: 79.3%; 平均損失: 2.5737 反復: 3175; 完了率: 79.4%; 平均損失: 2.7724 反復: 3176; 完了率: 79.4%; 平均損失: 2.9767 反復: 3177; 完了率: 79.4%; 平均損失: 2.7925 反復: 3178; 完了率: 79.5%; 平均損失: 2.8701 反復: 3179; 完了率: 79.5%; 平均損失: 2.7467 反復: 3180; 完了率: 79.5%; 平均損失: 2.9660 反復: 3181; 完了率: 79.5%; 平均損失: 2.6708 反復: 3182; 完了率: 79.5%; 平均損失: 2.9272 反復: 3183; 完了率: 79.6%; 平均損失: 2.9828 反復: 3184; 完了率: 79.6%; 平均損失: 2.7157 反復: 3185; 完了率: 79.6%; 平均損失: 2.8571 反復: 3186; 完了率: 79.7%; 平均損失: 3.0375 反復: 3187; 完了率: 79.7%; 平均損失: 2.9035
Iteration: 3188; Percent complete: 79.7%; Average loss: 2.7447
Iteration: 3189; Percent complete: 79.7%; Average loss: 2.9283
Iteration: 3190; Percent complete: 79.8%; Average loss: 2.8920
Iteration: 3191; Percent complete: 79.8%; Average loss: 2.7226
Iteration: 3192; Percent complete: 79.8%; Average loss: 2.8985
Iteration: 3193; Percent complete: 79.8%; Average loss: 2.6745
Iteration: 3194; Percent complete: 79.8%; Average loss: 2.8041
Iteration: 3195; Percent complete: 79.9%; Average loss: 2.8140
Iteration: 3196; Percent complete: 79.9%; Average loss: 2.8556
Iteration: 3197; Percent complete: 79.9%; Average loss: 2.9889
Iteration: 3198; Percent complete: 80.0%; Average loss: 2.7957 反復: 3199; 完了率: 80.0%。平均損失: 2.6416 反復: 3200; 完了率: 80.0%。平均損失: 2.6357 反復: 3201; 完了率: 80.0%。平均損失: 2.9236 反復: 3202; 完了率: 80.0%。平均損失: 2.9670 反復: 3203; 完了率: 80.1%。平均損失: 2.7551 反復: 3204; 完了率: 80.1%。平均損失: 3.1495 反復: 3205; 完了率: 80.1%。平均損失: 2.8007 反復: 3206; 完了率: 80.2%; 平均損失: 2.8798 反復: 3207; 完了率: 80.2%; 平均損失: 2.8633 反復: 3208; 完了率: 80.2%; 平均損失: 2.6346 反復: 3209; 完了率: 80.2%; 平均損失: 2.8682 反復: 3210; 完了率: 80.2%; 平均損失: 2.7418 反復: 3211; 完了率: 80.3%; 平均損失: 2.8445 反復: 3212; 完了率: 80.3%; 平均損失: 2.5554 反復: 3213; 完了率: 80.3%; 平均損失: 2.9644 反復: 3214; 完了率: 80.3%; 平均損失: 2.4941 反復: 3215; 完了率: 80.4%。平均損失: 2.9205 反復: 3216; 完了率: 80.4%。平均損失: 2.7244 反復: 3217; 完了率: 80.4%。平均損失: 2.5898 反復: 3218; 完了率: 80.5%; 平均損失: 2.7986 反復: 3219; 完了率: 80.5%; 平均損失: 2.8456 反復: 3220; 完了率: 80.5%; 平均損失: 2.4821
Iteration: 3221; Percent complete: 80.5%; Average loss: 2.7154
Iteration: 3222; Percent complete: 80.5%; Average loss: 2.9628
Iteration: 3223; Percent complete: 80.6%; Average loss: 2.7060
Iteration: 3224; Percent complete: 80.6%; Average loss: 2.6977
Iteration: 3225; Percent complete: 80.6%; Average loss: 2.5510
Iteration: 3226; Percent complete: 80.7%; Average loss: 2.7198
Iteration: 3227; Percent complete: 80.7%; Average loss: 2.6043
Iteration: 3228; Percent complete: 80.7%; Average loss: 2.9380
Iteration: 3229; Percent complete: 80.7%; Average loss: 2.6815
Iteration: 3230; Percent complete: 80.8%; Average loss: 2.8091
Iteration: 3231; Percent complete: 80.8%; Average loss: 2.8218 反復: 3232; 完了率: 80.8%; 平均損失: 2.9432 反復: 3233; 完了率: 80.8%; 平均損失: 3.0699 反復: 3234; 完了率: 80.8%; 平均損失: 2.8278 反復: 3235; 完了率: 80.9%; 平均損失: 3.0983 反復: 3236; 完了率: 80.9%; 平均損失: 2.8154 反復: 3237; 完了率: 80.9%; 平均損失: 2.8086 反復: 3238; 完了率: 81.0%。平均損失: 2.9475 反復: 3239; 完了率: 81.0%。平均損失: 2.9266 反復: 3240; 完了率: 81.0%。平均損失: 2.8253 反復: 3241; 完了率: 81.0%。平均損失: 2.7953 反復: 3242; 完了率: 81.0%。平均損失: 2.9004
Iteration: 3243; Percent complete: 81.1%; Average loss: 2.8787
Iteration: 3244; Percent complete: 81.1%; Average loss: 2.8104
Iteration: 3245; Percent complete: 81.1%; Average loss: 2.6948
Iteration: 3246; Percent complete: 81.2%; Average loss: 2.6422
Iteration: 3247; Percent complete: 81.2%; Average loss: 2.9437
Iteration: 3248; Percent complete: 81.2%; Average loss: 2.7166
Iteration: 3249; Percent complete: 81.2%; Average loss: 2.8278
Iteration: 3250; Percent complete: 81.2%; Average loss: 2.8422
Iteration: 3251; Percent complete: 81.3%; Average loss: 2.5193
Iteration: 3252; Percent complete: 81.3%; Average loss: 2.7059
Iteration: 3253; Percent complete: 81.3%; Average loss: 2.9195
Iteration: 3254; Percent complete: 81.3%; Average loss: 2.8990
Iteration: 3255; Percent complete: 81.4%; Average loss: 2.6993
Iteration: 3256; Percent complete: 81.4%; Average loss: 2.6709
Iteration: 3257; Percent complete: 81.4%; Average loss: 2.7223
Iteration: 3258; Percent complete: 81.5%; Average loss: 2.8889
Iteration: 3259; Percent complete: 81.5%; Average loss: 2.9270
Iteration: 3260; Percent complete: 81.5%; Average loss: 2.6876
Iteration: 3261; Percent complete: 81.5%; Average loss: 2.7127
Iteration: 3262; Percent complete: 81.5%; Average loss: 3.0798
Iteration: 3263; Percent complete: 81.6%; Average loss: 2.8046
Iteration: 3264; Percent complete: 81.6%; Average loss: 2.7639
Iteration: 3265; Percent complete: 81.6%; Average loss: 2.9201
Iteration: 3266; Percent complete: 81.7%; Average loss: 2.7510
Iteration: 3267; Percent complete: 81.7%; Average loss: 2.7054
Iteration: 3268; Percent complete: 81.7%; Average loss: 2.6526
Iteration: 3269; Percent complete: 81.7%; Average loss: 2.8209
Iteration: 3270; Percent complete: 81.8%; Average loss: 2.9094
Iteration: 3271; Percent complete: 81.8%; Average loss: 3.0820
Iteration: 3272; Percent complete: 81.8%; Average loss: 2.6721
Iteration: 3273; Percent complete: 81.8%; Average loss: 2.7111
Iteration: 3274; Percent complete: 81.8%; Average loss: 2.7203
Iteration: 3275; Percent complete: 81.9%; Average loss: 2.7512 反復: 3276; 完了率: 81.9%; 平均損失: 2.8124 反復: 3277; 完了率: 81.9%; 平均損失: 2.7715 反復: 3278; 完了率: 82.0%; 平均損失: 2.8204 反復: 3279; 完了率: 82.0%; 平均損失: 3.0395 反復: 3280; 完了率: 82.0%; 平均損失: 2.8295 反復: 3281; 完了率: 82.0%; 平均損失: 2.7881 反復: 3282; 完了率: 82.0%; 平均損失: 2.6979 反復: 3283; 完了率: 82.1%; 平均損失: 2.6769 反復: 3284; 完了率: 82.1%; 平均損失: 2.6460 反復: 3285; 完了率: 82.1%; 平均損失: 2.7962 反復: 3286; 完了率: 82.2%; 平均損失: 2.7910 反復: 3287; 完了率: 82.2%; 平均損失: 3.0559 反復: 3288; 完了率: 82.2%; 平均損失: 2.9007 反復: 3289; 完了率: 82.2%; 平均損失: 2.8694 反復: 3290; 完了率: 82.2%; 平均損失: 2.7307 反復: 3291; 完了率: 82.3%; 平均損失: 2.6929 反復: 3292; 完了率: 82.3%; 平均損失: 2.7497 反復: 3293; 完了率: 82.3%; 平均損失: 2.8241 反復: 3294; 完了率: 82.3%; 平均損失: 2.7501 反復: 3295; 完了率: 82.4%; 平均損失: 2.5850 反復: 3296; 完了率: 82.4%; 平均損失: 2.6161 反復: 3297; 完了率: 82.4%; 平均損失: 2.7449
Iteration: 3298; Percent complete: 82.5%; Average loss: 2.8577
Iteration: 3299; Percent complete: 82.5%; Average loss: 2.7315
Iteration: 3300; Percent complete: 82.5%; Average loss: 2.7427
Iteration: 3301; Percent complete: 82.5%; Average loss: 2.6189
Iteration: 3302; Percent complete: 82.5%; Average loss: 2.9017
Iteration: 3303; Percent complete: 82.6%; Average loss: 2.5443
Iteration: 3304; Percent complete: 82.6%; Average loss: 2.9497
Iteration: 3305; Percent complete: 82.6%; Average loss: 3.0320
Iteration: 3306; Percent complete: 82.7%; Average loss: 2.9408
Iteration: 3307; Percent complete: 82.7%; Average loss: 2.8410
Iteration: 3308; Percent complete: 82.7%; Average loss: 2.6126 反復: 3309; 完了率: 82.7%; 平均損失: 2.8933 反復: 3310; 完了率: 82.8%; 平均損失: 2.5893 反復: 3311; 完了率: 82.8%; 平均損失: 2.7185 反復: 3312; 完了率: 82.8%; 平均損失: 2.8440 反復: 3313; 完了率: 82.8%; 平均損失: 2.8038 反復: 3314; 完了率: 82.8%; 平均損失: 2.7622 反復: 3315; 完了率: 82.9%; 平均損失: 2.7783 反復: 3316; 完了率: 82.9%; 平均損失: 2.8411 反復: 3317; 完了率: 82.9%; 平均損失: 2.7213 反復: 3318; 完了率: 83.0%; 平均損失: 2.8476 反復: 3319; 完了率: 83.0%; 平均損失: 2.5962
Iteration: 3320; Percent complete: 83.0%; Average loss: 2.5748
Iteration: 3321; Percent complete: 83.0%; Average loss: 3.0046
Iteration: 3322; Percent complete: 83.0%; Average loss: 2.8728
Iteration: 3323; Percent complete: 83.1%; Average loss: 3.0009
Iteration: 3324; Percent complete: 83.1%; Average loss: 2.8239
Iteration: 3325; Percent complete: 83.1%; Average loss: 2.6387
Iteration: 3326; Percent complete: 83.2%; Average loss: 2.7339
Iteration: 3327; Percent complete: 83.2%; Average loss: 2.7873
Iteration: 3328; Percent complete: 83.2%; Average loss: 2.7353
Iteration: 3329; Percent complete: 83.2%; Average loss: 2.6732
Iteration: 3330; Percent complete: 83.2%; Average loss: 2.9801
Iteration: 3331; Percent complete: 83.3%; Average loss: 2.9347
Iteration: 3332; Percent complete: 83.3%; Average loss: 2.7679
Iteration: 3333; Percent complete: 83.3%; Average loss: 2.9384
Iteration: 3334; Percent complete: 83.4%; Average loss: 2.9751
Iteration: 3335; Percent complete: 83.4%; Average loss: 2.5600
Iteration: 3336; Percent complete: 83.4%; Average loss: 2.7513
Iteration: 3337; Percent complete: 83.4%; Average loss: 3.0063
Iteration: 3338; Percent complete: 83.5%; Average loss: 2.9776
Iteration: 3339; Percent complete: 83.5%; Average loss: 2.9802
Iteration: 3340; Percent complete: 83.5%; Average loss: 2.5724
Iteration: 3341; Percent complete: 83.5%; Average loss: 2.6180 反復: 3342; 完了率: 83.5%; 平均損失: 2.8074 反復: 3343; 完了率: 83.6%; 平均損失: 2.8554 反復: 3344; 完了率: 83.6%; 平均損失: 2.7027 反復: 3345; 完了率: 83.6%; 平均損失: 2.4525 反復: 3346; 完了率: 83.7%; 平均損失: 2.6573 反復: 3347; 完了率: 83.7%; 平均損失: 2.8320 反復: 3348; 完了率: 83.7%; 平均損失: 2.8179 反復: 3349; 完了率: 83.7%; 平均損失: 2.6926 反復: 3350; 完了率: 83.8%; 平均損失: 2.7373 反復: 3351; 完了率: 83.8%; 平均損失: 2.8590 反復: 3352; 完了率: 83.8%; 平均損失: 2.6714
Iteration: 3353; Percent complete: 83.8%; Average loss: 2.9105
Iteration: 3354; Percent complete: 83.9%; Average loss: 2.8235
Iteration: 3355; Percent complete: 83.9%; Average loss: 3.0087
Iteration: 3356; Percent complete: 83.9%; Average loss: 2.7190
Iteration: 3357; Percent complete: 83.9%; Average loss: 2.5479
Iteration: 3358; Percent complete: 84.0%; Average loss: 2.4556
Iteration: 3359; Percent complete: 84.0%; Average loss: 2.8012
Iteration: 3360; Percent complete: 84.0%; Average loss: 2.6544
Iteration: 3361; Percent complete: 84.0%; Average loss: 2.9614
Iteration: 3362; Percent complete: 84.0%; Average loss: 2.6810
Iteration: 3363; Percent complete: 84.1%; Average loss: 2.9058 反復: 3364; 完了率: 84.1%; 平均損失: 2.9030 反復: 3365; 完了率: 84.1%; 平均損失: 2.6595 反復: 3366; 完了率: 84.2%; 平均損失: 2.5416 反復: 3367; 完了率: 84.2%; 平均損失: 2.8108 反復: 3368; 完了率: 84.2%; 平均損失: 2.6372 反復: 3369; 完了率: 84.2%; 平均損失: 2.8206 反復: 3370; 完了率: 84.2%; 平均損失: 2.8026 反復: 3371; 完了率: 84.3%; 平均損失: 2.7672 反復: 3372; 完了率: 84.3%; 平均損失: 2.6234 反復: 3373; 完了率: 84.3%; 平均損失: 2.4573 反復: 3374; 完了率: 84.4%; 平均損失: 2.9953 反復: 3375; 完了率: 84.4%; 平均損失: 2.9841 反復: 3376; 完了率: 84.4%; 平均損失: 2.7384 反復: 3377; 完了率: 84.4%; 平均損失: 2.8440 反復: 3378; 完了率: 84.5%; 平均損失: 2.8853 反復: 3379; 完了率: 84.5%; 平均損失: 3.0234 反復: 3380; 完了率: 84.5%; 平均損失: 2.8834 反復: 3381; 完了率: 84.5%; 平均損失: 2.6846 反復: 3382; 完了率: 84.5%; 平均損失: 2.6604 反復: 3383; 完了率: 84.6%; 平均損失: 2.6224 反復: 3384; 完了率: 84.6%; 平均損失: 2.6794 反復: 3385; 完了率: 84.6%; 平均損失: 2.7924 反復: 3386; 完了率: 84.7%。平均損失: 2.6941 反復: 3387; 完了率: 84.7%。平均損失: 2.7740 反復: 3388; 完了率: 84.7%。平均損失: 2.7753 反復: 3389; 完了率: 84.7%。平均損失: 2.7299 反復: 3390; 完了率: 84.8%; 平均損失: 2.7328 反復: 3391; 完了率: 84.8%; 平均損失: 2.8047 反復: 3392; 完了率: 84.8%; 平均損失: 2.7817 反復: 3393; 完了率: 84.8%; 平均損失: 2.7174 反復: 3394; 完了率: 84.9%; 平均損失: 2.8049 反復: 3395; 完了率: 84.9%; 平均損失: 2.6655 反復: 3396; 完了率: 84.9%; 平均損失: 2.7204 反復: 3397; 完了率: 84.9%; 平均損失: 2.8554 反復: 3398; 完了率: 85.0%; 平均損失: 2.8406 反復: 3399; 完了率: 85.0%; 平均損失: 2.9535 反復: 3400; 完了率: 85.0%; 平均損失: 2.6640 反復: 3401; 完了率: 85.0%; 平均損失: 2.7967 反復: 3402; 完了率: 85.0%; 平均損失: 2.7708 反復: 3403; 完了率: 85.1%; 平均損失: 2.6161 反復: 3404; 完了率: 85.1%; 平均損失: 3.0213 反復: 3405; 完了率: 85.1%; 平均損失: 2.7013 反復: 3406; 完了率: 85.2%; 平均損失: 2.7775 反復: 3407; 完了率: 85.2%; 平均損失: 2.7898
Iteration: 3408; Percent complete: 85.2%; Average loss: 2.6115
Iteration: 3409; Percent complete: 85.2%; Average loss: 2.8597
Iteration: 3410; Percent complete: 85.2%; Average loss: 2.9997
Iteration: 3411; Percent complete: 85.3%; Average loss: 2.8141
Iteration: 3412; Percent complete: 85.3%; Average loss: 2.8401
Iteration: 3413; Percent complete: 85.3%; Average loss: 2.7250
Iteration: 3414; Percent complete: 85.4%; Average loss: 2.8816
Iteration: 3415; Percent complete: 85.4%; Average loss: 2.7123
Iteration: 3416; Percent complete: 85.4%; Average loss: 2.8894
Iteration: 3417; Percent complete: 85.4%; Average loss: 2.5748
Iteration: 3418; Percent complete: 85.5%; Average loss: 3.0192 反復: 3419; 完了率: 85.5%; 平均損失: 2.9752 反復: 3420; 完了率: 85.5%; 平均損失: 2.7181 反復: 3421; 完了率: 85.5%; 平均損失: 2.6595 反復: 3422; 完了率: 85.5%; 平均損失: 2.4863 反復: 3423; 完了率: 85.6%; 平均損失: 2.8345 反復: 3424; 完了率: 85.6%; 平均損失: 2.8755 反復: 3425; 完了率: 85.6%; 平均損失: 2.8255 反復: 3426; 完了率: 85.7%; 平均損失: 2.9485 反復: 3427; 完了率: 85.7%; 平均損失: 2.7626 反復: 3428; 完了率: 85.7%; 平均損失: 2.7899 反復: 3429; 完了率: 85.7%; 平均損失: 2.8026 反復: 3430; 完了率: 85.8%; 平均損失: 2.8465 反復: 3431; 完了率: 85.8%; 平均損失: 2.6793 反復: 3432; 完了率: 85.8%; 平均損失: 2.8408 反復: 3433; 完了率: 85.8%; 平均損失: 2.7349 反復: 3434; 完了率: 85.9%; 平均損失: 2.8249 反復: 3435; 完了率: 85.9%; 平均損失: 2.8336 反復: 3436; 完了率: 85.9%; 平均損失: 2.7261 反復: 3437; 完了率: 85.9%; 平均損失: 2.8402 反復: 3438; 完了率: 86.0%; 平均損失: 2.7069 反復: 3439; 完了率: 86.0%; 平均損失: 2.6607 反復: 3440; 完了率: 86.0%; 平均損失: 2.7467 反復: 3441; 完了率: 86.0%; 平均損失: 2.9448 反復: 3442; 完了率: 86.1%; 平均損失: 2.8681 反復: 3443; 完了率: 86.1%; 平均損失: 2.8738 反復: 3444; 完了率: 86.1%; 平均損失: 2.8173 反復: 3445; 完了率: 86.1%; 平均損失: 2.8469 反復: 3446; 完了率: 86.2%; 平均損失: 2.7472 反復: 3447; 完了率: 86.2%; 平均損失: 2.7954 反復: 3448; 完了率: 86.2%; 平均損失: 2.7072 反復: 3449; 完了率: 86.2%; 平均損失: 2.5905 反復: 3450; 完了率: 86.2%; 平均損失: 2.5758 反復: 3451; 完了率: 86.3%; 平均損失: 3.0044 反復: 3452; 完了率: 86.3%; 平均損失: 2.7904 反復: 3453; 完了率: 86.3%; 平均損失: 2.7993 反復: 3454; 完了率: 86.4%; 平均損失: 2.6122 反復: 3455; 完了率: 86.4%; 平均損失: 2.7726 反復: 3456; 完了率: 86.4%; 平均損失: 2.8104 反復: 3457; 完了率: 86.4%; 平均損失: 2.8232 反復: 3458; 完了率: 86.5%; 平均損失: 2.5644 反復: 3459; 完了率: 86.5%; 平均損失: 2.8328 反復: 3460; 完了率: 86.5%; 平均損失: 2.6664 反復: 3461; 完了率: 86.5%; 平均損失: 2.8304 反復: 3462; 完了率: 86.6%; 平均損失: 2.9252 反復: 3463; 完了率: 86.6%; 平均損失: 2.6962 反復: 3464; 完了率: 86.6%; 平均損失: 2.5979 反復: 3465; 完了率: 86.6%; 平均損失: 2.9462 反復: 3466; 完了率: 86.7%; 平均損失: 2.7088 反復: 3467; 完了率: 86.7%; 平均損失: 2.7608 反復: 3468; 完了率: 86.7%; 平均損失: 2.4718 反復: 3469; 完了率: 86.7%; 平均損失: 2.6991 反復: 3470; 完了率: 86.8%; 平均損失: 2.5704 反復: 3471; 完了率: 86.8%; 平均損失: 3.0580 反復: 3472; 完了率: 86.8%; 平均損失: 2.7719 反復: 3473; 完了率: 86.8%; 平均損失: 2.4440
Iteration: 3474; Percent complete: 86.9%; Average loss: 2.6198
Iteration: 3475; Percent complete: 86.9%; Average loss: 2.7791
Iteration: 3476; Percent complete: 86.9%; Average loss: 2.7811
Iteration: 3477; Percent complete: 86.9%; Average loss: 2.6923
Iteration: 3478; Percent complete: 87.0%; Average loss: 2.7642
Iteration: 3479; Percent complete: 87.0%; Average loss: 2.7881
Iteration: 3480; Percent complete: 87.0%; Average loss: 2.8239
Iteration: 3481; Percent complete: 87.0%; Average loss: 2.6705
Iteration: 3482; Percent complete: 87.1%; Average loss: 2.8210
Iteration: 3483; Percent complete: 87.1%; Average loss: 2.6707
Iteration: 3484; Percent complete: 87.1%; Average loss: 2.8185 反復: 3485; 完了率: 87.1%; 平均損失: 2.7985 反復: 3486; 完了率: 87.2%; 平均損失: 2.7844 反復: 3487; 完了率: 87.2%; 平均損失: 2.8306 反復: 3488; 完了率: 87.2%; 平均損失: 3.1132 反復: 3489; 完了率: 87.2%; 平均損失: 2.6521 反復: 3490; 完了率: 87.2%; 平均損失: 2.4139 反復: 3491; 完了率: 87.3%; 平均損失: 2.6487 反復: 3492; 完了率: 87.3%; 平均損失: 2.6204 反復: 3493; 完了率: 87.3%; 平均損失: 2.7592 反復: 3494; 完了率: 87.4%; 平均損失: 2.6602 反復: 3495; 完了率: 87.4%; 平均損失: 2.5900 反復: 3496; 完了率: 87.4%; 平均損失: 2.5858 反復: 3497; 完了率: 87.4%; 平均損失: 2.6409 反復: 3498; 完了率: 87.5%; 平均損失: 2.5494 反復: 3499; 完了率: 87.5%; 平均損失: 2.7200 反復: 3500; 完了率: 87.5%; 平均損失: 2.6720 反復: 3501; 完了率: 87.5%; 平均損失: 2.7163 反復: 3502; 完了率: 87.5%; 平均損失: 2.7596 反復: 3503; 完了率: 87.6%; 平均損失: 2.7312 反復: 3504; 完了率: 87.6%; 平均損失: 2.7443 反復: 3505; 完了率: 87.6%; 平均損失: 2.8204 反復: 3506; 完了率: 87.6%; 平均損失: 2.7911 反復: 3507; 完了率: 87.7%; 平均損失: 2.9469 反復: 3508; 完了率: 87.7%; 平均損失: 2.7480 反復: 3509; 完了率: 87.7%; 平均損失: 2.6906 反復: 3510; 完了率: 87.8%; 平均損失: 2.8618 反復: 3511; 完了率: 87.8%; 平均損失: 2.8359 反復: 3512; 完了率: 87.8%; 平均損失: 2.5062 反復: 3513; 完了率: 87.8%; 平均損失: 2.7921 反復: 3514; 完了率: 87.8%; 平均損失: 2.6098 反復: 3515; 完了率: 87.9%; 平均損失: 2.6168 反復: 3516; 完了率: 87.9%; 平均損失: 2.5469 反復: 3517; 完了率: 87.9%; 平均損失: 2.7013
Iteration: 3518; Percent complete: 87.9%; Average loss: 2.8768
Iteration: 3519; Percent complete: 88.0%; Average loss: 2.8726
Iteration: 3520; Percent complete: 88.0%; Average loss: 2.9047
Iteration: 3521; Percent complete: 88.0%; Average loss: 2.8708
Iteration: 3522; Percent complete: 88.0%; Average loss: 3.1170
Iteration: 3523; Percent complete: 88.1%; Average loss: 2.7559
Iteration: 3524; Percent complete: 88.1%; Average loss: 2.8676
Iteration: 3525; Percent complete: 88.1%; Average loss: 2.6612
Iteration: 3526; Percent complete: 88.1%; Average loss: 2.8355
Iteration: 3527; Percent complete: 88.2%; Average loss: 2.7610
Iteration: 3528; Percent complete: 88.2%; Average loss: 2.7662 反復: 3529; 完了率: 88.2%; 平均損失: 2.7512 反復: 3530; 完了率: 88.2%; 平均損失: 2.9301 反復: 3531; 完了率: 88.3%; 平均損失: 2.7874 反復: 3532; 完了率: 88.3%; 平均損失: 2.5787 反復: 3533; 完了率: 88.3%; 平均損失: 2.7850 反復: 3534; 完了率: 88.3%; 平均損失: 2.7126 反復: 3535; 完了率: 88.4%; 平均損失: 2.7459 反復: 3536; 完了率: 88.4%; 平均損失: 2.9294 反復: 3537; 完了率: 88.4%; 平均損失: 2.5340 反復: 3538; 完了率: 88.4%; 平均損失: 2.6260 反復: 3539; 完了率: 88.5%; 平均損失: 2.8287
Iteration: 3540; Percent complete: 88.5%; Average loss: 2.6459
Iteration: 3541; Percent complete: 88.5%; Average loss: 2.8550
Iteration: 3542; Percent complete: 88.5%; Average loss: 2.5899
Iteration: 3543; Percent complete: 88.6%; Average loss: 2.8788
Iteration: 3544; Percent complete: 88.6%; Average loss: 2.5765
Iteration: 3545; Percent complete: 88.6%; Average loss: 2.7901
Iteration: 3546; Percent complete: 88.6%; Average loss: 2.6997
Iteration: 3547; Percent complete: 88.7%; Average loss: 2.8477
Iteration: 3548; Percent complete: 88.7%; Average loss: 2.9909
Iteration: 3549; Percent complete: 88.7%; Average loss: 2.8567
Iteration: 3550; Percent complete: 88.8%; Average loss: 2.8606 反復: 3551; 完了率: 88.8%; 平均損失: 2.8080 反復: 3552; 完了率: 88.8%; 平均損失: 2.8942 反復: 3553; 完了率: 88.8%; 平均損失: 2.8278 反復: 3554; 完了率: 88.8%; 平均損失: 2.8610 反復: 3555; 完了率: 88.9%; 平均損失: 2.8320 反復: 3556; 完了率: 88.9%; 平均損失: 2.6372 反復: 3557; 完了率: 88.9%; 平均損失: 2.6317 反復: 3558; 完了率: 88.9%; 平均損失: 2.6140 反復: 3559; 完了率: 89.0%; 平均損失: 3.0410 反復: 3560; 完了率: 89.0%; 平均損失: 2.7379 反復: 3561; 完了率: 89.0%; 平均損失: 2.7798 反復: 3562; 完了率: 89.0%; 平均損失: 2.8355 反復: 3563; 完了率: 89.1%; 平均損失: 2.8215 反復: 3564; 完了率: 89.1%; 平均損失: 2.6736 反復: 3565; 完了率: 89.1%; 平均損失: 2.8057 反復: 3566; 完了率: 89.1%; 平均損失: 2.7152 反復: 3567; 完了率: 89.2%; 平均損失: 2.9272 反復: 3568; 完了率: 89.2%; 平均損失: 2.6022 反復: 3569; 完了率: 89.2%; 平均損失: 2.7309 反復: 3570; 完了率: 89.2%; 平均損失: 2.8384 反復: 3571; 完了率: 89.3%; 平均損失: 2.8851 反復: 3572; 完了率: 89.3%; 平均損失: 2.8461
Iteration: 3573; Percent complete: 89.3%; Average loss: 3.0362
Iteration: 3574; Percent complete: 89.3%; Average loss: 2.9118
Iteration: 3575; Percent complete: 89.4%; Average loss: 2.6766
Iteration: 3576; Percent complete: 89.4%; Average loss: 2.9396
Iteration: 3577; Percent complete: 89.4%; Average loss: 2.7340
Iteration: 3578; Percent complete: 89.5%; Average loss: 2.7063
Iteration: 3579; Percent complete: 89.5%; Average loss: 2.7147
Iteration: 3580; Percent complete: 89.5%; Average loss: 3.0200
Iteration: 3581; Percent complete: 89.5%; Average loss: 2.6899
Iteration: 3582; Percent complete: 89.5%; Average loss: 2.7638
Iteration: 3583; Percent complete: 89.6%; Average loss: 2.6044
Iteration: 3584; Percent complete: 89.6%; Average loss: 2.7298
Iteration: 3585; Percent complete: 89.6%; Average loss: 2.7614
Iteration: 3586; Percent complete: 89.6%; Average loss: 2.4114
Iteration: 3587; Percent complete: 89.7%; Average loss: 2.7286
Iteration: 3588; Percent complete: 89.7%; Average loss: 2.7075
Iteration: 3589; Percent complete: 89.7%; Average loss: 2.6162
Iteration: 3590; Percent complete: 89.8%; Average loss: 2.7386
Iteration: 3591; Percent complete: 89.8%; Average loss: 2.6989
Iteration: 3592; Percent complete: 89.8%; Average loss: 2.6732
Iteration: 3593; Percent complete: 89.8%; Average loss: 2.8108
Iteration: 3594; Percent complete: 89.8%; Average loss: 2.8565 反復: 3595; 完了率: 89.9%; 平均損失: 2.7946 反復: 3596; 完了率: 89.9%; 平均損失: 3.0089 反復: 3597; 完了率: 89.9%; 平均損失: 2.6279 反復: 3598; 完了率: 90.0%。平均損失: 2.8314 反復: 3599; 完了率: 90.0%。平均損失: 2.6598 反復: 3600; 完了率: 90.0%。平均損失: 2.7648 反復: 3601; 完了率: 90.0%。平均損失: 2.5402 反復: 3602; 完了率: 90.0%。平均損失: 2.5389 反復: 3603; 完了率: 90.1%。平均損失: 2.7983 反復: 3604; 完了率: 90.1%。平均損失: 2.7628 反復: 3605; 完了率: 90.1%。平均損失: 2.7221 反復: 3606; 完了率: 90.1%。平均損失: 2.6466 反復: 3607; 完了率: 90.2%。平均損失: 2.6100 反復: 3608; 完了率: 90.2%。平均損失: 2.5764 反復: 3609; 完了率: 90.2%。平均損失: 2.6835 反復: 3610; 完了率: 90.2%。平均損失: 2.8244 反復: 3611; 完了率: 90.3%; 平均損失: 2.9182 反復: 3612; 完了率: 90.3%; 平均損失: 2.6517 反復: 3613; 完了率: 90.3%; 平均損失: 2.7013 反復: 3614; 完了率: 90.3%; 平均損失: 2.6401 反復: 3615; 完了率: 90.4%。平均損失: 2.8516 反復: 3616; 完了率: 90.4%。平均損失: 2.8123 反復: 3617; 完了率: 90.4%。平均損失: 2.9108 反復: 3618; 完了率: 90.5%。平均損失: 2.7267 反復: 3619; 完了率: 90.5%。平均損失: 2.7662 反復: 3620; 完了率: 90.5%。平均損失: 2.6778 反復: 3621; 完了率: 90.5%。平均損失: 2.6348 反復: 3622; 完了率: 90.5%。平均損失: 2.6747 反復: 3623; 完了率: 90.6%; 平均損失: 2.7144 反復: 3624; 完了率: 90.6%; 平均損失: 2.9864 反復: 3625; 完了率: 90.6%; 平均損失: 2.7164 反復: 3626; 完了率: 90.6%; 平均損失: 2.6071 反復: 3627; 完了率: 90.7%。平均損失: 2.8184 反復: 3628; 完了率: 90.7%。平均損失: 2.6309 反復: 3629; 完了率: 90.7%。平均損失: 2.6569 反復: 3630; 完了率: 90.8%; 平均損失: 2.5672 反復: 3631; 完了率: 90.8%; 平均損失: 2.6873 反復: 3632; 完了率: 90.8%; 平均損失: 2.6012 反復: 3633; 完了率: 90.8%; 平均損失: 2.4427 反復: 3634; 完了率: 90.8%; 平均損失: 2.8365 反復: 3635; 完了率: 90.9%; 平均損失: 2.8504 反復: 3636; 完了率: 90.9%; 平均損失: 2.6796 反復: 3637; 完了率: 90.9%; 平均損失: 2.6758 反復: 3638; 完了率: 91.0%。平均損失: 2.8730 反復: 3639; 完了率: 91.0%。平均損失: 2.8273 反復: 3640; 完了率: 91.0%。平均損失: 2.7344 反復: 3641; 完了率: 91.0%。平均損失: 2.6402 反復: 3642; 完了率: 91.0%。平均損失: 2.7121 反復: 3643; 完了率: 91.1%; 平均損失: 2.8056 反復: 3644; 完了率: 91.1%; 平均損失: 2.6174 反復: 3645; 完了率: 91.1%; 平均損失: 2.8500 反復: 3646; 完了率: 91.1%; 平均損失: 2.5030 反復: 3647; 完了率: 91.2%; 平均損失: 2.5810 反復: 3648; 完了率: 91.2%; 平均損失: 2.7504 反復: 3649; 完了率: 91.2%; 平均損失: 2.8266 反復: 3650; 完了率: 91.2%; 平均損失: 2.4768 反復: 3651; 完了率: 91.3%; 平均損失: 2.9129 反復: 3652; 完了率: 91.3%; 平均損失: 2.8645 反復: 3653; 完了率: 91.3%; 平均損失: 2.7685 反復: 3654; 完了率: 91.3%; 平均損失: 2.5624 反復: 3655; 完了率: 91.4%; 平均損失: 2.6051 反復: 3656; 完了率: 91.4%; 平均損失: 2.7336 反復: 3657; 完了率: 91.4%; 平均損失: 2.4216 反復: 3658; 完了率: 91.5%。平均損失: 2.8978 反復: 3659; 完了率: 91.5%。平均損失: 2.5845 反復: 3660; 完了率: 91.5%。平均損失: 2.5773 反復: 3661; 完了率: 91.5%; 平均損失: 2.7689 反復: 3662; 完了率: 91.5%; 平均損失: 2.5163 反復: 3663; 完了率: 91.6%; 平均損失: 2.6596 反復: 3664; 完了率: 91.6%; 平均損失: 2.7167 反復: 3665; 完了率: 91.6%; 平均損失: 2.7671 反復: 3666; 完了率: 91.6%; 平均損失: 2.8112 反復: 3667; 完了率: 91.7%; 平均損失: 2.7090 反復: 3668; 完了率: 91.7%; 平均損失: 2.5884 反復: 3669; 完了率: 91.7%; 平均損失: 2.6506 反復: 3670; 完了率: 91.8%; 平均損失: 2.5689 反復: 3671; 完了率: 91.8%; 平均損失: 2.7311 反復: 3672; 完了率: 91.8%; 平均損失: 2.7123 反復: 3673; 完了率: 91.8%; 平均損失: 2.8758 反復: 3674; 完了率: 91.8%; 平均損失: 2.7133 反復: 3675; 完了率: 91.9%; 平均損失: 2.8349 反復: 3676; 完了率: 91.9%; 平均損失: 2.6373 反復: 3677; 完了率: 91.9%; 平均損失: 2.8591 反復: 3678; 完了率: 92.0%; 平均損失: 2.5873 反復: 3679; 完了率: 92.0%; 平均損失: 2.6120 反復: 3680; 完了率: 92.0%; 平均損失: 2.7672 反復: 3681; 完了率: 92.0%; 平均損失: 2.6883 反復: 3682; 完了率: 92.0%; 平均損失: 2.7915
Iteration: 3683; Percent complete: 92.1%; Average loss: 2.6473
Iteration: 3684; Percent complete: 92.1%; Average loss: 2.7358
Iteration: 3685; Percent complete: 92.1%; Average loss: 2.8190
Iteration: 3686; Percent complete: 92.2%; Average loss: 2.7850
Iteration: 3687; Percent complete: 92.2%; Average loss: 2.8133
Iteration: 3688; Percent complete: 92.2%; Average loss: 2.7788
Iteration: 3689; Percent complete: 92.2%; Average loss: 2.6773
Iteration: 3690; Percent complete: 92.2%; Average loss: 2.5675
Iteration: 3691; Percent complete: 92.3%; Average loss: 2.8387
Iteration: 3692; Percent complete: 92.3%; Average loss: 2.7262
Iteration: 3693; Percent complete: 92.3%; Average loss: 2.7366 反復: 3694; 完了率: 92.3%; 平均損失: 2.6363 反復: 3695; 完了率: 92.4%; 平均損失: 2.6683 反復: 3696; 完了率: 92.4%; 平均損失: 2.6788 反復: 3697; 完了率: 92.4%; 平均損失: 2.5709 反復: 3698; 完了率: 92.5%。平均損失: 2.9124 反復: 3699; 完了率: 92.5%; 平均損失: 2.6450 反復: 3700; 完了率: 92.5%; 平均損失: 2.4612 反復: 3701; 完了率: 92.5%。平均損失: 2.8257 反復: 3702; 完了率: 92.5%; 平均損失: 2.5446 反復: 3703; 完了率: 92.6%; 平均損失: 2.6667 反復: 3704; 完了率: 92.6%; 平均損失: 2.8471
Iteration: 3705; Percent complete: 92.6%; Average loss: 2.8430
Iteration: 3706; Percent complete: 92.7%; Average loss: 2.7194
Iteration: 3707; Percent complete: 92.7%; Average loss: 2.6570
Iteration: 3708; Percent complete: 92.7%; Average loss: 2.8474
Iteration: 3709; Percent complete: 92.7%; Average loss: 2.4262
Iteration: 3710; Percent complete: 92.8%; Average loss: 2.6800
Iteration: 3711; Percent complete: 92.8%; Average loss: 2.6894
Iteration: 3712; Percent complete: 92.8%; Average loss: 2.6992
Iteration: 3713; Percent complete: 92.8%; Average loss: 2.7174
Iteration: 3714; Percent complete: 92.8%; Average loss: 2.5818
Iteration: 3715; Percent complete: 92.9%; Average loss: 2.6703 反復: 3716; 完了率: 92.9%; 平均損失: 2.5048 反復: 3717; 完了率: 92.9%; 平均損失: 2.7490 反復: 3718; 完了率: 93.0%。平均損失: 2.6542 反復: 3719; 完了率: 93.0%。平均損失: 2.7477 反復: 3720; 完了率: 93.0%。平均損失: 2.4950 反復: 3721; 完了率: 93.0%。平均損失: 2.6997 反復: 3722; 完了率: 93.0%。平均損失: 2.6816 反復: 3723; 完了率: 93.1%; 平均損失: 2.4302 反復: 3724; 完了率: 93.1%; 平均損失: 2.5426 反復: 3725; 完了率: 93.1%; 平均損失: 2.4839 反復: 3726; 完了率: 93.2%; 平均損失: 2.7340 反復: 3727; 完了率: 93.2%; 平均損失: 2.6138 反復: 3728; 完了率: 93.2%; 平均損失: 2.7054 反復: 3729; 完了率: 93.2%; 平均損失: 2.7504 反復: 3730; 完了率: 93.2%; 平均損失: 2.7205 反復: 3731; 完了率: 93.3%; 平均損失: 2.7578 反復: 3732; 完了率: 93.3%; 平均損失: 2.8587 反復: 3733; 完了率: 93.3%; 平均損失: 2.9270 反復: 3734; 完了率: 93.3%; 平均損失: 2.7222 反復: 3735; 完了率: 93.4%; 平均損失: 2.7213 反復: 3736; 完了率: 93.4%; 平均損失: 2.6702 反復: 3737; 完了率: 93.4%; 平均損失: 2.6471 反復: 3738; 完了率: 93.5%; 平均損失: 2.6078 反復: 3739; 完了率: 93.5%; 平均損失: 2.7186 反復: 3740; 完了率: 93.5%; 平均損失: 2.6023 反復: 3741; 完了率: 93.5%; 平均損失: 2.9626 反復: 3742; 完了率: 93.5%; 平均損失: 2.8468 反復: 3743; 完了率: 93.6%; 平均損失: 2.7226 反復: 3744; 完了率: 93.6%; 平均損失: 2.8998 反復: 3745; 完了率: 93.6%; 平均損失: 2.8648 反復: 3746; 完了率: 93.7%; 平均損失: 3.0555 反復: 3747; 完了率: 93.7%; 平均損失: 2.7035 反復: 3748; 完了率: 93.7%; 平均損失: 2.7067 反復: 3749; 完了率: 93.7%; 平均損失: 2.7013 反復: 3750; 完了率: 93.8%; 平均損失: 2.5435 反復: 3751; 完了率: 93.8%; 平均損失: 2.6595 反復: 3752; 完了率: 93.8%; 平均損失: 2.5083 反復: 3753; 完了率: 93.8%; 平均損失: 2.5779 反復: 3754; 完了率: 93.8%; 平均損失: 2.6909 反復: 3755; 完了率: 93.9%; 平均損失: 2.6591 反復: 3756; 完了率: 93.9%; 平均損失: 2.5542 反復: 3757; 完了率: 93.9%; 平均損失: 2.6636 反復: 3758; 完了率: 94.0%。平均損失: 2.5661 反復: 3759; 完了率: 94.0%。平均損失: 2.6147 反復: 3760; 完了率: 94.0%。平均損失: 2.7017 反復: 3761; 完了率: 94.0%。平均損失: 2.7625 反復: 3762; 完了率: 94.0%。平均損失: 2.7397 反復: 3763; 完了率: 94.1%; 平均損失: 2.6138 反復: 3764; 完了率: 94.1%; 平均損失: 2.5307 反復: 3765; 完了率: 94.1%; 平均損失: 2.8562 反復: 3766; 完了率: 94.2%; 平均損失: 2.6652 反復: 3767; 完了率: 94.2%; 平均損失: 2.8562 反復: 3768; 完了率: 94.2%; 平均損失: 2.7857 反復: 3769; 完了率: 94.2%; 平均損失: 2.5083 反復: 3770; 完了率: 94.2%; 平均損失: 2.8911 反復: 3771; 完了率: 94.3%; 平均損失: 2.6249 反復: 3772; 完了率: 94.3%; 平均損失: 2.7005 反復: 3773; 完了率: 94.3%; 平均損失: 2.6009 反復: 3774; 完了率: 94.3%; 平均損失: 2.5665 反復: 3775; 完了率: 94.4%; 平均損失: 2.5138 反復: 3776; 完了率: 94.4%; 平均損失: 2.6655 反復: 3777; 完了率: 94.4%; 平均損失: 2.8657 反復: 3778; 完了率: 94.5%; 平均損失: 2.5001 反復: 3779; 完了率: 94.5%; 平均損失: 2.6228 反復: 3780; 完了率: 94.5%; 平均損失: 2.5617 反復: 3781; 完了率: 94.5%; 平均損失: 2.6953 反復: 3782; 完了率: 94.5%; 平均損失: 2.4952 反復: 3783; 完了率: 94.6%; 平均損失: 2.5539 ​​反復: 3784; 完了率: 94.6%; 平均損失: 2.7657 反復: 3785; 完了率: 94.6%; 平均損失: 2.6469 反復: 3786; 完了率: 94.7%; 平均損失: 2.4009 反復: 3787; 完了率: 94.7%; 平均損失: 2.6236 反復: 3788; 完了率: 94.7%; 平均損失: 2.6385 反復: 3789; 完了率: 94.7%; 平均損失: 2.5184 反復: 3790; 完了率: 94.8%; 平均損失: 2.6221 反復: 3791; 完了率: 94.8%; 平均損失: 2.6313 反復: 3792; 完了率: 94.8%; 平均損失: 2.5371
Iteration: 3793; Percent complete: 94.8%; Average loss: 2.8493
Iteration: 3794; Percent complete: 94.8%; Average loss: 2.8268
Iteration: 3795; Percent complete: 94.9%; Average loss: 2.6625
Iteration: 3796; Percent complete: 94.9%; Average loss: 2.3860
Iteration: 3797; Percent complete: 94.9%; Average loss: 2.4374
Iteration: 3798; Percent complete: 95.0%; Average loss: 2.9135
Iteration: 3799; Percent complete: 95.0%; Average loss: 2.5645
Iteration: 3800; Percent complete: 95.0%; Average loss: 2.7008
Iteration: 3801; Percent complete: 95.0%; Average loss: 2.7151
Iteration: 3802; Percent complete: 95.0%; Average loss: 2.7126
Iteration: 3803; Percent complete: 95.1%; Average loss: 2.8037 反復: 3804; 完了率: 95.1%; 平均損失: 2.6022 反復: 3805; 完了率: 95.1%; 平均損失: 2.5613 反復: 3806; 完了率: 95.2%; 平均損失: 2.5516 反復: 3807; 完了率: 95.2%; 平均損失: 2.6314 反復: 3808; 完了率: 95.2%; 平均損失: 2.5786 反復: 3809; 完了率: 95.2%; 平均損失: 2.7161 反復: 3810; 完了率: 95.2%; 平均損失: 2.5971 反復: 3811; 完了率: 95.3%; 平均損失: 2.5140 反復: 3812; 完了率: 95.3%; 平均損失: 2.7214 反復: 3813; 完了率: 95.3%; 平均損失: 2.5879 反復: 3814; 完了率: 95.3%; 平均損失: 2.7323 反復: 3815; 完了率: 95.4%; 平均損失: 2.4288 反復: 3816; 完了率: 95.4%; 平均損失: 2.3905 反復: 3817; 完了率: 95.4%; 平均損失: 2.8395 反復: 3818; 完了率: 95.5%; 平均損失: 2.6922 反復: 3819; 完了率: 95.5%; 平均損失: 2.4721 反復: 3820; 完了率: 95.5%; 平均損失: 2.6364 反復: 3821; 完了率: 95.5%; 平均損失: 2.7145 反復: 3822; 完了率: 95.5%; 平均損失: 2.9123 反復: 3823; 完了率: 95.6%; 平均損失: 2.8346 反復: 3824; 完了率: 95.6%; 平均損失: 2.6357 反復: 3825; 完了率: 95.6%; 平均損失: 2.6206 反復: 3826; 完了率: 95.7%; 平均損失: 2.6325 反復: 3827; 完了率: 95.7%; 平均損失: 2.6916 反復: 3828; 完了率: 95.7%; 平均損失: 2.7359 反復: 3829; 完了率: 95.7%; 平均損失: 2.5711 反復: 3830; 完了率: 95.8%; 平均損失: 2.5284 反復: 3831; 完了率: 95.8%; 平均損失: 2.5201 反復: 3832; 完了率: 95.8%; 平均損失: 2.5575 反復: 3833; 完了率: 95.8%; 平均損失: 2.6967 反復: 3834; 完了率: 95.9%; 平均損失: 2.6176 反復: 3835; 完了率: 95.9%; 平均損失: 2.6494 反復: 3836; 完了率: 95.9%; 平均損失: 2.7287 反復: 3837; 完了率: 95.9%; 平均損失: 2.6330 反復: 3838; 完了率: 96.0%; 平均損失: 2.5388 反復: 3839; 完了率: 96.0%; 平均損失: 2.6551 反復: 3840; 完了率: 96.0%; 平均損失: 2.7726 反復: 3841; 完了率: 96.0%; 平均損失: 2.6993 反復: 3842; 完了率: 96.0%; 平均損失: 2.5991 反復: 3843; 完了率: 96.1%; 平均損失: 2.8557 反復: 3844; 完了率: 96.1%; 平均損失: 2.7503 反復: 3845; 完了率: 96.1%; 平均損失: 2.6678 反復: 3846; 完了率: 96.2%; 平均損失: 2.6106 反復: 3847; 完了率: 96.2%; 平均損失: 2.5073 反復: 3848; 完了率: 96.2%; 平均損失: 2.8810 反復: 3849; 完了率: 96.2%; 平均損失: 2.8745 反復: 3850; 完了率: 96.2%; 平均損失: 2.5725 反復: 3851; 完了率: 96.3%; 平均損失: 2.6830 反復: 3852; 完了率: 96.3%; 平均損失: 2.6917 反復: 3853; 完了率: 96.3%; 平均損失: 2.5075 反復: 3854; 完了率: 96.4%; 平均損失: 2.7758 反復: 3855; 完了率: 96.4%; 平均損失: 2.6969 反復: 3856; 完了率: 96.4%; 平均損失: 2.6698 反復: 3857; 完了率: 96.4%; 平均損失: 2.6776 反復: 3858; 完了率: 96.5%。平均損失: 2.6811 反復: 3859; 完了率: 96.5%。平均損失: 2.5248 反復: 3860; 完了率: 96.5%。平均損失: 2.6718 反復: 3861; 完了率: 96.5%。平均損失: 2.5831 反復: 3862; 完了率: 96.5%。平均損失: 2.5664 反復: 3863; 完了率: 96.6%; 平均損失: 2.5255 反復: 3864; 完了率: 96.6%; 平均損失: 2.4772 反復: 3865; 完了率: 96.6%; 平均損失: 2.6524 反復: 3866; 完了率: 96.7%; 平均損失: 2.6471 反復: 3867; 完了率: 96.7%; 平均損失: 2.6476 反復: 3868; 完了率: 96.7%; 平均損失: 2.9476 反復: 3869; 完了率: 96.7%; 平均損失: 2.6810 反復: 3870; 完了率: 96.8%; 平均損失: 2.6436 反復: 3871; 完了率: 96.8%; 平均損失: 2.6814 反復: 3872; 完了率: 96.8%; 平均損失: 2.9034 反復: 3873; 完了率: 96.8%; 平均損失: 2.5310 反復: 3874; 完了率: 96.9%; 平均損失: 2.5421 反復: 3875; 完了率: 96.9%; 平均損失: 2.5524 反復: 3876; 完了率: 96.9%; 平均損失: 2.8562 反復: 3877; 完了率: 96.9%; 平均損失: 2.5371 反復: 3878; 完了率: 97.0%; 平均損失: 2.6829 反復: 3879; 完了率: 97.0%。平均損失: 2.5408 反復: 3880; 完了率: 97.0%。平均損失: 2.5973 反復: 3881; 完了率: 97.0%。平均損失: 2.9697 反復: 3882; 完了率: 97.0%。平均損失: 2.5783 反復: 3883; 完了率: 97.1%; 平均損失: 2.6535 反復: 3884; 完了率: 97.1%; 平均損失: 2.6010 反復: 3885; 完了率: 97.1%; 平均損失: 2.7076 反復: 3886; 完了率: 97.2%。平均損失: 2.7900 反復: 3887; 完了率: 97.2%。平均損失: 2.6427 反復: 3888; 完了率: 97.2%。平均損失: 2.4965 反復: 3889; 完了率: 97.2%。平均損失: 2.6037 反復: 3890; 完了率: 97.2%。平均損失: 2.8009 反復: 3891; 完了率: 97.3%; 平均損失: 2.7477
Iteration: 3892; Percent complete: 97.3%; Average loss: 2.6942
Iteration: 3893; Percent complete: 97.3%; Average loss: 2.7080
Iteration: 3894; Percent complete: 97.4%; Average loss: 2.5550
Iteration: 3895; Percent complete: 97.4%; Average loss: 2.6863
Iteration: 3896; Percent complete: 97.4%; Average loss: 2.6794
Iteration: 3897; Percent complete: 97.4%; Average loss: 2.7341
Iteration: 3898; Percent complete: 97.5%; Average loss: 2.7724
Iteration: 3899; Percent complete: 97.5%; Average loss: 2.5887
Iteration: 3900; Percent complete: 97.5%; Average loss: 2.4887
Iteration: 3901; Percent complete: 97.5%; Average loss: 2.8475
Iteration: 3902; Percent complete: 97.5%; Average loss: 2.6156
Iteration: 3903; Percent complete: 97.6%; Average loss: 2.5832
Iteration: 3904; Percent complete: 97.6%; Average loss: 2.4399
Iteration: 3905; Percent complete: 97.6%; Average loss: 2.5649
Iteration: 3906; Percent complete: 97.7%; Average loss: 2.5641
Iteration: 3907; Percent complete: 97.7%; Average loss: 2.6843
Iteration: 3908; Percent complete: 97.7%; Average loss: 2.7426
Iteration: 3909; Percent complete: 97.7%; Average loss: 2.6517
Iteration: 3910; Percent complete: 97.8%; Average loss: 2.4766
Iteration: 3911; Percent complete: 97.8%; Average loss: 2.7366
Iteration: 3912; Percent complete: 97.8%; Average loss: 2.6297
Iteration: 3913; Percent complete: 97.8%; Average loss: 2.7345 反復: 3914; 完了率: 97.9%; 平均損失: 2.4512 反復: 3915; 完了率: 97.9%; 平均損失: 2.5863 反復: 3916; 完了率: 97.9%; 平均損失: 2.4112 反復: 3917; 完了率: 97.9%; 平均損失: 2.6183 反復: 3918; 完了率: 98.0%。平均損失: 2.5369 反復: 3919; 完了率: 98.0%。平均損失: 2.6257 反復: 3920; 完了率: 98.0%。平均損失: 2.8218 反復: 3921; 完了率: 98.0%。平均損失: 2.7838 反復: 3922; 完了率: 98.0%。平均損失: 2.5347 反復: 3923; 完了率: 98.1%; 平均損失: 2.8182 反復: 3924; 完了率: 98.1%; 平均損失: 2.8228
Iteration: 3925; Percent complete: 98.1%; Average loss: 2.4613
Iteration: 3926; Percent complete: 98.2%; Average loss: 2.6345
Iteration: 3927; Percent complete: 98.2%; Average loss: 2.5573
Iteration: 3928; Percent complete: 98.2%; Average loss: 2.5987
Iteration: 3929; Percent complete: 98.2%; Average loss: 2.6230
Iteration: 3930; Percent complete: 98.2%; Average loss: 2.7079
Iteration: 3931; Percent complete: 98.3%; Average loss: 2.8116
Iteration: 3932; Percent complete: 98.3%; Average loss: 2.5638
Iteration: 3933; Percent complete: 98.3%; Average loss: 2.6776
Iteration: 3934; Percent complete: 98.4%; Average loss: 3.1590
Iteration: 3935; Percent complete: 98.4%; Average loss: 2.5967 反復: 3936; 完了率: 98.4%; 平均損失: 2.5994 反復: 3937; 完了率: 98.4%; 平均損失: 2.5659 反復: 3938; 完了率: 98.5%; 平均損失: 2.5290 反復: 3939; 完了率: 98.5%; 平均損失: 2.5583 反復: 3940; 完了率: 98.5%; 平均損失: 2.7167 反復: 3941; 完了率: 98.5%; 平均損失: 2.7366 反復: 3942; 完了率: 98.6%; 平均損失: 2.7614 反復: 3943; 完了率: 98.6%; 平均損失: 2.5108 反復: 3944; 完了率: 98.6%; 平均損失: 2.5622 反復: 3945; 完了率: 98.6%; 平均損失: 2.5238 反復: 3946; 完了率: 98.7%; 平均損失: 2.6395 反復: 3947; 完了率: 98.7%; 平均損失: 2.5558 反復: 3948; 完了率: 98.7%; 平均損失: 2.6299 反復: 3949; 完了率: 98.7%; 平均損失: 2.6570 反復: 3950; 完了率: 98.8%; 平均損失: 2.7326 反復: 3951; 完了率: 98.8%; 平均損失: 2.4626 反復: 3952; 完了率: 98.8%; 平均損失: 2.8095 反復: 3953; 完了率: 98.8%; 平均損失: 2.6987 反復: 3954; 完了率: 98.9%; 平均損失: 2.8271 反復: 3955; 完了率: 98.9%; 平均損失: 2.5704 反復: 3956; 完了率: 98.9%; 平均損失: 2.4923 反復: 3957; 完了率: 98.9%; 平均損失: 2.7392 反復: 3958; 完了率: 99.0%; 平均損失: 2.3489 反復: 3959; 完了率: 99.0%; 平均損失: 2.5856 反復: 3960; 完了率: 99.0%; 平均損失: 2.6154 反復: 3961; 完了率: 99.0%; 平均損失: 2.6293 反復: 3962; 完了率: 99.1%; 平均損失: 2.7962 反復: 3963; 完了率: 99.1%; 平均損失: 2.6515 反復: 3964; 完了率: 99.1%; 平均損失: 2.6082 反復: 3965; 完了率: 99.1%; 平均損失: 2.7281 反復: 3966; 完了率: 99.2%; 平均損失: 2.6643 反復: 3967; 完了率: 99.2%; 平均損失: 2.7574 反復: 3968; 完了率: 99.2%; 平均損失: 2.4648 反復: 3969; 完了率: 99.2%; 平均損失: 2.4254 反復: 3970; 完了率: 99.2%; 平均損失: 2.5172 反復: 3971; 完了率: 99.3%; 平均損失: 2.7743 反復: 3972; 完了率: 99.3%; 平均損失: 2.7413 反復: 3973; 完了率: 99.3%; 平均損失: 2.6376 反復: 3974; 完了率: 99.4%; 平均損失: 2.5133 反復: 3975; 完了率: 99.4%; 平均損失: 2.8758 反復: 3976; 完了率: 99.4%; 平均損失: 2.6715 反復: 3977; 完了率: 99.4%; 平均損失: 2.7414 反復: 3978; 完了率: 99.5%; 平均損失: 2.5120 反復: 3979; 完了率: 99.5%; 平均損失: 2.4649
Iteration: 3980; Percent complete: 99.5%; Average loss: 2.3961
Iteration: 3981; Percent complete: 99.5%; Average loss: 2.6099
Iteration: 3982; Percent complete: 99.6%; Average loss: 2.3744
Iteration: 3983; Percent complete: 99.6%; Average loss: 2.7075
Iteration: 3984; Percent complete: 99.6%; Average loss: 2.5045
Iteration: 3985; Percent complete: 99.6%; Average loss: 2.5938
Iteration: 3986; Percent complete: 99.7%; Average loss: 2.8155
Iteration: 3987; Percent complete: 99.7%; Average loss: 2.3436
Iteration: 3988; Percent complete: 99.7%; Average loss: 2.7481
Iteration: 3989; Percent complete: 99.7%; Average loss: 2.6009
Iteration: 3990; Percent complete: 99.8%; Average loss: 2.4274 反復: 3991; 完了率: 99.8%; 平均損失: 2.6879 反復: 3992; 完了率: 99.8%; 平均損失: 2.6810 反復: 3993; 完了率: 99.8%; 平均損失: 2.6043 反復: 3994; 完了率: 99.9%。平均損失: 2.7498 反復: 3995; 完了率: 99.9%。平均損失: 2.4941 反復: 3996; 完了率: 99.9%。平均損失: 2.6143 反復: 3997; 完了率: 99.9%。平均損失: 2.4641 反復: 3998; 完了率: 100.0%; 平均損失: 2.7322 反復: 3999; 完了率: 100.0%; 平均損失: 2.6586 反復: 4000; 完了率: 100.0%; 平均損失: 2.9412

評価を実行する

モデルとチャットするには、次のブロックを実行します。

# ドロップアウト層を「eval」モードに設定します
encoder.eval ()
 decoder.eval () 

# 検索モジュールを初期化します
searcher  =  GreedySearchDecoder ( encoder ,  decoder ) 

# チャットを開始します (コメントを解除して次の行を実行して開始します) 
# EvaluateInput(encoder 、デコーダー、サーチャー、VOC)

結論は

それが今回のすべてです、皆さん。おめでとうございます。生成型チャットボット モデルの構築の基本を理解できました。興味があれば、モデルとトレーニング パラメーターを調整し、モデルがトレーニングされたデータをカスタマイズすることによって、チャットボットの動作をカスタマイズしてみることができます。

PyTorch のさらに優れた深層学習アプリケーションについては、他のチュートリアルをご覧ください。

おすすめ

転載: blog.csdn.net/sinat_37574187/article/details/131933699