{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "DweYe9FcbMK_" }, "source": [ "##### Copyright 2018 The TensorFlow Authors.\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "cellView": "form", "execution": { "iopub.execute_input": "2022-12-15T01:16:30.989655Z", "iopub.status.busy": "2022-12-15T01:16:30.989236Z", "iopub.status.idle": "2022-12-15T01:16:30.993199Z", "shell.execute_reply": "2022-12-15T01:16:30.992581Z" }, "id": "AVV2e0XKbJeX" }, "outputs": [], "source": [ "#@title Licensed under the Apache License, Version 2.0 (the \"License\");\n", "# you may not use this file except in compliance with the License.\n", "# You may obtain a copy of the License at\n", "#\n", "# https://www.apache.org/licenses/LICENSE-2.0\n", "#\n", "# Unless required by applicable law or agreed to in writing, software\n", "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", "# See the License for the specific language governing permissions and\n", "# limitations under the License." ] }, { "cell_type": "markdown", "metadata": { "id": "sZfSvVcDo6GQ" }, "source": [ "# テキストを読み込む" ] }, { "cell_type": "markdown", "metadata": { "id": "giK0nMbZFnoR" }, "source": [ "
![]() | \n",
" ![]() | \n",
" ![]() | \n",
" ![]() | \n",
"
Python
、`CSharp`、`JavaScript`、または`Java`) でラベルされています。このタスクでは、質問のタグを予測するモデルを開発します。これは、マルチクラス分類の例です。マルチクラス分類は、重要で広く適用できる機械学習の問題です。"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "tjC3yLa5IjP7"
},
"source": [
"### データセットをダウンロードして調査する\n",
"\n",
"まず、`tf.keras.utils.get_file` を使用して Stack Overflow データセットをダウンロードし、ディレクトリの構造を調べます。"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:00.219199Z",
"iopub.status.busy": "2022-12-15T01:17:00.218769Z",
"iopub.status.idle": "2022-12-15T01:17:02.248984Z",
"shell.execute_reply": "2022-12-15T01:17:02.248138Z"
},
"id": "8ELgzA6SHTuV"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Downloading data from https://storage.googleapis.com/download.tensorflow.org/data/stack_overflow_16k.tar.gz\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r",
" 16384/6053168 [..............................] - ETA: 0s"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"6053888/6053168 [==============================] - 0s 0us/step\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"6062080/6053168 [==============================] - 0s 0us/step\n"
]
}
],
"source": [
"data_url = 'https://storage.googleapis.com/download.tensorflow.org/data/stack_overflow_16k.tar.gz'\n",
"\n",
"dataset_dir = utils.get_file(\n",
" origin=data_url,\n",
" untar=True,\n",
" cache_dir='stack_overflow',\n",
" cache_subdir='')\n",
"\n",
"dataset_dir = pathlib.Path(dataset_dir).parent"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:02.253083Z",
"iopub.status.busy": "2022-12-15T01:17:02.252573Z",
"iopub.status.idle": "2022-12-15T01:17:02.259634Z",
"shell.execute_reply": "2022-12-15T01:17:02.259076Z"
},
"id": "jIrPl5fUH2gb"
},
"outputs": [
{
"data": {
"text/plain": [
"[PosixPath('/tmp/.keras/test'),\n",
" PosixPath('/tmp/.keras/train'),\n",
" PosixPath('/tmp/.keras/README.md'),\n",
" PosixPath('/tmp/.keras/stack_overflow_16k.tar.gz')]"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"list(dataset_dir.iterdir())"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:02.263050Z",
"iopub.status.busy": "2022-12-15T01:17:02.262562Z",
"iopub.status.idle": "2022-12-15T01:17:02.266938Z",
"shell.execute_reply": "2022-12-15T01:17:02.266329Z"
},
"id": "fEoV7YByJoWQ"
},
"outputs": [
{
"data": {
"text/plain": [
"[PosixPath('/tmp/.keras/train/csharp'),\n",
" PosixPath('/tmp/.keras/train/javascript'),\n",
" PosixPath('/tmp/.keras/train/python'),\n",
" PosixPath('/tmp/.keras/train/java')]"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"train_dir = dataset_dir/'train'\n",
"list(train_dir.iterdir())"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "3mxAN17MhEh0"
},
"source": [
"`train/csharp`、`train/java`、`train/python` および `train/javascript` ディレクトリには、多くのテキストファイルが含まれています。それぞれが Stack Overflow の質問です。\n",
"\n",
"サンプルファイルを出力してデータを調べます。"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:02.270216Z",
"iopub.status.busy": "2022-12-15T01:17:02.269781Z",
"iopub.status.idle": "2022-12-15T01:17:02.273488Z",
"shell.execute_reply": "2022-12-15T01:17:02.272835Z"
},
"id": "Go1vTSGdJu08"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"why does this blank program print true x=true.def stupid():. x=false.stupid().print x\n",
"\n"
]
}
],
"source": [
"sample_file = train_dir/'python/1755.txt'\n",
"\n",
"with open(sample_file) as f:\n",
" print(f.read())"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "deWBTkpJiO7D"
},
"source": [
"### データセットを読み込む\n",
"\n",
"次に、データをディスクから読み込み、トレーニングに適した形式に準備します。これを行うには、`tf.keras.utils.text_dataset_from_directory` ユーティリティを使用して、ラベル付きの `tf.data.Dataset` を作成します。これは、入力パイプラインを構築するための強力なツールのコレクションです。`tf.data` を始めて使用する場合は、[tf.data: TensorFlow 入力パイプラインを構築する](../../guide/data.ipynb)を参照してください。\n",
"\n",
"`tf.keras.utils.text_dataset_from_directory` API は、次のようなディレクトリ構造を想定しています。\n",
"\n",
"```\n",
"train/\n",
"...csharp/\n",
"......1.txt\n",
"......2.txt\n",
"...java/\n",
"......1.txt\n",
"......2.txt\n",
"...javascript/\n",
"......1.txt\n",
"......2.txt\n",
"...python/\n",
"......1.txt\n",
"......2.txt\n",
"```"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Dyl6JTAjlbQV"
},
"source": [
"機械学習実験を実行するときは、データセットを[トレーニング](https://developers.google.com/machine-learning/glossary#training_set)、[検証](https://developers.google.com/machine-learning/glossary#validation_set)、および、[テスト](https://developers.google.com/machine-learning/glossary#test-set)の 3 つに分割することをお勧めします。\n",
"\n",
"Stack Overflow データセットは、すでにトレーニングセットとテストセットに分割されていますが、検証セットはありません。\n",
"\n",
"`tf.keras.utils.text_dataset_from_directory` を使用し、`validation_split` を `0.2` (20%) に設定し、トレーニングデータを 80:20 に分割して検証セットを作成します。"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:02.276837Z",
"iopub.status.busy": "2022-12-15T01:17:02.276334Z",
"iopub.status.idle": "2022-12-15T01:17:05.793949Z",
"shell.execute_reply": "2022-12-15T01:17:05.793190Z"
},
"id": "qqyliMw8N-az"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Found 8000 files belonging to 4 classes.\n",
"Using 6400 files for training.\n"
]
}
],
"source": [
"batch_size = 32\n",
"seed = 42\n",
"\n",
"raw_train_ds = utils.text_dataset_from_directory(\n",
" train_dir,\n",
" batch_size=batch_size,\n",
" validation_split=0.2,\n",
" subset='training',\n",
" seed=seed)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "DMI_gPLfloD7"
},
"source": [
"前のセル出力が示すように、トレーニングフォルダには 8,000 の例があり、そのうち 80% (6,400) をトレーニングに使用します。`tf.data.Dataset` を `Model.fit` に直接渡すことで、モデルをトレーニングできます。詳細は、後ほど見ていきます。\n",
"\n",
"まず、データセットを反復処理し、いくつかの例を出力して、データを確認します。\n",
"\n",
"注意: 分類問題の難易度を上げるために、データセットの作成者は、プログラミングの質問で、*Python*、*CSharp*、*JavaScript*、*Java* という単語を *blank* に置き換えました。"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:05.798150Z",
"iopub.status.busy": "2022-12-15T01:17:05.797586Z",
"iopub.status.idle": "2022-12-15T01:17:05.840737Z",
"shell.execute_reply": "2022-12-15T01:17:05.840052Z"
},
"id": "_JMTyZ6Glt_C"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Question: b'\"my tester is going to the wrong constructor i am new to programming so if i ask a question that can be easily fixed, please forgive me. my program has a tester class with a main. when i send that to my regularpolygon class, it sends it to the wrong constructor. i have two constructors. 1 without perameters..public regularpolygon(). {. mynumsides = 5;. mysidelength = 30;. }//end default constructor...and my second, with perameters. ..public regularpolygon(int numsides, double sidelength). {. mynumsides = numsides;. mysidelength = sidelength;. }// end constructor...in my tester class i have these two lines:..regularpolygon shape = new regularpolygon(numsides, sidelength);. shape.menu();...numsides and sidelength were declared and initialized earlier in the testing class...so what i want to happen, is the tester class sends numsides and sidelength to the second constructor and use it in that class. but it only uses the default constructor, which therefor ruins the whole rest of the program. can somebody help me?..for those of you who want to see more of my code: here you go..public double vertexangle(). {. system.out.println(\"\"the vertex angle method: \"\" + mynumsides);// prints out 5. system.out.println(\"\"the vertex angle method: \"\" + mysidelength); // prints out 30.. double vertexangle;. vertexangle = ((mynumsides - 2.0) / mynumsides) * 180.0;. return vertexangle;. }//end method vertexangle..public void menu().{. system.out.println(mynumsides); // prints out what the user puts in. system.out.println(mysidelength); // prints out what the user puts in. gotographic();. calcr(mynumsides, mysidelength);. calcr(mynumsides, mysidelength);. print(); .}// end menu...this is my entire tester class:..public static void main(string[] arg).{. int numsides;. double sidelength;. scanner keyboard = new scanner(system.in);.. system.out.println(\"\"welcome to the regular polygon program!\"\");. system.out.println();.. system.out.print(\"\"enter the number of sides of the polygon ==> \"\");. numsides = keyboard.nextint();. system.out.println();.. system.out.print(\"\"enter the side length of each side ==> \"\");. sidelength = keyboard.nextdouble();. system.out.println();.. regularpolygon shape = new regularpolygon(numsides, sidelength);. shape.menu();.}//end main...for testing it i sent it numsides 4 and sidelength 100.\"\\n'\n",
"Label: 1\n",
"Question: b'\"blank code slow skin detection this code changes the color space to lab and using a threshold finds the skin area of an image. but it\\'s ridiculously slow. i don\\'t know how to make it faster ? ..from colormath.color_objects import *..def skindetection(img, treshold=80, color=[255,20,147]):.. print img.shape. res=img.copy(). for x in range(img.shape[0]):. for y in range(img.shape[1]):. rgbimg=rgbcolor(img[x,y,0],img[x,y,1],img[x,y,2]). labimg=rgbimg.convert_to(\\'lab\\', debug=false). if (labimg.lab_l > treshold):. res[x,y,:]=color. else: . res[x,y,:]=img[x,y,:].. return res\"\\n'\n",
"Label: 3\n",
"Question: b'\"option and validation in blank i want to add a new option on my system where i want to add two text files, both rental.txt and customer.txt. inside each text are id numbers of the customer, the videotape they need and the price...i want to place it as an option on my code. right now i have:...add customer.rent return.view list.search.exit...i want to add this as my sixth option. say for example i ordered a video, it would display the price and would let me confirm the price and if i am going to buy it or not...here is my current code:.. import blank.io.*;. import blank.util.arraylist;. import static blank.lang.system.out;.. public class rentalsystem{. static bufferedreader input = new bufferedreader(new inputstreamreader(system.in));. static file file = new file(\"\"file.txt\"\");. static arraylist<string> list = new arraylist<string>();. static int rows;.. public static void main(string[] args) throws exception{. introduction();. system.out.print(\"\"nn\"\");. login();. system.out.print(\"\"nnnnnnnnnnnnnnnnnnnnnn\"\");. introduction();. string repeat;. do{. loadfile();. system.out.print(\"\"nwhat do you want to do?nn\"\");. system.out.print(\"\"n - - - - - - - - - - - - - - - - - - - - - - -\"\");. system.out.print(\"\"nn | 1. add customer | 2. rent return |n\"\");. system.out.print(\"\"n - - - - - - - - - - - - - - - - - - - - - - -\"\");. system.out.print(\"\"nn | 3. view list | 4. search |n\"\");. system.out.print(\"\"n - - - - - - - - - - - - - - - - - - - - - - -\"\");. system.out.print(\"\"nn | 5. exit |n\"\");. system.out.print(\"\"n - - - - - - - - - -\"\");. system.out.print(\"\"nnchoice:\"\");. int choice = integer.parseint(input.readline());. switch(choice){. case 1:. writedata();. break;. case 2:. rentdata();. break;. case 3:. viewlist();. break;. case 4:. search();. break;. case 5:. system.out.println(\"\"goodbye!\"\");. system.exit(0);. default:. system.out.print(\"\"invalid choice: \"\");. break;. }. system.out.print(\"\"ndo another task? [y/n] \"\");. repeat = input.readline();. }while(repeat.equals(\"\"y\"\"));.. if(repeat!=\"\"y\"\") system.out.println(\"\"ngoodbye!\"\");.. }.. public static void writedata() throws exception{. system.out.print(\"\"nname: \"\");. string cname = input.readline();. system.out.print(\"\"address: \"\");. string add = input.readline();. system.out.print(\"\"phone no.: \"\");. string pno = input.readline();. system.out.print(\"\"rental amount: \"\");. string ramount = input.readline();. system.out.print(\"\"tapenumber: \"\");. string tno = input.readline();. system.out.print(\"\"title: \"\");. string title = input.readline();. system.out.print(\"\"date borrowed: \"\");. string dborrowed = input.readline();. system.out.print(\"\"due date: \"\");. string ddate = input.readline();. createline(cname, add, pno, ramount,tno, title, dborrowed, ddate);. rentdata();. }.. public static void createline(string name, string address, string phone , string rental, string tapenumber, string title, string borrowed, string due) throws exception{. filewriter fw = new filewriter(file, true);. fw.write(\"\"nname: \"\"+name + \"\"naddress: \"\" + address +\"\"nphone no.: \"\"+ phone+\"\"nrentalamount: \"\"+rental+\"\"ntape no.: \"\"+ tapenumber+\"\"ntitle: \"\"+ title+\"\"ndate borrowed: \"\"+borrowed +\"\"ndue date: \"\"+ due+\"\":rn\"\");. fw.close();. }.. public static void loadfile() throws exception{. try{. list.clear();. fileinputstream fstream = new fileinputstream(file);. bufferedreader br = new bufferedreader(new inputstreamreader(fstream));. rows = 0;. while( br.ready()). {. list.add(br.readline());. rows++;. }. br.close();. } catch(exception e){. system.out.println(\"\"list not yet loaded.\"\");. }. }.. public static void viewlist(){. system.out.print(\"\"n~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~\"\");. system.out.print(\"\" |list of all costumers|\"\");. system.out.print(\"\"~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~\"\");. for(int i = 0; i <rows; i++){. system.out.println(list.get(i));. }. }. public static void rentdata()throws exception. { system.out.print(\"\"n~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~\"\");. system.out.print(\"\" |rent data list|\"\");. system.out.print(\"\"~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~\"\");. system.out.print(\"\"nenter customer name: \"\");. string cname = input.readline();. system.out.print(\"\"date borrowed: \"\");. string dborrowed = input.readline();. system.out.print(\"\"due date: \"\");. string ddate = input.readline();. system.out.print(\"\"return date: \"\");. string rdate = input.readline();. system.out.print(\"\"rent amount: \"\");. string ramount = input.readline();.. system.out.print(\"\"you pay:\"\"+ramount);... }. public static void search()throws exception. { system.out.print(\"\"n~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~\"\");. system.out.print(\"\" |search costumers|\"\");. system.out.print(\"\"~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~\"\");. system.out.print(\"\"nenter costumer name: \"\");. string cname = input.readline();. boolean found = false;.. for(int i=0; i < rows; i++){. string temp[] = list.get(i).split(\"\",\"\");.. if(cname.equals(temp[0])){. system.out.println(\"\"search result:nyou are \"\" + temp[0] + \"\" from \"\" + temp[1] + \"\".\"\"+ temp[2] + \"\".\"\"+ temp[3] + \"\".\"\"+ temp[4] + \"\".\"\"+ temp[5] + \"\" is \"\" + temp[6] + \"\".\"\"+ temp[7] + \"\" is \"\" + temp[8] + \"\".\"\");. found = true;. }. }.. if(!found){. system.out.print(\"\"no results.\"\");. }.. }.. public static boolean evaluate(string uname, string pass){. if (uname.equals(\"\"admin\"\")&&pass.equals(\"\"12345\"\")) return true;. else return false;. }.. public static string login()throws exception{. bufferedreader input=new bufferedreader(new inputstreamreader(system.in));. int counter=0;. do{. system.out.print(\"\"username:\"\");. string uname =input.readline();. system.out.print(\"\"password:\"\");. string pass =input.readline();.. boolean accept= evaluate(uname,pass);.. if(accept){. break;. }else{. system.out.println(\"\"incorrect username or password!\"\");. counter ++;. }. }while(counter<3);.. if(counter !=3) return \"\"login successful\"\";. else return \"\"login failed\"\";. }. public static void introduction() throws exception{.. system.out.println(\"\" - - - - - - - - - - - - - - - - - - - - - - - - -\"\");. system.out.println(\"\" ! r e n t a l !\"\");. system.out.println(\"\" ! ~ ~ ~ ~ ~ ! ================= ! ~ ~ ~ ~ ~ !\"\");. system.out.println(\"\" ! s y s t e m !\"\");. system.out.println(\"\" - - - - - - - - - - - - - - - - - - - - - - - - -\"\");. }..}\"\\n'\n",
"Label: 1\n",
"Question: b'\"exception: dynamic sql generation for the updatecommand is not supported against a selectcommand that does not return any key i dont know what is the problem this my code : ..string nomtable;..datatable listeetablissementtable = new datatable();.datatable listeinteretstable = new datatable();.dataset ds = new dataset();.sqldataadapter da;.sqlcommandbuilder cmdb;..private void listeinterets_click(object sender, eventargs e).{. nomtable = \"\"listeinteretstable\"\";. d.cnx.open();. da = new sqldataadapter(\"\"select nome from offices\"\", d.cnx);. ds = new dataset();. da.fill(ds, nomtable);. datagridview1.datasource = ds.tables[nomtable];.}..private void sauvgarder_click(object sender, eventargs e).{. d.cnx.open();. cmdb = new sqlcommandbuilder(da);. da.update(ds, nomtable);. d.cnx.close();.}\"\\n'\n",
"Label: 0\n",
"Question: b'\"parameter with question mark and super in blank, i\\'ve come across a method that is formatted like this:..public final subscription subscribe(final action1<? super t> onnext, final action1<throwable> onerror) {.}...in the first parameter, what does the question mark and super mean?\"\\n'\n",
"Label: 1\n",
"Question: b'call two objects wsdl the first time i got a very strange wsdl. ..i would like to call the object (interface - invoicecheck_out) do you know how?....i would like to call the object (variable) do you know how?..try to call (it`s ok)....try to call (how call this?)\\n'\n",
"Label: 0\n",
"Question: b\"how to correctly make the icon for systemtray in blank using icon sizes of any dimension for systemtray doesn't look good overall. .what is the correct way of making icons for windows system tray?..screenshots: http://imgur.com/zsibwn9..icon: http://imgur.com/vsh4zo8\\n\"\n",
"Label: 0\n",
"Question: b'\"is there a way to check a variable that exists in a different script than the original one? i\\'m trying to check if a variable, which was previously set to true in 2.py in 1.py, as 1.py is only supposed to continue if the variable is true...2.py..import os..completed = false..#some stuff here..completed = true...1.py..import 2 ..if completed == true. #do things...however i get a syntax error at ..if completed == true\"\\n'\n",
"Label: 3\n",
"Question: b'\"blank control flow i made a number which asks for 2 numbers with blank and responds with the corresponding message for the case. how come it doesnt work for the second number ? .regardless what i enter for the second number , i am getting the message \"\"your number is in the range 0-10\"\"...using system;.using system.collections.generic;.using system.linq;.using system.text;..namespace consoleapplication1.{. class program. {. static void main(string[] args). {. string myinput; // declaring the type of the variables. int myint;.. string number1;. int number;... console.writeline(\"\"enter a number\"\");. myinput = console.readline(); //muyinput is a string which is entry input. myint = int32.parse(myinput); // myint converts the string into an integer.. if (myint > 0). console.writeline(\"\"your number {0} is greater than zero.\"\", myint);. else if (myint < 0). console.writeline(\"\"your number {0} is less than zero.\"\", myint);. else. console.writeline(\"\"your number {0} is equal zero.\"\", myint);.. console.writeline(\"\"enter another number\"\");. number1 = console.readline(); . number = int32.parse(myinput); .. if (number < 0 || number == 0). console.writeline(\"\"your number {0} is less than zero or equal zero.\"\", number);. else if (number > 0 && number <= 10). console.writeline(\"\"your number {0} is in the range from 0 to 10.\"\", number);. else. console.writeline(\"\"your number {0} is greater than 10.\"\", number);.. console.writeline(\"\"enter another number\"\");.. }. } .}\"\\n'\n",
"Label: 0\n",
"Question: b'\"credentials cannot be used for ntlm authentication i am getting org.apache.commons.httpclient.auth.invalidcredentialsexception: credentials cannot be used for ntlm authentication: exception in eclipse..whether it is possible mention eclipse to take system proxy settings directly?..public class httpgetproxy {. private static final string proxy_host = \"\"proxy.****.com\"\";. private static final int proxy_port = 6050;.. public static void main(string[] args) {. httpclient client = new httpclient();. httpmethod method = new getmethod(\"\"https://kodeblank.org\"\");.. hostconfiguration config = client.gethostconfiguration();. config.setproxy(proxy_host, proxy_port);.. string username = \"\"*****\"\";. string password = \"\"*****\"\";. credentials credentials = new usernamepasswordcredentials(username, password);. authscope authscope = new authscope(proxy_host, proxy_port);.. client.getstate().setproxycredentials(authscope, credentials);.. try {. client.executemethod(method);.. if (method.getstatuscode() == httpstatus.sc_ok) {. string response = method.getresponsebodyasstring();. system.out.println(\"\"response = \"\" + response);. }. } catch (ioexception e) {. e.printstacktrace();. } finally {. method.releaseconnection();. }. }.}...exception:... dec 08, 2017 1:41:39 pm . org.apache.commons.httpclient.auth.authchallengeprocessor selectauthscheme. info: ntlm authentication scheme selected. dec 08, 2017 1:41:39 pm org.apache.commons.httpclient.httpmethoddirector executeconnect. severe: credentials cannot be used for ntlm authentication: . org.apache.commons.httpclient.usernamepasswordcredentials. org.apache.commons.httpclient.auth.invalidcredentialsexception: credentials . cannot be used for ntlm authentication: . enter code here . org.apache.commons.httpclient.usernamepasswordcredentials. at org.apache.commons.httpclient.auth.ntlmscheme.authenticate(ntlmscheme.blank:332). at org.apache.commons.httpclient.httpmethoddirector.authenticateproxy(httpmethoddirector.blank:320). at org.apache.commons.httpclient.httpmethoddirector.executeconnect(httpmethoddirector.blank:491). at org.apache.commons.httpclient.httpmethoddirector.executewithretry(httpmethoddirector.blank:391). at org.apache.commons.httpclient.httpmethoddirector.executemethod(httpmethoddirector.blank:171). at org.apache.commons.httpclient.httpclient.executemethod(httpclient.blank:397). at org.apache.commons.httpclient.httpclient.executemethod(httpclient.blank:323). at httpgetproxy.main(httpgetproxy.blank:31). dec 08, 2017 1:41:39 pm org.apache.commons.httpclient.httpmethoddirector processproxyauthchallenge. info: failure authenticating with ntlm @proxy.****.com:6050\"\\n'\n",
"Label: 1\n"
]
}
],
"source": [
"for text_batch, label_batch in raw_train_ds.take(1):\n",
" for i in range(10):\n",
" print(\"Question: \", text_batch.numpy()[i])\n",
" print(\"Label:\", label_batch.numpy()[i])"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "jCZGl4Q5l2sS"
},
"source": [
"ラベルは、`0`、`1`、`2` または `3` です。これらのどれがどの文字列ラベルに対応するかを確認するには、データセットの `class_names` プロパティを確認します。\n"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:05.843906Z",
"iopub.status.busy": "2022-12-15T01:17:05.843631Z",
"iopub.status.idle": "2022-12-15T01:17:05.847545Z",
"shell.execute_reply": "2022-12-15T01:17:05.846896Z"
},
"id": "gIpCS7YjmGkj"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Label 0 corresponds to csharp\n",
"Label 1 corresponds to java\n",
"Label 2 corresponds to javascript\n",
"Label 3 corresponds to python\n"
]
}
],
"source": [
"for i, label in enumerate(raw_train_ds.class_names):\n",
" print(\"Label\", i, \"corresponds to\", label)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "oUsdn-37qol9"
},
"source": [
"次に、`tf.keras.utils.text_dataset_from_directory` を使って検証およびテスト用データセットを作成します。トレーニング用セットの残りの 1,600 件のレビューを検証に使用します。\n",
"\n",
"注意: `tf.keras.utils.text_dataset_from_directory` の `validation_split` および `subset` 引数を使用する場合は、必ずランダムシードを指定するか、`shuffle=False`を渡して、検証とトレーニング分割に重複がないようにします。"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:05.850951Z",
"iopub.status.busy": "2022-12-15T01:17:05.850399Z",
"iopub.status.idle": "2022-12-15T01:17:06.037601Z",
"shell.execute_reply": "2022-12-15T01:17:06.036844Z"
},
"id": "x7m6sCWJQuYt"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Found 8000 files belonging to 4 classes.\n",
"Using 1600 files for validation.\n"
]
}
],
"source": [
"# Create a validation set.\n",
"raw_val_ds = utils.text_dataset_from_directory(\n",
" train_dir,\n",
" batch_size=batch_size,\n",
" validation_split=0.2,\n",
" subset='validation',\n",
" seed=seed)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:06.041570Z",
"iopub.status.busy": "2022-12-15T01:17:06.040891Z",
"iopub.status.idle": "2022-12-15T01:17:06.232740Z",
"shell.execute_reply": "2022-12-15T01:17:06.232110Z"
},
"id": "BXMZc7fMQwKE"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Found 8000 files belonging to 4 classes.\n"
]
}
],
"source": [
"test_dir = dataset_dir/'test'\n",
"\n",
"# Create a test set.\n",
"raw_test_ds = utils.text_dataset_from_directory(\n",
" test_dir,\n",
" batch_size=batch_size)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Xdt-ATrGRGDL"
},
"source": [
"### トレーニング用データセットを準備する"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "N6fRti45Rlj8"
},
"source": [
"次に、`tf.keras.layers.TextVectorization` レイヤーを使用して、データを標準化、トークン化、およびベクトル化します。\n",
"\n",
"- 標準化とは、テキストを前処理することを指します。通常、句読点や HTML 要素を削除して、データセットを簡素化します。\n",
"- トークン化とは、文字列をトークンに分割することです(たとえば、空白で分割することにより、文を個々の単語に分割します)。\n",
"- ベクトル化とは、トークンを数値に変換して、ニューラルネットワークに入力できるようにすることです。\n",
"\n",
"これらのタスクはすべて、このレイヤーで実行できます。これらの詳細については、`tf.keras.layers.TextVectorization` API ドキュメントを参照してください。\n",
"\n",
"注意点 :\n",
"\n",
"- デフォルトの標準化では、テキストが小文字に変換され、句読点が削除されます (`standardize='lower_and_strip_punctuation'`)。\n",
"- デフォルトのトークナイザーは空白で分割されます (`split='whitespace'`)。\n",
"- デフォルトのベクトル化モードは `int` です (`output_mode='int'`)。これは整数インデックスを出力します(トークンごとに1つ)。このモードは、語順を考慮したモデルを構築するために使用できます。`binary` などの他のモードを使用して、[bag-of-word](https://developers.google.com/machine-learning/glossary#bag-of-words) モデルを構築することもできます。\n",
"\n",
"`TextVectorization` を使用した標準化、トークン化、およびベクトル化について詳しくみるために、2 つのモデルを作成します。\n",
"\n",
"- まず、`'binary'` ベクトル化モードを使用して、bag-of-words モデルを構築します。\n",
"- 次に、1D ConvNet で `'int'` モードを使用します。"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:06.237030Z",
"iopub.status.busy": "2022-12-15T01:17:06.236313Z",
"iopub.status.idle": "2022-12-15T01:17:06.247659Z",
"shell.execute_reply": "2022-12-15T01:17:06.247016Z"
},
"id": "voaC43rZR0jc"
},
"outputs": [],
"source": [
"VOCAB_SIZE = 10000\n",
"\n",
"binary_vectorize_layer = TextVectorization(\n",
" max_tokens=VOCAB_SIZE,\n",
" output_mode='binary')"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "ifDPFxuf2Hfz"
},
"source": [
"`'int'` モードの場合、最大語彙サイズに加えて、明示的な最大シーケンス長 (`MAX_SEQUENCE_LENGTH`) を設定する必要があります。これにより、レイヤーはシーケンスを正確に `output_sequence_length` 値にパディングまたは切り捨てます。"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:06.251335Z",
"iopub.status.busy": "2022-12-15T01:17:06.250870Z",
"iopub.status.idle": "2022-12-15T01:17:06.256512Z",
"shell.execute_reply": "2022-12-15T01:17:06.255904Z"
},
"id": "XWsY01Zl2aRe"
},
"outputs": [],
"source": [
"MAX_SEQUENCE_LENGTH = 250\n",
"\n",
"int_vectorize_layer = TextVectorization(\n",
" max_tokens=VOCAB_SIZE,\n",
" output_mode='int',\n",
" output_sequence_length=MAX_SEQUENCE_LENGTH)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "ts6h9b5atD-Y"
},
"source": [
"次に、`TextVectorization.adapt` を呼び出して、前処理レイヤーの状態をデータセットに適合させます。これにより、モデルは文字列から整数へのインデックスを作成します。\n",
"\n",
"注意: `TextVectorization.adapt` を呼び出すときは、トレーニング用データのみを使用することが重要です (テスト用セットを使用すると情報が漏洩します)。"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:06.259904Z",
"iopub.status.busy": "2022-12-15T01:17:06.259410Z",
"iopub.status.idle": "2022-12-15T01:17:07.934491Z",
"shell.execute_reply": "2022-12-15T01:17:07.933587Z"
},
"id": "yTXsdDEqSf9e"
},
"outputs": [],
"source": [
"# Make a text-only dataset (without labels), then call `TextVectorization.adapt`.\n",
"train_text = raw_train_ds.map(lambda text, labels: text)\n",
"binary_vectorize_layer.adapt(train_text)\n",
"int_vectorize_layer.adapt(train_text)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "XKVO6Jg7Sls0"
},
"source": [
"これらのレイヤーを使用してデータを前処理した結果を出力します。"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:07.939165Z",
"iopub.status.busy": "2022-12-15T01:17:07.938549Z",
"iopub.status.idle": "2022-12-15T01:17:07.942562Z",
"shell.execute_reply": "2022-12-15T01:17:07.941908Z"
},
"id": "RngfPyArSsvM"
},
"outputs": [],
"source": [
"def binary_vectorize_text(text, label):\n",
" text = tf.expand_dims(text, -1)\n",
" return binary_vectorize_layer(text), label"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:07.946144Z",
"iopub.status.busy": "2022-12-15T01:17:07.945642Z",
"iopub.status.idle": "2022-12-15T01:17:07.949532Z",
"shell.execute_reply": "2022-12-15T01:17:07.948917Z"
},
"id": "_1W54wf0LhQ0"
},
"outputs": [],
"source": [
"def int_vectorize_text(text, label):\n",
" text = tf.expand_dims(text, -1)\n",
" return int_vectorize_layer(text), label"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:07.952521Z",
"iopub.status.busy": "2022-12-15T01:17:07.952265Z",
"iopub.status.idle": "2022-12-15T01:17:07.973640Z",
"shell.execute_reply": "2022-12-15T01:17:07.972911Z"
},
"id": "Vi_sElMiSmXe"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Question tf.Tensor(b'\"what is the difference between these two ways to create an element? var a = document.createelement(\\'div\\');..a.id = \"\"mydiv\"\";...and..var a = document.createelement(\\'div\\').id = \"\"mydiv\"\";...what is the difference between them such that the first one works and the second one doesn\\'t?\"\\n', shape=(), dtype=string)\n",
"Label tf.Tensor(2, shape=(), dtype=int32)\n"
]
}
],
"source": [
"# Retrieve a batch (of 32 reviews and labels) from the dataset.\n",
"text_batch, label_batch = next(iter(raw_train_ds))\n",
"first_question, first_label = text_batch[0], label_batch[0]\n",
"print(\"Question\", first_question)\n",
"print(\"Label\", first_label)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:07.977081Z",
"iopub.status.busy": "2022-12-15T01:17:07.976412Z",
"iopub.status.idle": "2022-12-15T01:17:07.991716Z",
"shell.execute_reply": "2022-12-15T01:17:07.991044Z"
},
"id": "UGukZoYv2v3v"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"'binary' vectorized question: tf.Tensor([[1. 1. 0. ... 0. 0. 0.]], shape=(1, 10000), dtype=float32)\n"
]
}
],
"source": [
"print(\"'binary' vectorized question:\",\n",
" binary_vectorize_text(first_question, first_label)[0])"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:07.995358Z",
"iopub.status.busy": "2022-12-15T01:17:07.994628Z",
"iopub.status.idle": "2022-12-15T01:17:08.004456Z",
"shell.execute_reply": "2022-12-15T01:17:08.003781Z"
},
"id": "Lu07FsIw2yH5"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"'int' vectorized question: tf.Tensor(\n",
"[[ 55 6 2 410 211 229 121 895 4 124 32 245 43 5 1 1 5 1\n",
" 1 6 2 410 211 191 318 14 2 98 71 188 8 2 199 71 178 0\n",
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]], shape=(1, 250), dtype=int64)\n"
]
}
],
"source": [
"print(\"'int' vectorized question:\",\n",
" int_vectorize_text(first_question, first_label)[0])"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "wgjeF9PdS7tN"
},
"source": [
"上に示したように、`TextVectorization` の `'binary'` モードは、入力に少なくとも 1 回存在するトークンを示す配列を返しますが、`'int'` モードでは、各トークンが整数に置き換えられるため、トークンの順序が保持されます。\n",
"\n",
"レイヤーで `TextVectorization.get_vocabulary` を呼び出すことにより、各整数が対応するトークン (文字列) を検索できます。"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:08.007842Z",
"iopub.status.busy": "2022-12-15T01:17:08.007328Z",
"iopub.status.idle": "2022-12-15T01:17:08.051230Z",
"shell.execute_reply": "2022-12-15T01:17:08.050601Z"
},
"id": "WpBnTZilS8wt"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1289 ---> roman\n",
"313 ---> source\n",
"Vocabulary size: 10000\n"
]
}
],
"source": [
"print(\"1289 ---> \", int_vectorize_layer.get_vocabulary()[1289])\n",
"print(\"313 ---> \", int_vectorize_layer.get_vocabulary()[313])\n",
"print(\"Vocabulary size: {}\".format(len(int_vectorize_layer.get_vocabulary())))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "0kHgPE_YwHvp"
},
"source": [
"モデルをトレーニングする準備がほぼ整いました。\n",
"\n",
"最後の前処理ステップとして、トレーニング、検証、およびデータセットのテストのために前に作成した `TextVectorization` レイヤーを適用します。"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:08.054585Z",
"iopub.status.busy": "2022-12-15T01:17:08.054128Z",
"iopub.status.idle": "2022-12-15T01:17:08.286547Z",
"shell.execute_reply": "2022-12-15T01:17:08.285851Z"
},
"id": "46LeHmnD55wJ"
},
"outputs": [],
"source": [
"binary_train_ds = raw_train_ds.map(binary_vectorize_text)\n",
"binary_val_ds = raw_val_ds.map(binary_vectorize_text)\n",
"binary_test_ds = raw_test_ds.map(binary_vectorize_text)\n",
"\n",
"int_train_ds = raw_train_ds.map(int_vectorize_text)\n",
"int_val_ds = raw_val_ds.map(int_vectorize_text)\n",
"int_test_ds = raw_test_ds.map(int_vectorize_text)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "NHuAF8hYfP5Z"
},
"source": [
"### パフォーマンスのためにデータセットを構成する\n",
"\n",
"以下は、データを読み込むときに I/O がブロックされないようにするために使用する必要がある 2 つの重要な方法です。\n",
"\n",
"- `Dataset.cache` はデータをディスクから読み込んだ後、データをメモリに保持します。これにより、モデルのトレーニング中にデータセットがボトルネックになることを回避できます。データセットが大きすぎてメモリに収まらない場合は、この方法を使用して、パフォーマンスの高いオンディスクキャッシュを作成することもできます。これは、多くの小さなファイルを読み込むより効率的です。\n",
"- `Dataset.prefetch` はトレーニング中にデータの前処理とモデルの実行をオーバーラップさせます。\n",
"\n",
"以上の 2 つの方法とデータをディスクにキャッシュする方法についての詳細は、データパフォーマンスガイドの プリフェッチを参照してください。"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:08.290860Z",
"iopub.status.busy": "2022-12-15T01:17:08.290321Z",
"iopub.status.idle": "2022-12-15T01:17:08.293841Z",
"shell.execute_reply": "2022-12-15T01:17:08.293285Z"
},
"id": "PabA9DFIfSz7"
},
"outputs": [],
"source": [
"AUTOTUNE = tf.data.AUTOTUNE\n",
"\n",
"def configure_dataset(dataset):\n",
" return dataset.cache().prefetch(buffer_size=AUTOTUNE)"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:08.296909Z",
"iopub.status.busy": "2022-12-15T01:17:08.296427Z",
"iopub.status.idle": "2022-12-15T01:17:08.303596Z",
"shell.execute_reply": "2022-12-15T01:17:08.303006Z"
},
"id": "J8GcJLvb3JH0"
},
"outputs": [],
"source": [
"binary_train_ds = configure_dataset(binary_train_ds)\n",
"binary_val_ds = configure_dataset(binary_val_ds)\n",
"binary_test_ds = configure_dataset(binary_test_ds)\n",
"\n",
"int_train_ds = configure_dataset(int_train_ds)\n",
"int_val_ds = configure_dataset(int_val_ds)\n",
"int_test_ds = configure_dataset(int_test_ds)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "NYGb7z_bfpGm"
},
"source": [
"### モデルをトレーニングする\n",
"\n",
"ニューラルネットワークを作成します。\n",
"\n",
"`'binary'` のベクトル化されたデータの場合、単純な bag-of-words 線形モデルを定義し、それを構成してトレーニングします。"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:08.307086Z",
"iopub.status.busy": "2022-12-15T01:17:08.306588Z",
"iopub.status.idle": "2022-12-15T01:17:15.127703Z",
"shell.execute_reply": "2022-12-15T01:17:15.126905Z"
},
"id": "2q8iAU-VMzaN"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/10\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r",
" 1/200 [..............................] - ETA: 2:25 - loss: 1.3763 - accuracy: 0.2188"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 18/200 [=>............................] - ETA: 0s - loss: 1.3713 - accuracy: 0.2743 "
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 36/200 [====>.........................] - ETA: 0s - loss: 1.3472 - accuracy: 0.3628"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 54/200 [=======>......................] - ETA: 0s - loss: 1.3138 - accuracy: 0.4427"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 71/200 [=========>....................] - ETA: 0s - loss: 1.2850 - accuracy: 0.4934"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 89/200 [============>.................] - ETA: 0s - loss: 1.2614 - accuracy: 0.5302"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"107/200 [===============>..............] - ETA: 0s - loss: 1.2328 - accuracy: 0.5669"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"125/200 [=================>............] - ETA: 0s - loss: 1.2099 - accuracy: 0.5860"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"143/200 [====================>.........] - ETA: 0s - loss: 1.1889 - accuracy: 0.6045"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"160/200 [=======================>......] - ETA: 0s - loss: 1.1644 - accuracy: 0.6203"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"177/200 [=========================>....] - ETA: 0s - loss: 1.1443 - accuracy: 0.6308"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"195/200 [============================>.] - ETA: 0s - loss: 1.1273 - accuracy: 0.6409"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"200/200 [==============================] - 2s 4ms/step - loss: 1.1221 - accuracy: 0.6439 - val_loss: 0.9157 - val_accuracy: 0.7738\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 2/10\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r",
" 1/200 [..............................] - ETA: 0s - loss: 0.8837 - accuracy: 0.7500"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 26/200 [==>...........................] - ETA: 0s - loss: 0.8588 - accuracy: 0.8293"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 51/200 [======>.......................] - ETA: 0s - loss: 0.8524 - accuracy: 0.8199"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 76/200 [==========>...................] - ETA: 0s - loss: 0.8350 - accuracy: 0.8215"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"100/200 [==============>...............] - ETA: 0s - loss: 0.8240 - accuracy: 0.8200"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"123/200 [=================>............] - ETA: 0s - loss: 0.8155 - accuracy: 0.8176"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"145/200 [====================>.........] - ETA: 0s - loss: 0.8067 - accuracy: 0.8192"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"169/200 [========================>.....] - ETA: 0s - loss: 0.7920 - accuracy: 0.8203"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"192/200 [===========================>..] - ETA: 0s - loss: 0.7840 - accuracy: 0.8210"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"200/200 [==============================] - 1s 3ms/step - loss: 0.7801 - accuracy: 0.8213 - val_loss: 0.7511 - val_accuracy: 0.7956\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 3/10\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r",
" 1/200 [..............................] - ETA: 0s - loss: 0.7547 - accuracy: 0.7812"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 24/200 [==>...........................] - ETA: 0s - loss: 0.6810 - accuracy: 0.8529"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 47/200 [======>.......................] - ETA: 0s - loss: 0.6778 - accuracy: 0.8531"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 70/200 [=========>....................] - ETA: 0s - loss: 0.6601 - accuracy: 0.8580"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 93/200 [============>.................] - ETA: 0s - loss: 0.6593 - accuracy: 0.8528"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"117/200 [================>.............] - ETA: 0s - loss: 0.6491 - accuracy: 0.8552"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"141/200 [====================>.........] - ETA: 0s - loss: 0.6458 - accuracy: 0.8566"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"166/200 [=======================>......] - ETA: 0s - loss: 0.6372 - accuracy: 0.8575"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"189/200 [===========================>..] - ETA: 0s - loss: 0.6319 - accuracy: 0.8586"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"200/200 [==============================] - 1s 3ms/step - loss: 0.6284 - accuracy: 0.8589 - val_loss: 0.6653 - val_accuracy: 0.8069\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 4/10\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r",
" 1/200 [..............................] - ETA: 0s - loss: 0.6778 - accuracy: 0.8438"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 24/200 [==>...........................] - ETA: 0s - loss: 0.5755 - accuracy: 0.8841"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 48/200 [======>.......................] - ETA: 0s - loss: 0.5726 - accuracy: 0.8828"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 72/200 [=========>....................] - ETA: 0s - loss: 0.5577 - accuracy: 0.8837"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 96/200 [=============>................] - ETA: 0s - loss: 0.5559 - accuracy: 0.8809"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"120/200 [=================>............] - ETA: 0s - loss: 0.5493 - accuracy: 0.8820"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"144/200 [====================>.........] - ETA: 0s - loss: 0.5474 - accuracy: 0.8837"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"169/200 [========================>.....] - ETA: 0s - loss: 0.5401 - accuracy: 0.8854"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"194/200 [============================>.] - ETA: 0s - loss: 0.5366 - accuracy: 0.8863"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"200/200 [==============================] - 1s 3ms/step - loss: 0.5349 - accuracy: 0.8863 - val_loss: 0.6118 - val_accuracy: 0.8200\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 5/10\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r",
" 1/200 [..............................] - ETA: 0s - loss: 0.6206 - accuracy: 0.8438"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 25/200 [==>...........................] - ETA: 0s - loss: 0.5015 - accuracy: 0.9062"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 49/200 [======>.......................] - ETA: 0s - loss: 0.4981 - accuracy: 0.9069"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 74/200 [==========>...................] - ETA: 0s - loss: 0.4861 - accuracy: 0.9046"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 99/200 [=============>................] - ETA: 0s - loss: 0.4840 - accuracy: 0.9009"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"124/200 [=================>............] - ETA: 0s - loss: 0.4807 - accuracy: 0.8994"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"146/200 [====================>.........] - ETA: 0s - loss: 0.4789 - accuracy: 0.9011"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"169/200 [========================>.....] - ETA: 0s - loss: 0.4731 - accuracy: 0.9027"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"193/200 [===========================>..] - ETA: 0s - loss: 0.4706 - accuracy: 0.9043"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"200/200 [==============================] - 1s 3ms/step - loss: 0.4688 - accuracy: 0.9045 - val_loss: 0.5751 - val_accuracy: 0.8281\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 6/10\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r",
" 1/200 [..............................] - ETA: 0s - loss: 0.5743 - accuracy: 0.8750"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 24/200 [==>...........................] - ETA: 0s - loss: 0.4491 - accuracy: 0.9141"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 47/200 [======>.......................] - ETA: 0s - loss: 0.4461 - accuracy: 0.9195"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 70/200 [=========>....................] - ETA: 0s - loss: 0.4319 - accuracy: 0.9192"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 93/200 [============>.................] - ETA: 0s - loss: 0.4340 - accuracy: 0.9143"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"116/200 [================>.............] - ETA: 0s - loss: 0.4267 - accuracy: 0.9138"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"140/200 [====================>.........] - ETA: 0s - loss: 0.4268 - accuracy: 0.9136"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"163/200 [=======================>......] - ETA: 0s - loss: 0.4225 - accuracy: 0.9147"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"187/200 [===========================>..] - ETA: 0s - loss: 0.4195 - accuracy: 0.9151"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"200/200 [==============================] - 1s 3ms/step - loss: 0.4184 - accuracy: 0.9153 - val_loss: 0.5485 - val_accuracy: 0.8331\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 7/10\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r",
" 1/200 [..............................] - ETA: 0s - loss: 0.5349 - accuracy: 0.8750"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 25/200 [==>...........................] - ETA: 0s - loss: 0.4048 - accuracy: 0.9275"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 49/200 [======>.......................] - ETA: 0s - loss: 0.4007 - accuracy: 0.9305"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 73/200 [=========>....................] - ETA: 0s - loss: 0.3906 - accuracy: 0.9294"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 96/200 [=============>................] - ETA: 0s - loss: 0.3908 - accuracy: 0.9242"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"120/200 [=================>............] - ETA: 0s - loss: 0.3860 - accuracy: 0.9245"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"144/200 [====================>.........] - ETA: 0s - loss: 0.3853 - accuracy: 0.9249"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"168/200 [========================>.....] - ETA: 0s - loss: 0.3821 - accuracy: 0.9252"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"192/200 [===========================>..] - ETA: 0s - loss: 0.3798 - accuracy: 0.9277"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"200/200 [==============================] - 1s 3ms/step - loss: 0.3782 - accuracy: 0.9281 - val_loss: 0.5284 - val_accuracy: 0.8363\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 8/10\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r",
" 1/200 [..............................] - ETA: 0s - loss: 0.5008 - accuracy: 0.8750"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 23/200 [==>...........................] - ETA: 0s - loss: 0.3678 - accuracy: 0.9321"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 45/200 [=====>........................] - ETA: 0s - loss: 0.3641 - accuracy: 0.9361"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 67/200 [=========>....................] - ETA: 0s - loss: 0.3549 - accuracy: 0.9352"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 89/200 [============>.................] - ETA: 0s - loss: 0.3595 - accuracy: 0.9298"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"111/200 [===============>..............] - ETA: 0s - loss: 0.3523 - accuracy: 0.9319"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"132/200 [==================>...........] - ETA: 0s - loss: 0.3504 - accuracy: 0.9318"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"153/200 [=====================>........] - ETA: 0s - loss: 0.3494 - accuracy: 0.9322"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"177/200 [=========================>....] - ETA: 0s - loss: 0.3447 - accuracy: 0.9345"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"200/200 [==============================] - 1s 3ms/step - loss: 0.3449 - accuracy: 0.9350 - val_loss: 0.5128 - val_accuracy: 0.8381\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 9/10\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r",
" 1/200 [..............................] - ETA: 0s - loss: 0.4705 - accuracy: 0.8750"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 26/200 [==>...........................] - ETA: 0s - loss: 0.3367 - accuracy: 0.9387"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 50/200 [======>.......................] - ETA: 0s - loss: 0.3334 - accuracy: 0.9406"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 74/200 [==========>...................] - ETA: 0s - loss: 0.3267 - accuracy: 0.9405"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 99/200 [=============>................] - ETA: 0s - loss: 0.3256 - accuracy: 0.9388"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"123/200 [=================>............] - ETA: 0s - loss: 0.3245 - accuracy: 0.9380"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"147/200 [=====================>........] - ETA: 0s - loss: 0.3223 - accuracy: 0.9394"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"171/200 [========================>.....] - ETA: 0s - loss: 0.3190 - accuracy: 0.9412"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"195/200 [============================>.] - ETA: 0s - loss: 0.3177 - accuracy: 0.9425"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"200/200 [==============================] - 1s 3ms/step - loss: 0.3166 - accuracy: 0.9425 - val_loss: 0.5005 - val_accuracy: 0.8425\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 10/10\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r",
" 1/200 [..............................] - ETA: 0s - loss: 0.4433 - accuracy: 0.8750"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 25/200 [==>...........................] - ETA: 0s - loss: 0.3147 - accuracy: 0.9400"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 49/200 [======>.......................] - ETA: 0s - loss: 0.3098 - accuracy: 0.9458"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 73/200 [=========>....................] - ETA: 0s - loss: 0.3016 - accuracy: 0.9473"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 98/200 [=============>................] - ETA: 0s - loss: 0.3009 - accuracy: 0.9464"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"122/200 [=================>............] - ETA: 0s - loss: 0.2994 - accuracy: 0.9454"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"146/200 [====================>.........] - ETA: 0s - loss: 0.2976 - accuracy: 0.9461"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"170/200 [========================>.....] - ETA: 0s - loss: 0.2948 - accuracy: 0.9472"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"194/200 [============================>.] - ETA: 0s - loss: 0.2936 - accuracy: 0.9485"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"200/200 [==============================] - 1s 3ms/step - loss: 0.2923 - accuracy: 0.9486 - val_loss: 0.4908 - val_accuracy: 0.8413\n"
]
}
],
"source": [
"binary_model = tf.keras.Sequential([layers.Dense(4)])\n",
"\n",
"binary_model.compile(\n",
" loss=losses.SparseCategoricalCrossentropy(from_logits=True),\n",
" optimizer='adam',\n",
" metrics=['accuracy'])\n",
"\n",
"history = binary_model.fit(\n",
" binary_train_ds, validation_data=binary_val_ds, epochs=10)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "EwidD-SwNIkz"
},
"source": [
"次に、`'int'` ベクトル化レイヤーを使用して、1D ConvNet を構築します。"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:15.131845Z",
"iopub.status.busy": "2022-12-15T01:17:15.131226Z",
"iopub.status.idle": "2022-12-15T01:17:15.136020Z",
"shell.execute_reply": "2022-12-15T01:17:15.135049Z"
},
"id": "5ztw2XH_LbVz"
},
"outputs": [],
"source": [
"def create_model(vocab_size, num_labels):\n",
" model = tf.keras.Sequential([\n",
" layers.Embedding(vocab_size, 64, mask_zero=True),\n",
" layers.Conv1D(64, 5, padding=\"valid\", activation=\"relu\", strides=2),\n",
" layers.GlobalMaxPooling1D(),\n",
" layers.Dense(num_labels)\n",
" ])\n",
" return model"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:15.139238Z",
"iopub.status.busy": "2022-12-15T01:17:15.138749Z",
"iopub.status.idle": "2022-12-15T01:17:20.418582Z",
"shell.execute_reply": "2022-12-15T01:17:20.417683Z"
},
"id": "s9rG1cFRL31Z"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/5\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r",
" 1/200 [..............................] - ETA: 4:40 - loss: 1.3860 - accuracy: 0.2812"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 17/200 [=>............................] - ETA: 0s - loss: 1.3862 - accuracy: 0.2592 "
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 34/200 [====>.........................] - ETA: 0s - loss: 1.3819 - accuracy: 0.2711"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 51/200 [======>.......................] - ETA: 0s - loss: 1.3747 - accuracy: 0.3156"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 68/200 [=========>....................] - ETA: 0s - loss: 1.3647 - accuracy: 0.3488"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 85/200 [===========>..................] - ETA: 0s - loss: 1.3469 - accuracy: 0.3798"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"102/200 [==============>...............] - ETA: 0s - loss: 1.3225 - accuracy: 0.3915"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"119/200 [================>.............] - ETA: 0s - loss: 1.2936 - accuracy: 0.4178"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"135/200 [===================>..........] - ETA: 0s - loss: 1.2657 - accuracy: 0.4361"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"151/200 [=====================>........] - ETA: 0s - loss: 1.2356 - accuracy: 0.4538"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"167/200 [========================>.....] - ETA: 0s - loss: 1.2034 - accuracy: 0.4701"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"184/200 [==========================>...] - ETA: 0s - loss: 1.1677 - accuracy: 0.4895"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"200/200 [==============================] - 2s 4ms/step - loss: 1.1424 - accuracy: 0.5008 - val_loss: 0.7508 - val_accuracy: 0.7188\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 2/5\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r",
" 1/200 [..............................] - ETA: 0s - loss: 0.9226 - accuracy: 0.6250"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 18/200 [=>............................] - ETA: 0s - loss: 0.8218 - accuracy: 0.6736"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 35/200 [====>.........................] - ETA: 0s - loss: 0.7589 - accuracy: 0.7063"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 52/200 [======>.......................] - ETA: 0s - loss: 0.7448 - accuracy: 0.7037"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 69/200 [=========>....................] - ETA: 0s - loss: 0.7279 - accuracy: 0.7074"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 86/200 [===========>..................] - ETA: 0s - loss: 0.7194 - accuracy: 0.7082"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"103/200 [==============>...............] - ETA: 0s - loss: 0.7000 - accuracy: 0.7188"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"120/200 [=================>............] - ETA: 0s - loss: 0.6862 - accuracy: 0.7292"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"137/200 [===================>..........] - ETA: 0s - loss: 0.6777 - accuracy: 0.7329"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"154/200 [======================>.......] - ETA: 0s - loss: 0.6607 - accuracy: 0.7429"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"171/200 [========================>.....] - ETA: 0s - loss: 0.6486 - accuracy: 0.7515"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"188/200 [===========================>..] - ETA: 0s - loss: 0.6339 - accuracy: 0.7580"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"200/200 [==============================] - 1s 4ms/step - loss: 0.6282 - accuracy: 0.7600 - val_loss: 0.5454 - val_accuracy: 0.8019\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 3/5\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r",
" 1/200 [..............................] - ETA: 0s - loss: 0.5562 - accuracy: 0.7500"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 18/200 [=>............................] - ETA: 0s - loss: 0.5219 - accuracy: 0.8264"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 35/200 [====>.........................] - ETA: 0s - loss: 0.4681 - accuracy: 0.8446"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 52/200 [======>.......................] - ETA: 0s - loss: 0.4612 - accuracy: 0.8468"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 69/200 [=========>....................] - ETA: 0s - loss: 0.4498 - accuracy: 0.8456"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 86/200 [===========>..................] - ETA: 0s - loss: 0.4450 - accuracy: 0.8503"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"103/200 [==============>...............] - ETA: 0s - loss: 0.4334 - accuracy: 0.8559"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"120/200 [=================>............] - ETA: 0s - loss: 0.4235 - accuracy: 0.8622"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"137/200 [===================>..........] - ETA: 0s - loss: 0.4153 - accuracy: 0.8650"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"155/200 [======================>.......] - ETA: 0s - loss: 0.4043 - accuracy: 0.8700"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"173/200 [========================>.....] - ETA: 0s - loss: 0.3958 - accuracy: 0.8745"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"190/200 [===========================>..] - ETA: 0s - loss: 0.3868 - accuracy: 0.8778"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"200/200 [==============================] - 1s 4ms/step - loss: 0.3834 - accuracy: 0.8789 - val_loss: 0.4846 - val_accuracy: 0.8150\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 4/5\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r",
" 1/200 [..............................] - ETA: 0s - loss: 0.3376 - accuracy: 0.9062"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 18/200 [=>............................] - ETA: 0s - loss: 0.3205 - accuracy: 0.9167"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 36/200 [====>.........................] - ETA: 0s - loss: 0.2761 - accuracy: 0.9271"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 53/200 [======>.......................] - ETA: 0s - loss: 0.2677 - accuracy: 0.9287"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 70/200 [=========>....................] - ETA: 0s - loss: 0.2585 - accuracy: 0.9321"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 87/200 [============>.................] - ETA: 0s - loss: 0.2564 - accuracy: 0.9343"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"104/200 [==============>...............] - ETA: 0s - loss: 0.2492 - accuracy: 0.9372"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"121/200 [=================>............] - ETA: 0s - loss: 0.2436 - accuracy: 0.9393"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"139/200 [===================>..........] - ETA: 0s - loss: 0.2373 - accuracy: 0.9415"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"156/200 [======================>.......] - ETA: 0s - loss: 0.2308 - accuracy: 0.9445"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"174/200 [=========================>....] - ETA: 0s - loss: 0.2248 - accuracy: 0.9468"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"192/200 [===========================>..] - ETA: 0s - loss: 0.2189 - accuracy: 0.9486"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"200/200 [==============================] - 1s 4ms/step - loss: 0.2168 - accuracy: 0.9495 - val_loss: 0.4828 - val_accuracy: 0.8188\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 5/5\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r",
" 1/200 [..............................] - ETA: 0s - loss: 0.1600 - accuracy: 1.0000"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 18/200 [=>............................] - ETA: 0s - loss: 0.1791 - accuracy: 0.9566"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 35/200 [====>.........................] - ETA: 0s - loss: 0.1470 - accuracy: 0.9723"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 52/200 [======>.......................] - ETA: 0s - loss: 0.1407 - accuracy: 0.9724"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 69/200 [=========>....................] - ETA: 0s - loss: 0.1343 - accuracy: 0.9751"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 86/200 [===========>..................] - ETA: 0s - loss: 0.1324 - accuracy: 0.9749"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"103/200 [==============>...............] - ETA: 0s - loss: 0.1285 - accuracy: 0.9760"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"120/200 [=================>............] - ETA: 0s - loss: 0.1247 - accuracy: 0.9771"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"137/200 [===================>..........] - ETA: 0s - loss: 0.1219 - accuracy: 0.9781"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"154/200 [======================>.......] - ETA: 0s - loss: 0.1187 - accuracy: 0.9793"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"171/200 [========================>.....] - ETA: 0s - loss: 0.1164 - accuracy: 0.9793"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"188/200 [===========================>..] - ETA: 0s - loss: 0.1131 - accuracy: 0.9799"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"200/200 [==============================] - 1s 4ms/step - loss: 0.1108 - accuracy: 0.9805 - val_loss: 0.5063 - val_accuracy: 0.8181\n"
]
}
],
"source": [
"# `vocab_size` is `VOCAB_SIZE + 1` since `0` is used additionally for padding.\n",
"int_model = create_model(vocab_size=VOCAB_SIZE + 1, num_labels=4)\n",
"int_model.compile(\n",
" loss=losses.SparseCategoricalCrossentropy(from_logits=True),\n",
" optimizer='adam',\n",
" metrics=['accuracy'])\n",
"history = int_model.fit(int_train_ds, validation_data=int_val_ds, epochs=5)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "x3J9Eeuv97zE"
},
"source": [
"2 つのモデルを比較します。"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:20.422707Z",
"iopub.status.busy": "2022-12-15T01:17:20.422144Z",
"iopub.status.idle": "2022-12-15T01:17:20.432620Z",
"shell.execute_reply": "2022-12-15T01:17:20.431930Z"
},
"id": "N8ViDXw99v_u"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Linear model on binary vectorized data:\n",
"Model: \"sequential\"\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"_________________________________________________________________\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" Layer (type) Output Shape Param # \n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"=================================================================\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" dense (Dense) (None, 4) 40004 \n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" \n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"=================================================================\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Total params: 40,004\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Trainable params: 40,004\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Non-trainable params: 0\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"_________________________________________________________________\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"None\n"
]
}
],
"source": [
"print(\"Linear model on binary vectorized data:\")\n",
"print(binary_model.summary())"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:20.437589Z",
"iopub.status.busy": "2022-12-15T01:17:20.437115Z",
"iopub.status.idle": "2022-12-15T01:17:20.451011Z",
"shell.execute_reply": "2022-12-15T01:17:20.450398Z"
},
"id": "P9BOeoCwborD"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ConvNet model on int vectorized data:\n",
"Model: \"sequential_1\"\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"_________________________________________________________________\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" Layer (type) Output Shape Param # \n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"=================================================================\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" embedding (Embedding) (None, None, 64) 640064 \n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" \n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" conv1d (Conv1D) (None, None, 64) 20544 \n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" \n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" global_max_pooling1d (Globa (None, 64) 0 \n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" lMaxPooling1D) \n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" \n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" dense_1 (Dense) (None, 4) 260 \n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" \n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"=================================================================\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Total params: 660,868\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Trainable params: 660,868\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Non-trainable params: 0\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"_________________________________________________________________\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"None\n"
]
}
],
"source": [
"print(\"ConvNet model on int vectorized data:\")\n",
"print(int_model.summary())"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "zYYW9tUdCtTy"
},
"source": [
"テストデータで両方のモデルを評価します。"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:20.457503Z",
"iopub.status.busy": "2022-12-15T01:17:20.456952Z",
"iopub.status.idle": "2022-12-15T01:17:21.832601Z",
"shell.execute_reply": "2022-12-15T01:17:21.831813Z"
},
"id": "5dTc4nZqf7fK"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r",
" 1/250 [..............................] - ETA: 19s - loss: 0.5814 - accuracy: 0.8125"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 19/250 [=>............................] - ETA: 0s - loss: 0.5146 - accuracy: 0.8158 "
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 37/250 [===>..........................] - ETA: 0s - loss: 0.5115 - accuracy: 0.8209"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 56/250 [=====>........................] - ETA: 0s - loss: 0.5176 - accuracy: 0.8203"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 74/250 [=======>......................] - ETA: 0s - loss: 0.5223 - accuracy: 0.8180"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 92/250 [==========>...................] - ETA: 0s - loss: 0.5157 - accuracy: 0.8183"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"111/250 [============>.................] - ETA: 0s - loss: 0.5212 - accuracy: 0.8133"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"129/250 [==============>...............] - ETA: 0s - loss: 0.5149 - accuracy: 0.8173"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"147/250 [================>.............] - ETA: 0s - loss: 0.5097 - accuracy: 0.8199"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"165/250 [==================>...........] - ETA: 0s - loss: 0.5156 - accuracy: 0.8178"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"184/250 [=====================>........] - ETA: 0s - loss: 0.5152 - accuracy: 0.8173"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"202/250 [=======================>......] - ETA: 0s - loss: 0.5188 - accuracy: 0.8150"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"221/250 [=========================>....] - ETA: 0s - loss: 0.5171 - accuracy: 0.8143"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"240/250 [===========================>..] - ETA: 0s - loss: 0.5159 - accuracy: 0.8147"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"250/250 [==============================] - 1s 3ms/step - loss: 0.5173 - accuracy: 0.8148\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r",
" 1/250 [..............................] - ETA: 15s - loss: 0.4688 - accuracy: 0.8750"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 25/250 [==>...........................] - ETA: 0s - loss: 0.5412 - accuracy: 0.8175 "
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 49/250 [====>.........................] - ETA: 0s - loss: 0.5347 - accuracy: 0.8048"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 74/250 [=======>......................] - ETA: 0s - loss: 0.5274 - accuracy: 0.8045"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 98/250 [==========>...................] - ETA: 0s - loss: 0.5200 - accuracy: 0.8093"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"122/250 [=============>................] - ETA: 0s - loss: 0.5187 - accuracy: 0.8102"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"146/250 [================>.............] - ETA: 0s - loss: 0.5188 - accuracy: 0.8110"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"170/250 [===================>..........] - ETA: 0s - loss: 0.5153 - accuracy: 0.8119"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"194/250 [======================>.......] - ETA: 0s - loss: 0.5286 - accuracy: 0.8082"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"218/250 [=========================>....] - ETA: 0s - loss: 0.5318 - accuracy: 0.8048"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"242/250 [============================>.] - ETA: 0s - loss: 0.5252 - accuracy: 0.8073"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"250/250 [==============================] - 1s 2ms/step - loss: 0.5244 - accuracy: 0.8070\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Binary model accuracy: 81.48%\n",
"Int model accuracy: 80.70%\n"
]
}
],
"source": [
"binary_loss, binary_accuracy = binary_model.evaluate(binary_test_ds)\n",
"int_loss, int_accuracy = int_model.evaluate(int_test_ds)\n",
"\n",
"print(\"Binary model accuracy: {:2.2%}\".format(binary_accuracy))\n",
"print(\"Int model accuracy: {:2.2%}\".format(int_accuracy))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "F9dhj8Hey9DS"
},
"source": [
"注意: このサンプルデータセットは、かなり単純な分類問題を表しています。より複雑なデータセットと問題は、前処理戦略とモデルアーキテクチャに微妙ながら重要な違いをもたらします。さまざまなアプローチを比較するために、さまざまなハイパーパラメータとエポックを試してみてください。"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "h9GaXTsIgP-3"
},
"source": [
"### モデルをエクスポートする\n",
"\n",
"上記のコードでは、モデルにテキストをフィードする前に、`tf.keras.layers.TextVectorization` レイヤーをデータセットに適用しました。モデルで生の文字列を処理できるようにする場合 (たとえば、展開を簡素化するため)、モデル内に `TextVectorization` レイヤーを含めることができます。\n",
"\n",
"これを行うには、トレーニングしたばかりの重みを使用して新しいモデルを作成できます。"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:21.836706Z",
"iopub.status.busy": "2022-12-15T01:17:21.836028Z",
"iopub.status.idle": "2022-12-15T01:17:23.156544Z",
"shell.execute_reply": "2022-12-15T01:17:23.155803Z"
},
"id": "_bRe3KX8gRCX"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r",
" 1/250 [..............................] - ETA: 55s - loss: 0.4487 - accuracy: 0.9375"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 12/250 [>.............................] - ETA: 1s - loss: 0.5282 - accuracy: 0.8021 "
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 24/250 [=>............................] - ETA: 1s - loss: 0.5292 - accuracy: 0.8047"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 36/250 [===>..........................] - ETA: 0s - loss: 0.5131 - accuracy: 0.8177"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 48/250 [====>.........................] - ETA: 0s - loss: 0.5053 - accuracy: 0.8197"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 61/250 [======>.......................] - ETA: 0s - loss: 0.5153 - accuracy: 0.8222"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 74/250 [=======>......................] - ETA: 0s - loss: 0.5187 - accuracy: 0.8214"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 86/250 [=========>....................] - ETA: 0s - loss: 0.5156 - accuracy: 0.8198"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 99/250 [==========>...................] - ETA: 0s - loss: 0.5152 - accuracy: 0.8188"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"111/250 [============>.................] - ETA: 0s - loss: 0.5160 - accuracy: 0.8167"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"123/250 [=============>................] - ETA: 0s - loss: 0.5137 - accuracy: 0.8181"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"135/250 [===============>..............] - ETA: 0s - loss: 0.5095 - accuracy: 0.8204"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"147/250 [================>.............] - ETA: 0s - loss: 0.5104 - accuracy: 0.8191"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"159/250 [==================>...........] - ETA: 0s - loss: 0.5083 - accuracy: 0.8206"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"172/250 [===================>..........] - ETA: 0s - loss: 0.5127 - accuracy: 0.8196"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"185/250 [=====================>........] - ETA: 0s - loss: 0.5163 - accuracy: 0.8166"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"197/250 [======================>.......] - ETA: 0s - loss: 0.5170 - accuracy: 0.8158"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"209/250 [========================>.....] - ETA: 0s - loss: 0.5155 - accuracy: 0.8155"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"222/250 [=========================>....] - ETA: 0s - loss: 0.5164 - accuracy: 0.8149"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"234/250 [===========================>..] - ETA: 0s - loss: 0.5182 - accuracy: 0.8132"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"247/250 [============================>.] - ETA: 0s - loss: 0.5164 - accuracy: 0.8145"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"250/250 [==============================] - 1s 4ms/step - loss: 0.5173 - accuracy: 0.8148\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Accuracy: 81.48%\n"
]
}
],
"source": [
"export_model = tf.keras.Sequential(\n",
" [binary_vectorize_layer, binary_model,\n",
" layers.Activation('sigmoid')])\n",
"\n",
"export_model.compile(\n",
" loss=losses.SparseCategoricalCrossentropy(from_logits=False),\n",
" optimizer='adam',\n",
" metrics=['accuracy'])\n",
"\n",
"# Test it with `raw_test_ds`, which yields raw strings\n",
"loss, accuracy = export_model.evaluate(raw_test_ds)\n",
"print(\"Accuracy: {:2.2%}\".format(binary_accuracy))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "m2eqTVBP4DUN"
},
"source": [
"これで、モデルは生の文字列を入力として受け取り、`Model.predict` を使用して各ラベルのスコアを予測できます。最大スコアのラベルを見つける関数を定義します。"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:23.160442Z",
"iopub.status.busy": "2022-12-15T01:17:23.159725Z",
"iopub.status.idle": "2022-12-15T01:17:23.163594Z",
"shell.execute_reply": "2022-12-15T01:17:23.163013Z"
},
"id": "GU53uRXz45iO"
},
"outputs": [],
"source": [
"def get_string_labels(predicted_scores_batch):\n",
" predicted_int_labels = tf.math.argmax(predicted_scores_batch, axis=1)\n",
" predicted_labels = tf.gather(raw_train_ds.class_names, predicted_int_labels)\n",
" return predicted_labels"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "yqnWc7Nn5eou"
},
"source": [
"### 新しいデータで推論を実行する"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:23.167045Z",
"iopub.status.busy": "2022-12-15T01:17:23.166501Z",
"iopub.status.idle": "2022-12-15T01:17:23.320215Z",
"shell.execute_reply": "2022-12-15T01:17:23.319396Z"
},
"id": "BOR2MupW1_zS"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Question: how do I extract keys from a dict into a list?\n",
"Predicted label: b'python'\n",
"Question: debug public static void main(string[] args) {...}\n",
"Predicted label: b'java'\n"
]
}
],
"source": [
"inputs = [\n",
" \"how do I extract keys from a dict into a list?\", # 'python'\n",
" \"debug public static void main(string[] args) {...}\", # 'java'\n",
"]\n",
"predicted_scores = export_model.predict(inputs)\n",
"predicted_labels = get_string_labels(predicted_scores)\n",
"for input, label in zip(inputs, predicted_labels):\n",
" print(\"Question: \", input)\n",
" print(\"Predicted label: \", label.numpy())"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "0QDVfii_4slI"
},
"source": [
"モデル内にテキスト前処理ロジックを含めると、モデルを本番環境にエクスポートして展開を簡素化し、[トレーニング/テストスキュー](https://developers.google.com/machine-learning/guides/rules-of-ml#training-serving_skew)の可能性を減らすことができます。\n",
"\n",
"`tf.keras.layers.TextVectorization` を適用する場所を選択する際に性能の違いに留意する必要があります。モデルの外部で使用すると、GPU でトレーニングするときに非同期 CPU 処理とデータのバッファリングを行うことができます。したがって、GPU でモデルをトレーニングしている場合は、モデルの開発中に最高のパフォーマンスを得るためにこのオプションを使用し、デプロイの準備ができたらモデル内に `TextVectorization` レイヤーを含めるように切り替えることをお勧めします。\n",
"\n",
"モデルの保存の詳細については、[モデルの保存と読み込み](../keras/save_and_load.ipynb)チュートリアルをご覧ください。"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "p4cvuFzavTRy"
},
"source": [
"## 例 2: イーリアスの翻訳者を予測する\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "fOlJ22508RIe"
},
"source": [
"以下に、`tf.data.TextLineDataset` を使用してテキストファイルから例を読み込み、[TensorFlow Text](https://www.tensorflow.org/text) を使用してデータを前処理する例を示します。この例では、ホーマーのイーリアスの 3 つの異なる英語翻訳を使用し、与えられた 1 行のテキストから翻訳者を識別するようにモデルをトレーニングします。"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "-pCgKbOSk7kU"
},
"source": [
"### データセットをダウンロードして調査する\n",
"\n",
"3 つのテキストの翻訳者は次のとおりです。\n",
"\n",
"- [ウィリアム・クーパー](https://en.wikipedia.org/wiki/William_Cowper) — [テキスト](https://storage.googleapis.com/download.tensorflow.org/data/illiad/cowper.txt)\n",
"- [エドワード、ダービー伯爵](https://en.wikipedia.org/wiki/Edward_Smith-Stanley,_14th_Earl_of_Derby) — [テキスト](https://storage.googleapis.com/download.tensorflow.org/data/illiad/derby.txt)\n",
"- [サミュエル・バトラー](https://en.wikipedia.org/wiki/Samuel_Butler_%28novelist%29) — [テキスト](https://storage.googleapis.com/download.tensorflow.org/data/illiad/butler.txt)\n",
"\n",
"このチュートリアルで使われているテキストファイルは、ヘッダ、フッタ、行番号、章のタイトルの削除など、いくつかの典型的な前処理が行われています。\n",
"\n",
"前処理後のファイルをローカルにダウンロードします。"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:23.324267Z",
"iopub.status.busy": "2022-12-15T01:17:23.323516Z",
"iopub.status.idle": "2022-12-15T01:17:23.482832Z",
"shell.execute_reply": "2022-12-15T01:17:23.482177Z"
},
"id": "4YlKQthEYlFw"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Downloading data from https://storage.googleapis.com/download.tensorflow.org/data/illiad/cowper.txt\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r",
" 16384/815980 [..............................] - ETA: 0s"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"819200/815980 [==============================] - 0s 0us/step\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"827392/815980 [==============================] - 0s 0us/step\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Downloading data from https://storage.googleapis.com/download.tensorflow.org/data/illiad/derby.txt\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r",
" 16384/809730 [..............................] - ETA: 0s"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"811008/809730 [==============================] - 0s 0us/step\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"819200/809730 [==============================] - 0s 0us/step\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Downloading data from https://storage.googleapis.com/download.tensorflow.org/data/illiad/butler.txt\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r",
" 16384/807992 [..............................] - ETA: 0s"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"811008/807992 [==============================] - 0s 0us/step\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"819200/807992 [==============================] - 0s 0us/step\n"
]
},
{
"data": {
"text/plain": [
"[PosixPath('/home/kbuilder/.keras/datasets/194px-New_East_River_Bridge_from_Brooklyn_det.4a09796u.jpg'),\n",
" PosixPath('/home/kbuilder/.keras/datasets/spa-eng'),\n",
" PosixPath('/home/kbuilder/.keras/datasets/jena_climate_2009_2016.csv'),\n",
" PosixPath('/home/kbuilder/.keras/datasets/facades'),\n",
" PosixPath('/home/kbuilder/.keras/datasets/mnist.npz'),\n",
" PosixPath('/home/kbuilder/.keras/datasets/flower_photos.tar.gz'),\n",
" PosixPath('/home/kbuilder/.keras/datasets/kandinsky5.jpg'),\n",
" PosixPath('/home/kbuilder/.keras/datasets/heart.csv'),\n",
" PosixPath('/home/kbuilder/.keras/datasets/ImageNetLabels.txt'),\n",
" PosixPath('/home/kbuilder/.keras/datasets/jena_climate_2009_2016.csv.zip'),\n",
" PosixPath('/home/kbuilder/.keras/datasets/320px-Felis_catus-cat_on_snow.jpg'),\n",
" PosixPath('/home/kbuilder/.keras/datasets/Giant Panda'),\n",
" PosixPath('/home/kbuilder/.keras/datasets/flower_photos'),\n",
" PosixPath('/home/kbuilder/.keras/datasets/shakespeare.txt'),\n",
" PosixPath('/home/kbuilder/.keras/datasets/facades.tar.gz'),\n",
" PosixPath('/home/kbuilder/.keras/datasets/fashion-mnist'),\n",
" PosixPath('/home/kbuilder/.keras/datasets/train.csv'),\n",
" PosixPath('/home/kbuilder/.keras/datasets/derby.txt'),\n",
" PosixPath('/home/kbuilder/.keras/datasets/HIGGS.csv.gz'),\n",
" PosixPath('/home/kbuilder/.keras/datasets/surf.jpg'),\n",
" PosixPath('/home/kbuilder/.keras/datasets/bedroom_hrnet_tutorial.jpg'),\n",
" PosixPath('/home/kbuilder/.keras/datasets/spa-eng.zip'),\n",
" PosixPath('/home/kbuilder/.keras/datasets/butler.txt'),\n",
" PosixPath('/home/kbuilder/.keras/datasets/Fireboat'),\n",
" PosixPath('/home/kbuilder/.keras/datasets/cowper.txt'),\n",
" PosixPath('/home/kbuilder/.keras/datasets/YellowLabradorLooking_new.jpg')]"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"DIRECTORY_URL = 'https://storage.googleapis.com/download.tensorflow.org/data/illiad/'\n",
"FILE_NAMES = ['cowper.txt', 'derby.txt', 'butler.txt']\n",
"\n",
"for name in FILE_NAMES:\n",
" text_dir = utils.get_file(name, origin=DIRECTORY_URL + name)\n",
"\n",
"parent_dir = pathlib.Path(text_dir).parent\n",
"list(parent_dir.iterdir())"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "M8PHK5J_cXE5"
},
"source": [
"### データセットを読み込む\n",
"\n",
"以前は、`tf.keras.utils.text_dataset_from_directory` では、ファイルのすべてのコンテンツが 1 つの例として扱われていました。ここでは、`tf.data.TextLineDataset` を使用します。これは、テキストファイルから `tf.data.Dataset` を作成するように設計されています。それぞれの例は、元のファイルからの行です。`TextLineDataset` は、主に行ベースのテキストデータ (詩やエラーログなど) に役立ちます。\n",
"\n",
"これらのファイルを繰り返し処理し、各ファイルを独自のデータセットに読み込みます。各例には個別にラベルを付ける必要があるため、`Dataset.map` を使用して、それぞれにラベラー関数を適用します。これにより、データセット内のすべての例が繰り返され、 (`example, label`) ペアが返されます。"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:23.486414Z",
"iopub.status.busy": "2022-12-15T01:17:23.485894Z",
"iopub.status.idle": "2022-12-15T01:17:23.489389Z",
"shell.execute_reply": "2022-12-15T01:17:23.488737Z"
},
"id": "YIIWIdPXgk7I"
},
"outputs": [],
"source": [
"def labeler(example, index):\n",
" return example, tf.cast(index, tf.int64)"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:23.492611Z",
"iopub.status.busy": "2022-12-15T01:17:23.492126Z",
"iopub.status.idle": "2022-12-15T01:17:23.553800Z",
"shell.execute_reply": "2022-12-15T01:17:23.553195Z"
},
"id": "8Ajx7AmZnEg3"
},
"outputs": [],
"source": [
"labeled_data_sets = []\n",
"\n",
"for i, file_name in enumerate(FILE_NAMES):\n",
" lines_dataset = tf.data.TextLineDataset(str(parent_dir/file_name))\n",
" labeled_dataset = lines_dataset.map(lambda ex: labeler(ex, i))\n",
" labeled_data_sets.append(labeled_dataset)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "wPOsVK1e9NGM"
},
"source": [
"次に、`Dataset.concatenate` を使用し、これらのラベル付きデータセットを 1 つのデータセットに結合し、`Dataset.shuffle` を使用してシャッフルします。\n"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:23.557240Z",
"iopub.status.busy": "2022-12-15T01:17:23.556964Z",
"iopub.status.idle": "2022-12-15T01:17:23.560354Z",
"shell.execute_reply": "2022-12-15T01:17:23.559752Z"
},
"id": "6jAeYkTIi9-2"
},
"outputs": [],
"source": [
"BUFFER_SIZE = 50000\n",
"BATCH_SIZE = 64\n",
"VALIDATION_SIZE = 5000"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:23.563443Z",
"iopub.status.busy": "2022-12-15T01:17:23.563005Z",
"iopub.status.idle": "2022-12-15T01:17:23.567725Z",
"shell.execute_reply": "2022-12-15T01:17:23.567123Z"
},
"id": "Qd544E-Sh63L"
},
"outputs": [],
"source": [
"all_labeled_data = labeled_data_sets[0]\n",
"for labeled_dataset in labeled_data_sets[1:]:\n",
" all_labeled_data = all_labeled_data.concatenate(labeled_dataset)\n",
"\n",
"all_labeled_data = all_labeled_data.shuffle(\n",
" BUFFER_SIZE, reshuffle_each_iteration=False)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "r4JEHrJXeG5k"
},
"source": [
"前述の手順でいくつかの例を出力します。データセットはまだバッチ処理されていないため、`all_labeled_data` の各エントリは 1 つのデータポイントに対応します。"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:23.571302Z",
"iopub.status.busy": "2022-12-15T01:17:23.570793Z",
"iopub.status.idle": "2022-12-15T01:17:24.166936Z",
"shell.execute_reply": "2022-12-15T01:17:24.166172Z"
},
"id": "gywKlN0xh6u5"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Sentence: b\"the man's right shoulder, and then stuck in the ground. He stood stock\"\n",
"Label: 2\n",
"Sentence: b'For yet a child he left me, when he fell'\n",
"Label: 1\n",
"Sentence: b'Save me, my brother! Pity me! Thy steeds'\n",
"Label: 0\n",
"Sentence: b'prepared the mess she bade them drink it. When they had done so and had'\n",
"Label: 2\n",
"Sentence: b'exhorts him to return to the field of battle. An interview succeeds'\n",
"Label: 0\n",
"Sentence: b'Then said Achilles, \"Son of Atreus, king of men Agamemnon, see to these'\n",
"Label: 2\n",
"Sentence: b'The hand of Menelaus, and while all'\n",
"Label: 0\n",
"Sentence: b\"A huge bull's hide, all drench'd and soak'd with grease;\"\n",
"Label: 1\n",
"Sentence: b'He sat, where sat the other Powers divine,'\n",
"Label: 0\n",
"Sentence: b'And in my cause lies slain, of any Greek'\n",
"Label: 1\n"
]
}
],
"source": [
"for text, label in all_labeled_data.take(10):\n",
" print(\"Sentence: \", text.numpy())\n",
" print(\"Label:\", label.numpy())"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "5rrpU2_sfDh0"
},
"source": [
"### トレーニング用データセットを準備する\n",
"\n",
"`tf.keras.layers.TextVectorization` を使用してテキストデータセットを前処理する代わりに、TensorFlow Text API を使用してデータを標準化およびトークン化し、語彙を作成し、`tf.lookup.StaticVocabularyTable` を使用してトークンを整数にマッピングし、モデルにフィードします。(詳細については [TensorFlow Text](https://www.tensorflow.org/text) を参照してください)。\n",
"\n",
"テキストを小文字に変換してトークン化する関数を定義します。\n",
"\n",
"- TensorFlow Text は、さまざまなトークナイザーを提供します。この例では、`text.UnicodeScriptTokenizer` を使用してデータセットをトークン化します。\n",
"- `Dataset.map` を使用して、トークン化をデータセットに適用します。"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:24.170805Z",
"iopub.status.busy": "2022-12-15T01:17:24.170167Z",
"iopub.status.idle": "2022-12-15T01:17:24.173997Z",
"shell.execute_reply": "2022-12-15T01:17:24.173374Z"
},
"id": "v4DpQW-Y12rm"
},
"outputs": [],
"source": [
"tokenizer = tf_text.UnicodeScriptTokenizer()"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:24.177276Z",
"iopub.status.busy": "2022-12-15T01:17:24.176653Z",
"iopub.status.idle": "2022-12-15T01:17:24.180317Z",
"shell.execute_reply": "2022-12-15T01:17:24.179608Z"
},
"id": "pz8xEj0ugu51"
},
"outputs": [],
"source": [
"def tokenize(text, unused_label):\n",
" lower_case = tf_text.case_fold_utf8(text)\n",
" return tokenizer.tokenize(lower_case)"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:24.183434Z",
"iopub.status.busy": "2022-12-15T01:17:24.182861Z",
"iopub.status.idle": "2022-12-15T01:17:25.828121Z",
"shell.execute_reply": "2022-12-15T01:17:25.827293Z"
},
"id": "vzUrAzOq31QL"
},
"outputs": [],
"source": [
"tokenized_ds = all_labeled_data.map(tokenize)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "jx4Q2i8XLV7o"
},
"source": [
"データセットを反復処理して、トークン化されたいくつかの例を出力します。\n"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:25.832378Z",
"iopub.status.busy": "2022-12-15T01:17:25.832105Z",
"iopub.status.idle": "2022-12-15T01:17:27.035425Z",
"shell.execute_reply": "2022-12-15T01:17:27.034687Z"
},
"id": "g2mkWri7LiGq"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Tokens: [b'the' b'man' b\"'\" b's' b'right' b'shoulder' b',' b'and' b'then' b'stuck'\n",
" b'in' b'the' b'ground' b'.' b'he' b'stood' b'stock']\n",
"Tokens: [b'for' b'yet' b'a' b'child' b'he' b'left' b'me' b',' b'when' b'he'\n",
" b'fell']\n",
"Tokens: [b'save' b'me' b',' b'my' b'brother' b'!' b'pity' b'me' b'!' b'thy'\n",
" b'steeds']\n",
"Tokens: [b'prepared' b'the' b'mess' b'she' b'bade' b'them' b'drink' b'it' b'.'\n",
" b'when' b'they' b'had' b'done' b'so' b'and' b'had']\n",
"Tokens: [b'exhorts' b'him' b'to' b'return' b'to' b'the' b'field' b'of' b'battle'\n",
" b'.' b'an' b'interview' b'succeeds']\n"
]
}
],
"source": [
"for text_batch in tokenized_ds.take(5):\n",
" print(\"Tokens: \", text_batch.numpy())"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "JPd4PsskJ_Xt"
},
"source": [
"次に、トークンを頻度で並べ替え、上位の `VOCAB_SIZE` トークンを保持することにより、語彙を構築します。"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:27.039376Z",
"iopub.status.busy": "2022-12-15T01:17:27.038645Z",
"iopub.status.idle": "2022-12-15T01:17:34.170689Z",
"shell.execute_reply": "2022-12-15T01:17:34.169939Z"
},
"id": "YkHtbGnDh6mg"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Vocab size: 10000\n",
"First five vocab entries: [b',', b'the', b'and', b\"'\", b'of']\n"
]
}
],
"source": [
"tokenized_ds = configure_dataset(tokenized_ds)\n",
"\n",
"vocab_dict = collections.defaultdict(lambda: 0)\n",
"for toks in tokenized_ds.as_numpy_iterator():\n",
" for tok in toks:\n",
" vocab_dict[tok] += 1\n",
"\n",
"vocab = sorted(vocab_dict.items(), key=lambda x: x[1], reverse=True)\n",
"vocab = [token for token, count in vocab]\n",
"vocab = vocab[:VOCAB_SIZE]\n",
"vocab_size = len(vocab)\n",
"print(\"Vocab size: \", vocab_size)\n",
"print(\"First five vocab entries:\", vocab[:5])"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "PyKSsaNAKi17"
},
"source": [
"トークンを整数に変換するには、`vocab` セットを使用して、`tf.lookup.StaticVocabularyTable` を作成します。トークンを [`2`, `vocab_size + 2`] の範囲の整数にマップします。`TextVectorization` レイヤーと同様に、`0` はパディングを示すために予約されており、`1` は語彙外 (OOV) トークンを示すために予約されています。"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:34.174700Z",
"iopub.status.busy": "2022-12-15T01:17:34.174101Z",
"iopub.status.idle": "2022-12-15T01:17:34.182839Z",
"shell.execute_reply": "2022-12-15T01:17:34.182192Z"
},
"id": "kCBo2yFHD7y6"
},
"outputs": [],
"source": [
"keys = vocab\n",
"values = range(2, len(vocab) + 2) # Reserve `0` for padding, `1` for OOV tokens.\n",
"\n",
"init = tf.lookup.KeyValueTensorInitializer(\n",
" keys, values, key_dtype=tf.string, value_dtype=tf.int64)\n",
"\n",
"num_oov_buckets = 1\n",
"vocab_table = tf.lookup.StaticVocabularyTable(init, num_oov_buckets)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Z5F-EiBpOADE"
},
"source": [
"最後に、トークナイザーとルックアップテーブルを使用して、データセットを標準化、トークン化、およびベクトル化する関数を定義します。"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:34.186317Z",
"iopub.status.busy": "2022-12-15T01:17:34.185794Z",
"iopub.status.idle": "2022-12-15T01:17:34.189528Z",
"shell.execute_reply": "2022-12-15T01:17:34.188880Z"
},
"id": "HcIQ7LOTh6eT"
},
"outputs": [],
"source": [
"def preprocess_text(text, label):\n",
" standardized = tf_text.case_fold_utf8(text)\n",
" tokenized = tokenizer.tokenize(standardized)\n",
" vectorized = vocab_table.lookup(tokenized)\n",
" return vectorized, label"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "v6S5Qyabi-vo"
},
"source": [
"1 つの例でこれを試して、出力を確認します。"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:34.192603Z",
"iopub.status.busy": "2022-12-15T01:17:34.192364Z",
"iopub.status.idle": "2022-12-15T01:17:34.850703Z",
"shell.execute_reply": "2022-12-15T01:17:34.849918Z"
},
"id": "jgxPZaxUuTbk"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Sentence: b\"the man's right shoulder, and then stuck in the ground. He stood stock\"\n",
"Vectorized sentence: [ 3 86 5 29 274 527 2 4 33 2749 13 3 191 7\n",
" 12 108 3286]\n"
]
}
],
"source": [
"example_text, example_label = next(iter(all_labeled_data))\n",
"print(\"Sentence: \", example_text.numpy())\n",
"vectorized_text, example_label = preprocess_text(example_text, example_label)\n",
"print(\"Vectorized sentence: \", vectorized_text.numpy())"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "p9qHM0v8k_Mg"
},
"source": [
"次に、`Dataset.map` を使用して、データセットに対して前処理関数を実行します。"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:34.854313Z",
"iopub.status.busy": "2022-12-15T01:17:34.853763Z",
"iopub.status.idle": "2022-12-15T01:17:36.357711Z",
"shell.execute_reply": "2022-12-15T01:17:36.356976Z"
},
"id": "KmQVsAgJ-RM0"
},
"outputs": [],
"source": [
"all_encoded_data = all_labeled_data.map(preprocess_text)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "_YZToSXSm0qr"
},
"source": [
"### データセットをトレーニング用セットとテスト用セットに分割する\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "itxIJwkrUXgv"
},
"source": [
"Keras `TextVectorization` レイヤーでも、ベクトル化されたデータをバッチ処理してパディングします。バッチ内の例は同じサイズと形状である必要があるため、パディングが必要です。これらのデータセットの例はすべて同じサイズではありません。テキストの各行には、異なる数の単語があります。\n",
"\n",
"`tf.data.Dataset` は、データセットの分割とパディングのバッチ処理をサポートしています"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:36.362290Z",
"iopub.status.busy": "2022-12-15T01:17:36.362000Z",
"iopub.status.idle": "2022-12-15T01:17:36.367115Z",
"shell.execute_reply": "2022-12-15T01:17:36.366519Z"
},
"id": "r-rmbijQh6bf"
},
"outputs": [],
"source": [
"train_data = all_encoded_data.skip(VALIDATION_SIZE).shuffle(BUFFER_SIZE)\n",
"validation_data = all_encoded_data.take(VALIDATION_SIZE)"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:36.370516Z",
"iopub.status.busy": "2022-12-15T01:17:36.369917Z",
"iopub.status.idle": "2022-12-15T01:17:36.377447Z",
"shell.execute_reply": "2022-12-15T01:17:36.376799Z"
},
"id": "qTP0IwHBCn0Q"
},
"outputs": [],
"source": [
"train_data = train_data.padded_batch(BATCH_SIZE)\n",
"validation_data = validation_data.padded_batch(BATCH_SIZE)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "m-wmFq8uW1zS"
},
"source": [
"`validation_data` および `train_data` は (`example, label`) ペアのコレクションではなく、バッチのコレクションです。各バッチは、配列として表される (*多くの例*、*多くのラベル*) のペアです。\n",
"\n",
"以下に示します。"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:36.380785Z",
"iopub.status.busy": "2022-12-15T01:17:36.380255Z",
"iopub.status.idle": "2022-12-15T01:17:37.569554Z",
"shell.execute_reply": "2022-12-15T01:17:37.568785Z"
},
"id": "kMslWfuwoqpB"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Text batch shape: (64, 19)\n",
"Label batch shape: (64,)\n",
"First text example: tf.Tensor(\n",
"[ 3 86 5 29 274 527 2 4 33 2749 13 3 191 7\n",
" 12 108 3286 0 0], shape=(19,), dtype=int64)\n",
"First label example: tf.Tensor(2, shape=(), dtype=int64)\n"
]
}
],
"source": [
"sample_text, sample_labels = next(iter(validation_data))\n",
"print(\"Text batch shape: \", sample_text.shape)\n",
"print(\"Label batch shape: \", sample_labels.shape)\n",
"print(\"First text example: \", sample_text[0])\n",
"print(\"First label example: \", sample_labels[0])"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "UI4I6_Sa0vWu"
},
"source": [
"パディングに 0 を使用し、語彙外 (OOV) トークンに 1 を使用するため、語彙のサイズが 2 つ増えました。"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:37.573307Z",
"iopub.status.busy": "2022-12-15T01:17:37.572735Z",
"iopub.status.idle": "2022-12-15T01:17:37.575981Z",
"shell.execute_reply": "2022-12-15T01:17:37.575341Z"
},
"id": "u21LlkO8QGRX"
},
"outputs": [],
"source": [
"vocab_size += 2"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "h44Ox11OYLP-"
},
"source": [
"以前と同じように、パフォーマンスを向上させるためにデータセットを構成します。"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:37.579289Z",
"iopub.status.busy": "2022-12-15T01:17:37.578747Z",
"iopub.status.idle": "2022-12-15T01:17:37.583608Z",
"shell.execute_reply": "2022-12-15T01:17:37.583043Z"
},
"id": "BpT0b_7mYRXV"
},
"outputs": [],
"source": [
"train_data = configure_dataset(train_data)\n",
"validation_data = configure_dataset(validation_data)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "K8SUhGFNsmRi"
},
"source": [
"### モデルをトレーニングする\n",
"\n",
"以前と同じように、このデータセットでモデルをトレーニングできます。"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:17:37.586997Z",
"iopub.status.busy": "2022-12-15T01:17:37.586430Z",
"iopub.status.idle": "2022-12-15T01:18:12.383152Z",
"shell.execute_reply": "2022-12-15T01:18:12.382344Z"
},
"id": "QJgI1pow2YR9"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/3\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r",
" 1/Unknown - 22s 22s/step - loss: 1.0935 - accuracy: 0.4844"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 15/Unknown - 22s 4ms/step - loss: 1.0591 - accuracy: 0.4292"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 32/Unknown - 22s 3ms/step - loss: 1.0370 - accuracy: 0.4038"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 51/Unknown - 22s 3ms/step - loss: 1.0025 - accuracy: 0.4577"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 70/Unknown - 22s 3ms/step - loss: 0.9636 - accuracy: 0.4975"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 88/Unknown - 22s 3ms/step - loss: 0.9299 - accuracy: 0.5234"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 107/Unknown - 22s 3ms/step - loss: 0.8895 - accuracy: 0.5510"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 125/Unknown - 22s 3ms/step - loss: 0.8618 - accuracy: 0.5709"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 144/Unknown - 22s 3ms/step - loss: 0.8311 - accuracy: 0.5885"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 162/Unknown - 23s 3ms/step - loss: 0.8055 - accuracy: 0.6055"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 181/Unknown - 23s 3ms/step - loss: 0.7815 - accuracy: 0.6205"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 200/Unknown - 23s 3ms/step - loss: 0.7567 - accuracy: 0.6363"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 219/Unknown - 23s 3ms/step - loss: 0.7330 - accuracy: 0.6493"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 238/Unknown - 23s 3ms/step - loss: 0.7147 - accuracy: 0.6595"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 257/Unknown - 23s 3ms/step - loss: 0.6987 - accuracy: 0.6685"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 276/Unknown - 23s 3ms/step - loss: 0.6831 - accuracy: 0.6769"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 295/Unknown - 23s 3ms/step - loss: 0.6682 - accuracy: 0.6856"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 314/Unknown - 23s 3ms/step - loss: 0.6548 - accuracy: 0.6934"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 333/Unknown - 23s 3ms/step - loss: 0.6429 - accuracy: 0.6998"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 351/Unknown - 23s 3ms/step - loss: 0.6332 - accuracy: 0.7053"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 369/Unknown - 23s 3ms/step - loss: 0.6250 - accuracy: 0.7096"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 387/Unknown - 23s 3ms/step - loss: 0.6158 - accuracy: 0.7150"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 406/Unknown - 23s 3ms/step - loss: 0.6065 - accuracy: 0.7203"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 425/Unknown - 23s 3ms/step - loss: 0.5976 - accuracy: 0.7256"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 444/Unknown - 23s 3ms/step - loss: 0.5900 - accuracy: 0.7300"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 463/Unknown - 23s 3ms/step - loss: 0.5825 - accuracy: 0.7334"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 482/Unknown - 23s 3ms/step - loss: 0.5752 - accuracy: 0.7372"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 501/Unknown - 23s 3ms/step - loss: 0.5680 - accuracy: 0.7407"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 520/Unknown - 24s 3ms/step - loss: 0.5617 - accuracy: 0.7443"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 539/Unknown - 24s 3ms/step - loss: 0.5558 - accuracy: 0.7474"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 558/Unknown - 24s 3ms/step - loss: 0.5505 - accuracy: 0.7501"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 576/Unknown - 24s 3ms/step - loss: 0.5451 - accuracy: 0.7530"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 594/Unknown - 24s 3ms/step - loss: 0.5398 - accuracy: 0.7560"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 612/Unknown - 24s 3ms/step - loss: 0.5349 - accuracy: 0.7587"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 630/Unknown - 24s 3ms/step - loss: 0.5306 - accuracy: 0.7612"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 648/Unknown - 24s 3ms/step - loss: 0.5263 - accuracy: 0.7633"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 667/Unknown - 24s 3ms/step - loss: 0.5222 - accuracy: 0.7654"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 685/Unknown - 24s 3ms/step - loss: 0.5187 - accuracy: 0.7673"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"697/697 [==============================] - 28s 9ms/step - loss: 0.5163 - accuracy: 0.7686 - val_loss: 0.3744 - val_accuracy: 0.8406\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 2/3\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r",
" 1/697 [..............................] - ETA: 4s - loss: 0.3166 - accuracy: 0.8750"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 19/697 [..............................] - ETA: 1s - loss: 0.3328 - accuracy: 0.8635"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 38/697 [>.............................] - ETA: 1s - loss: 0.3559 - accuracy: 0.8532"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 57/697 [=>............................] - ETA: 1s - loss: 0.3428 - accuracy: 0.8586"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 76/697 [==>...........................] - ETA: 1s - loss: 0.3381 - accuracy: 0.8588"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 95/697 [===>..........................] - ETA: 1s - loss: 0.3365 - accuracy: 0.8602"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"114/697 [===>..........................] - ETA: 1s - loss: 0.3339 - accuracy: 0.8601"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"132/697 [====>.........................] - ETA: 1s - loss: 0.3345 - accuracy: 0.8604"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"151/697 [=====>........................] - ETA: 1s - loss: 0.3309 - accuracy: 0.8624"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"169/697 [======>.......................] - ETA: 1s - loss: 0.3268 - accuracy: 0.8646"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"188/697 [=======>......................] - ETA: 1s - loss: 0.3229 - accuracy: 0.8657"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"207/697 [=======>......................] - ETA: 1s - loss: 0.3173 - accuracy: 0.8677"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"226/697 [========>.....................] - ETA: 1s - loss: 0.3110 - accuracy: 0.8711"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"245/697 [=========>....................] - ETA: 1s - loss: 0.3082 - accuracy: 0.8724"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"264/697 [==========>...................] - ETA: 1s - loss: 0.3074 - accuracy: 0.8730"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"283/697 [===========>..................] - ETA: 1s - loss: 0.3046 - accuracy: 0.8741"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"302/697 [===========>..................] - ETA: 1s - loss: 0.3029 - accuracy: 0.8753"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"321/697 [============>.................] - ETA: 1s - loss: 0.3005 - accuracy: 0.8765"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"340/697 [=============>................] - ETA: 0s - loss: 0.2990 - accuracy: 0.8772"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"359/697 [==============>...............] - ETA: 0s - loss: 0.2982 - accuracy: 0.8780"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"378/697 [===============>..............] - ETA: 0s - loss: 0.2972 - accuracy: 0.8779"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"397/697 [================>.............] - ETA: 0s - loss: 0.2954 - accuracy: 0.8783"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"416/697 [================>.............] - ETA: 0s - loss: 0.2935 - accuracy: 0.8795"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"435/697 [=================>............] - ETA: 0s - loss: 0.2917 - accuracy: 0.8806"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"454/697 [==================>...........] - ETA: 0s - loss: 0.2906 - accuracy: 0.8809"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"473/697 [===================>..........] - ETA: 0s - loss: 0.2890 - accuracy: 0.8814"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"492/697 [====================>.........] - ETA: 0s - loss: 0.2882 - accuracy: 0.8817"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"511/697 [====================>.........] - ETA: 0s - loss: 0.2863 - accuracy: 0.8826"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"530/697 [=====================>........] - ETA: 0s - loss: 0.2859 - accuracy: 0.8830"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"549/697 [======================>.......] - ETA: 0s - loss: 0.2849 - accuracy: 0.8835"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"568/697 [=======================>......] - ETA: 0s - loss: 0.2840 - accuracy: 0.8843"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"587/697 [========================>.....] - ETA: 0s - loss: 0.2830 - accuracy: 0.8850"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"606/697 [=========================>....] - ETA: 0s - loss: 0.2814 - accuracy: 0.8858"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"625/697 [=========================>....] - ETA: 0s - loss: 0.2805 - accuracy: 0.8864"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"644/697 [==========================>...] - ETA: 0s - loss: 0.2795 - accuracy: 0.8865"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"663/697 [===========================>..] - ETA: 0s - loss: 0.2786 - accuracy: 0.8871"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"682/697 [============================>.] - ETA: 0s - loss: 0.2782 - accuracy: 0.8870"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"697/697 [==============================] - 3s 4ms/step - loss: 0.2777 - accuracy: 0.8872 - val_loss: 0.3690 - val_accuracy: 0.8472\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 3/3\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r",
" 1/697 [..............................] - ETA: 3s - loss: 0.2072 - accuracy: 0.9375"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 19/697 [..............................] - ETA: 1s - loss: 0.2354 - accuracy: 0.9071"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 38/697 [>.............................] - ETA: 1s - loss: 0.2411 - accuracy: 0.9062"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 57/697 [=>............................] - ETA: 1s - loss: 0.2305 - accuracy: 0.9109"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 76/697 [==>...........................] - ETA: 1s - loss: 0.2265 - accuracy: 0.9130"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 94/697 [===>..........................] - ETA: 1s - loss: 0.2268 - accuracy: 0.9136"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"112/697 [===>..........................] - ETA: 1s - loss: 0.2258 - accuracy: 0.9129"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"131/697 [====>.........................] - ETA: 1s - loss: 0.2272 - accuracy: 0.9116"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"150/697 [=====>........................] - ETA: 1s - loss: 0.2246 - accuracy: 0.9124"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"169/697 [======>.......................] - ETA: 1s - loss: 0.2207 - accuracy: 0.9146"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"188/697 [=======>......................] - ETA: 1s - loss: 0.2192 - accuracy: 0.9145"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"206/697 [=======>......................] - ETA: 1s - loss: 0.2153 - accuracy: 0.9166"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"224/697 [========>.....................] - ETA: 1s - loss: 0.2110 - accuracy: 0.9185"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"242/697 [=========>....................] - ETA: 1s - loss: 0.2085 - accuracy: 0.9199"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"260/697 [==========>...................] - ETA: 1s - loss: 0.2076 - accuracy: 0.9204"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"279/697 [===========>..................] - ETA: 1s - loss: 0.2058 - accuracy: 0.9212"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"298/697 [===========>..................] - ETA: 1s - loss: 0.2044 - accuracy: 0.9221"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"317/697 [============>.................] - ETA: 1s - loss: 0.2032 - accuracy: 0.9226"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"336/697 [=============>................] - ETA: 1s - loss: 0.2031 - accuracy: 0.9222"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"355/697 [==============>...............] - ETA: 0s - loss: 0.2017 - accuracy: 0.9228"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"374/697 [===============>..............] - ETA: 0s - loss: 0.2013 - accuracy: 0.9228"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"392/697 [===============>..............] - ETA: 0s - loss: 0.2007 - accuracy: 0.9227"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"410/697 [================>.............] - ETA: 0s - loss: 0.1992 - accuracy: 0.9232"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"428/697 [=================>............] - ETA: 0s - loss: 0.1982 - accuracy: 0.9238"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"447/697 [==================>...........] - ETA: 0s - loss: 0.1971 - accuracy: 0.9245"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"465/697 [===================>..........] - ETA: 0s - loss: 0.1964 - accuracy: 0.9245"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"484/697 [===================>..........] - ETA: 0s - loss: 0.1953 - accuracy: 0.9251"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"503/697 [====================>.........] - ETA: 0s - loss: 0.1936 - accuracy: 0.9257"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"522/697 [=====================>........] - ETA: 0s - loss: 0.1927 - accuracy: 0.9263"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"541/697 [======================>.......] - ETA: 0s - loss: 0.1920 - accuracy: 0.9266"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"559/697 [=======================>......] - ETA: 0s - loss: 0.1916 - accuracy: 0.9267"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"578/697 [=======================>......] - ETA: 0s - loss: 0.1913 - accuracy: 0.9269"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"596/697 [========================>.....] - ETA: 0s - loss: 0.1901 - accuracy: 0.9275"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"615/697 [=========================>....] - ETA: 0s - loss: 0.1893 - accuracy: 0.9278"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"634/697 [==========================>...] - ETA: 0s - loss: 0.1886 - accuracy: 0.9283"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"653/697 [===========================>..] - ETA: 0s - loss: 0.1878 - accuracy: 0.9286"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"672/697 [===========================>..] - ETA: 0s - loss: 0.1868 - accuracy: 0.9292"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"690/697 [============================>.] - ETA: 0s - loss: 0.1865 - accuracy: 0.9294"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"697/697 [==============================] - 3s 4ms/step - loss: 0.1862 - accuracy: 0.9295 - val_loss: 0.4152 - val_accuracy: 0.8382\n"
]
}
],
"source": [
"model = create_model(vocab_size=vocab_size, num_labels=3)\n",
"\n",
"model.compile(\n",
" optimizer='adam',\n",
" loss=losses.SparseCategoricalCrossentropy(from_logits=True),\n",
" metrics=['accuracy'])\n",
"\n",
"history = model.fit(train_data, validation_data=validation_data, epochs=3)"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:18:12.387426Z",
"iopub.status.busy": "2022-12-15T01:18:12.386807Z",
"iopub.status.idle": "2022-12-15T01:18:13.173767Z",
"shell.execute_reply": "2022-12-15T01:18:13.173029Z"
},
"id": "KTPCYf_Jh6TH"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r",
" 1/Unknown - 1s 603ms/step - loss: 0.4481 - accuracy: 0.8438"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 27/Unknown - 1s 2ms/step - loss: 0.3972 - accuracy: 0.8414 "
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 54/Unknown - 1s 2ms/step - loss: 0.4058 - accuracy: 0.8409"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"79/79 [==============================] - 1s 2ms/step - loss: 0.4152 - accuracy: 0.8382\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Loss: 0.41523823142051697\n",
"Accuracy: 83.82%\n"
]
}
],
"source": [
"loss, accuracy = model.evaluate(validation_data)\n",
"\n",
"print(\"Loss: \", loss)\n",
"print(\"Accuracy: {:2.2%}\".format(accuracy))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "_knIsO-r4pHb"
},
"source": [
"### モデルをエクスポートする"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "FEuMLJA_Xiwo"
},
"source": [
"モデルが生の文字列を入力として受け取ることができるようにするには、カスタム前処理関数と同じ手順を実行する `TextVectorization` レイヤーを作成します。すでに語彙をトレーニングしているので、新しい語彙をトレーニングする `TextVectorization.adapt` の代わりに、`TextVectorization.set_vocabulary` を使用できます。"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:18:13.177644Z",
"iopub.status.busy": "2022-12-15T01:18:13.177010Z",
"iopub.status.idle": "2022-12-15T01:18:13.192126Z",
"shell.execute_reply": "2022-12-15T01:18:13.191420Z"
},
"id": "_ODkRXbk6aHb"
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/tmpfs/src/tf_docs_env/lib/python3.9/site-packages/numpy/core/numeric.py:2468: FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison\n",
" return bool(asarray(a1 == a2).all())\n",
"/tmpfs/src/tf_docs_env/lib/python3.9/site-packages/keras/layers/preprocessing/index_lookup.py:458: FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison\n",
" if self.mask_token is not None and self.mask_token in tokens:\n"
]
}
],
"source": [
"preprocess_layer = TextVectorization(\n",
" max_tokens=vocab_size,\n",
" standardize=tf_text.case_fold_utf8,\n",
" split=tokenizer.tokenize,\n",
" output_mode='int',\n",
" output_sequence_length=MAX_SEQUENCE_LENGTH)\n",
"\n",
"preprocess_layer.set_vocabulary(vocab)"
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:18:13.195162Z",
"iopub.status.busy": "2022-12-15T01:18:13.194936Z",
"iopub.status.idle": "2022-12-15T01:18:13.205623Z",
"shell.execute_reply": "2022-12-15T01:18:13.205050Z"
},
"id": "G-Cvd27y4qwt"
},
"outputs": [],
"source": [
"export_model = tf.keras.Sequential(\n",
" [preprocess_layer, model,\n",
" layers.Activation('sigmoid')])\n",
"\n",
"export_model.compile(\n",
" loss=losses.SparseCategoricalCrossentropy(from_logits=False),\n",
" optimizer='adam',\n",
" metrics=['accuracy'])"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:18:13.208807Z",
"iopub.status.busy": "2022-12-15T01:18:13.208300Z",
"iopub.status.idle": "2022-12-15T01:18:18.964906Z",
"shell.execute_reply": "2022-12-15T01:18:18.964155Z"
},
"id": "Pyg0B4zsc-UD"
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2022-12-15 01:18:17.427116: W tensorflow/core/grappler/optimizers/loop_optimizer.cc:907] Skipping loop optimization for Merge node with control input: sequential_4/text_vectorization_2/UnicodeScriptTokenize/Assert_1/AssertGuard/branch_executed/_185\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r",
" 1/Unknown - 5s 5s/step - loss: 0.7075 - accuracy: 0.7344"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 8/Unknown - 5s 7ms/step - loss: 0.5362 - accuracy: 0.7734"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 16/Unknown - 5s 7ms/step - loss: 0.5461 - accuracy: 0.7852"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 24/Unknown - 5s 7ms/step - loss: 0.5640 - accuracy: 0.7773"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 32/Unknown - 5s 7ms/step - loss: 0.5520 - accuracy: 0.7788"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 40/Unknown - 5s 7ms/step - loss: 0.5366 - accuracy: 0.7863"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 48/Unknown - 6s 7ms/step - loss: 0.5563 - accuracy: 0.7806"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 56/Unknown - 6s 7ms/step - loss: 0.5648 - accuracy: 0.7799"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 64/Unknown - 6s 7ms/step - loss: 0.5714 - accuracy: 0.7786"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 71/Unknown - 6s 7ms/step - loss: 0.5681 - accuracy: 0.7779"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 78/Unknown - 6s 7ms/step - loss: 0.5733 - accuracy: 0.7764"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"79/79 [==============================] - 6s 7ms/step - loss: 0.5736 - accuracy: 0.7764\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Loss: 0.5736407041549683\n",
"Accuracy: 77.64%\n"
]
}
],
"source": [
"# Create a test dataset of raw strings.\n",
"test_ds = all_labeled_data.take(VALIDATION_SIZE).batch(BATCH_SIZE)\n",
"test_ds = configure_dataset(test_ds)\n",
"\n",
"loss, accuracy = export_model.evaluate(test_ds)\n",
"\n",
"print(\"Loss: \", loss)\n",
"print(\"Accuracy: {:2.2%}\".format(accuracy))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "o6Mm0Y9QYQwE"
},
"source": [
"エンコードされた検証セットのモデルと生の検証セットのエクスポートされたモデルの損失と正確度は、予想どおり同じです。"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Stk2BP8GE-qo"
},
"source": [
"### 新しいデータで推論を実行する"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:18:18.968257Z",
"iopub.status.busy": "2022-12-15T01:18:18.967996Z",
"iopub.status.idle": "2022-12-15T01:18:21.146388Z",
"shell.execute_reply": "2022-12-15T01:18:21.145674Z"
},
"id": "-w1fQGJPD2Yh"
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2022-12-15 01:18:20.841752: W tensorflow/core/grappler/optimizers/loop_optimizer.cc:907] Skipping loop optimization for Merge node with control input: sequential_4/text_vectorization_2/UnicodeScriptTokenize/Assert_1/AssertGuard/branch_executed/_185\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Question: Join'd to th' Ionians with their flowing robes,\n",
"Predicted label: 1\n",
"Question: the allies, and his armour flashed about him so that he seemed to all\n",
"Predicted label: 2\n",
"Question: And with loud clangor of his arms he fell.\n",
"Predicted label: 0\n"
]
}
],
"source": [
"inputs = [\n",
" \"Join'd to th' Ionians with their flowing robes,\", # Label: 1\n",
" \"the allies, and his armour flashed about him so that he seemed to all\", # Label: 2\n",
" \"And with loud clangor of his arms he fell.\", # Label: 0\n",
"]\n",
"\n",
"predicted_scores = export_model.predict(inputs)\n",
"predicted_labels = tf.math.argmax(predicted_scores, axis=1)\n",
"\n",
"for input, label in zip(inputs, predicted_labels):\n",
" print(\"Question: \", input)\n",
" print(\"Predicted label: \", label.numpy())"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "9eA8TVdnA-3L"
},
"source": [
"## TensorFlow Datasets (TFDS) を使用して、より多くのデータセットをダウンロードする\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "2QFSxfZ3Vqsn"
},
"source": [
"[TensorFlow Dataset](https://www.tensorflow.org/datasets/catalog/overview) からより多くのデータセットをダウンロードできます。\n",
"\n",
"この例では、[IMDB 大規模映画レビューデータセット](https://www.tensorflow.org/datasets/catalog/imdb_reviews)を使用して、感情分類のモデルをトレーニングします。"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:18:21.150267Z",
"iopub.status.busy": "2022-12-15T01:18:21.149707Z",
"iopub.status.idle": "2022-12-15T01:18:21.872059Z",
"shell.execute_reply": "2022-12-15T01:18:21.871371Z"
},
"id": "NzC65LOaVw0B"
},
"outputs": [],
"source": [
"# Training set.\n",
"train_ds = tfds.load(\n",
" 'imdb_reviews',\n",
" split='train[:80%]',\n",
" batch_size=BATCH_SIZE,\n",
" shuffle_files=True,\n",
" as_supervised=True)"
]
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:18:21.876193Z",
"iopub.status.busy": "2022-12-15T01:18:21.875764Z",
"iopub.status.idle": "2022-12-15T01:18:22.400650Z",
"shell.execute_reply": "2022-12-15T01:18:22.399906Z"
},
"id": "XKGkgPBkFh0k"
},
"outputs": [],
"source": [
"# Validation set.\n",
"val_ds = tfds.load(\n",
" 'imdb_reviews',\n",
" split='train[80%:]',\n",
" batch_size=BATCH_SIZE,\n",
" shuffle_files=True,\n",
" as_supervised=True)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "BQjf3YZAb5Ne"
},
"source": [
"いくつかの例を出力します。"
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:18:22.405048Z",
"iopub.status.busy": "2022-12-15T01:18:22.404476Z",
"iopub.status.idle": "2022-12-15T01:18:22.751552Z",
"shell.execute_reply": "2022-12-15T01:18:22.750693Z"
},
"id": "Bq1w8MnfWt2C"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Review: b\"Instead, go to the zoo, buy some peanuts and feed 'em to the monkeys. Monkeys are funny. People with amnesia who don't say much, just sit there with vacant eyes are not all that funny.