text:
import struct
import os
import json
import cv2
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt

mouse = [
'./open_dataset/black\め_0.png',
'./open_dataset/black\ち_0.png',
'./open_dataset/black\ま_0.png',
'./open_dataset/black\ス_0.png',
'./open_dataset/black\リ_0.png',
'./open_dataset/black\ル_0.png',
'./open_dataset/black\ら_0.png',
'./open_dataset/black\ッ_0.png',
'./open_dataset/black\カ_0.png',
'./open_dataset/black\年_0.png',
'./open_dataset/black\し_0.png',
'./open_dataset/black\は_0.png',
'./open_dataset/black\私_0.png',
'./open_dataset/black\が_0.png',
'./open_dataset/black\二_0.png',
'./open_dataset/black\本_0.png',
'./open_dataset/black\く_0.png',
'./open_dataset/black\な_0.png',
'./open_dataset/black\タ_0.png',
'./open_dataset/black\ロ_0.png',
'./open_dataset/black\も_0.png',
'./open_dataset/black\シ_0.png',
'./open_dataset/black\で_0.png',
'./open_dataset/black\す_0.png',
'./open_dataset/black\だ_0.png',
'./open_dataset/black\子_0.png',
'./open_dataset/black\時_0.png',
'./open_dataset/black\っ_0.png',
'./open_dataset/black\に_0.png',
'./open_dataset/black\か_0.png',
'./open_dataset/black\せ_0.png',
'./open_dataset/black\ろ_0.png',
'./open_dataset/black\ん_0.png',
'./open_dataset/black\み_0.png',
'./open_dataset/black\間_0.png',
'./open_dataset/black\と_0.png',
'./open_dataset/black\う_0.png',
'./open_dataset/black\前_0.png',
'./open_dataset/black\や_0.png',
'./open_dataset/black\き_0.png',
'./open_dataset/black\分_0.png',
'./open_dataset/black\合_0.png',
'./open_dataset/black\て_0.png',
'./open_dataset/black\り_0.png',
'./open_dataset/black\上_0.png',
'./open_dataset/black\ー_0.png',
'./open_dataset/black\ア_0.png',
'./open_dataset/black\出_0.png',
'./open_dataset/black\ン_0.png',
'./open_dataset/black\日_0.png',
'./open_dataset/black\ど_0.png',
'./open_dataset/black\自_0.png',
'./open_dataset/black\入_0.png',
'./open_dataset/black\た_0.png',
'./open_dataset/black\よ_0.png',
'./open_dataset/black\場_0.png',
'./open_dataset/black\ク_1.png',
'./open_dataset/black\る_1.png',
'./open_dataset/black\レ_1.png',
'./open_dataset/black\分_1.png',
'./open_dataset/black\場_1.png',
'./open_dataset/black\な_1.png',
'./open_dataset/black\手_1.png',
'./open_dataset/black\か_1.png',
'./open_dataset/black\出_1.png',
'./open_dataset/black\そ_1.png',
'./open_dataset/black\行_1.png',
'./open_dataset/black\し_1.png',
'./open_dataset/black\を_1.png',
'./open_dataset/black\を_2.png',
'./open_dataset/black\よ_1.png',
'./open_dataset/black\中_1.png',
'./open_dataset/black\さ_1.png',
'./open_dataset/black\方_1.png',
'./open_dataset/black\で_1.png',
'./open_dataset/black\自_1.png',
'./open_dataset/black\二_1.png',
'./open_dataset/black\は_1.png',
'./open_dataset/black\つ_1.png',
'./open_dataset/black\ロ_1.png',
'./open_dataset/black\す_1.png',
'./open_dataset/black\ス_1.png',
'./open_dataset/black\ず_1.png',
'./open_dataset/black\人_1.png',
'./open_dataset/black\わ_1.png',
'./open_dataset/black\れ_1.png',
'./open_dataset/black\き_1.png',
'./open_dataset/black\ア_1.png',
'./open_dataset/black\け_1.png',
'./open_dataset/black\間_1.png',
'./open_dataset/black\と_1.png',
'./open_dataset/black\っ_1.png',
'./open_dataset/black\学_1.png',
'./open_dataset/black\ー_1.png',
'./open_dataset/black\者_1.png',
'./open_dataset/black\時_1.png',
'./open_dataset/black\前_1.png',
'./open_dataset/black\だ_1.png',
'./open_dataset/black\大_1.png',
'./open_dataset/black\国_1.png',
'./open_dataset/black\イ_1.png',
'./open_dataset/black\ん_1.png',
'./open_dataset/black\見_1.png',
'./open_dataset/black\ド_1.png',
'./open_dataset/black\い_1.png',
'./open_dataset/black\が_1.png',
'./open_dataset/black\会_1.png',
'./open_dataset/black\え_1.png',
'./open_dataset/black\子_1.png',
'./open_dataset/black\に_1.png',
'./open_dataset/black\私_1.png',
'./open_dataset/black\じ_1.png',
'./open_dataset/black\の_1.png',
'./open_dataset/black\ど_1.png',
'./open_dataset/black\言_1.png',
'./open_dataset/black\事_1.png',
'./open_dataset/black\一_1.png',
'./open_dataset/black\年_1.png',
'./open_dataset/black\ち_1.png',
'./open_dataset/black\ょ_1.png',
'./open_dataset/black\ン_1.png',
'./open_dataset/black\タ_1.png',
'./open_dataset/black\み_1.png',
'./open_dataset/black\上_1.png',
'./open_dataset/black\ほ_1.png',
'./open_dataset/black\思_1.png',
'./open_dataset/black\ね_1.png',
'./open_dataset/black\ず_2.png',
'./open_dataset/black\ち_2.png',
'./open_dataset/black\ら_2.png',
'./open_dataset/black\日_2.png',
'./open_dataset/black\気_2.png',
'./open_dataset/black\し_2.png',
'./open_dataset/black\は_2.png',
'./open_dataset/black\事_2.png',
'./open_dataset/black\う_2.png',
'./open_dataset/black\大_2.png',
'./open_dataset/black\合_2.png',
'./open_dataset/black\で_2.png',
'./open_dataset/black\ば_2.png',
'./open_dataset/black\だ_2.png',
'./open_dataset/black\ア_2.png',
'./open_dataset/black\レ_2.png',
'./open_dataset/black\な_2.png',
'./open_dataset/black\っ_2.png',
'./open_dataset/black\シ_2.png',
'./open_dataset/black\ま_2.png',
'./open_dataset/black\ラ_2.png',
'./open_dataset/black\私_2.png',
'./open_dataset/black\が_2.png',
'./open_dataset/black\ね_2.png',
'./open_dataset/black\わ_2.png',
'./open_dataset/black\と_2.png',
'./open_dataset/black\り_2.png',
'./open_dataset/black\方_2.png',
'./open_dataset/black\時_2.png',
'./open_dataset/black\れ_2.png',
'./open_dataset/black\せ_2.png',
'./open_dataset/black\く_2.png',
'./open_dataset/black\国_2.png',
'./open_dataset/black\す_2.png',
'./open_dataset/black\さ_2.png',
'./open_dataset/black\ろ_2.png',
'./open_dataset/black\見_2.png',
'./open_dataset/black\人_2.png',
'./open_dataset/black\学_2.png',
'./open_dataset/black\あ_2.png',
'./open_dataset/black\ト_2.png',
'./open_dataset/black\行_2.png',
'./open_dataset/black\た_2.png',
'./open_dataset/black\る_2.png',
'./open_dataset/black\ほ_2.png',
'./open_dataset/black\中_2.png',
'./open_dataset/black\こ_2.png',
'./open_dataset/black\み_2.png',
'./open_dataset/black\間_2.png',
'./open_dataset/black\て_2.png',
'./open_dataset/black\自_2.png',
'./open_dataset/black\つ_2.png',
'./open_dataset/black\に_2.png',
'./open_dataset/black\そ_2.png',
'./open_dataset/black\ク_2.png',
'./open_dataset/black\生_2.png',
'./open_dataset/black\ん_2.png',
'./open_dataset/black\ス_2.png',
'./open_dataset/black\き_2.png',
'./open_dataset/black\カ_2.png',
'./open_dataset/black\上_2.png',
'./open_dataset/black\も_2.png',
'./open_dataset/black\ロ_2.png',
'./open_dataset/black\ッ_2.png',
'./open_dataset/black\じ_3.png',
'./open_dataset/black\会_3.png',
'./open_dataset/black\お_3.png',
'./open_dataset/black\て_3.png',
'./open_dataset/black\本_3.png',
'./open_dataset/black\ン_3.png',
'./open_dataset/black\上_3.png',
'./open_dataset/black\か_3.png',
'./open_dataset/black\こ_3.png',
'./open_dataset/black\ん_3.png',
'./open_dataset/black\ス_3.png',
'./open_dataset/black\見_3.png',
'./open_dataset/black\た_3.png',
'./open_dataset/black\学_3.png',
'./open_dataset/black\年_3.png',
'./open_dataset/black\き_3.png',
'./open_dataset/black\に_3.png',
'./open_dataset/black\れ_3.png',
'./open_dataset/black\出_3.png',
'./open_dataset/black\リ_3.png',
'./open_dataset/black\う_3.png',
'./open_dataset/black\わ_3.png',
'./open_dataset/black\り_3.png',
'./open_dataset/black\者_3.png',
'./open_dataset/black\的_3.png',
'./open_dataset/black\る_3.png',
'./open_dataset/black\合_3.png',
'./open_dataset/black\ー_3.png',
'./open_dataset/black\ル_3.png',
'./open_dataset/black\私_3.png',
'./open_dataset/black\前_3.png',
'./open_dataset/black\カ_3.png',
'./open_dataset/black\よ_3.png',
'./open_dataset/black\い_3.png',
'./open_dataset/black\事_3.png',
'./open_dataset/black\そ_3.png',
'./open_dataset/black\気_3.png',
'./open_dataset/black\ろ_3.png',
'./open_dataset/black\ど_3.png',
'./open_dataset/black\や_3.png',
'./open_dataset/black\手_3.png',
'./open_dataset/black\せ_3.png',
'./open_dataset/black\自_3.png',
'./open_dataset/black\ょ_3.png',
'./open_dataset/black\の_3.png',
'./open_dataset/black\ば_3.png',
'./open_dataset/black\入_3.png',
'./open_dataset/black\日_3.png',
'./open_dataset/black\ね_3.png',
'./open_dataset/black\時_3.png',
'./open_dataset/black\ち_3.png',
'./open_dataset/black\ロ_3.png',
'./open_dataset/black\ア_3.png',
'./open_dataset/black\分_3.png',
'./open_dataset/black\言_3.png',
'./open_dataset/black\タ_3.png',
'./open_dataset/black\め_4.png',
'./open_dataset/black\ま_4.png',
'./open_dataset/black\大_4.png',
'./open_dataset/black\タ_4.png',
'./open_dataset/black\し_4.png',
'./open_dataset/black\は_4.png',
'./open_dataset/black\ル_4.png',
'./open_dataset/black\り_4.png',
'./open_dataset/black\ッ_4.png',
'./open_dataset/black\ト_4.png',
'./open_dataset/black\あ_4.png',
'./open_dataset/black\ラ_4.png',
'./open_dataset/black\前_4.png',
'./open_dataset/black\な_4.png',
'./open_dataset/black\を_4.png',
'./open_dataset/black\国_4.png',
'./open_dataset/black\す_4.png',
'./open_dataset/black\分_4.png',
'./open_dataset/black\入_4.png',
'./open_dataset/black\る_4.png',
'./open_dataset/black\二_4.png',
'./open_dataset/black\ど_4.png',
'./open_dataset/black\と_4.png',
'./open_dataset/black\も_4.png',
'./open_dataset/black\ず_4.png',
'./open_dataset/black\子_4.png',
'./open_dataset/black\っ_4.png',
'./open_dataset/black\ス_4.png',
'./open_dataset/black\こ_4.png',
'./open_dataset/black\上_4.png',
'./open_dataset/black\か_4.png',
'./open_dataset/black\き_4.png',
'./open_dataset/black\ば_4.png',
'./open_dataset/black\う_4.png',
'./open_dataset/black\者_4.png',
'./open_dataset/black\が_4.png',
'./open_dataset/black\レ_4.png',
'./open_dataset/black\さ_4.png',
'./open_dataset/black\に_4.png',
'./open_dataset/black\ク_4.png',
'./open_dataset/black\や_4.png',
'./open_dataset/black\そ_4.png',
'./open_dataset/black\手_4.png',
'./open_dataset/black\て_4.png',
'./open_dataset/black\れ_4.png',
'./open_dataset/black\行_4.png',
'./open_dataset/black\だ_4.png',
'./open_dataset/black\年_4.png',
'./open_dataset/black\合_4.png',
'./open_dataset/black\で_4.png',
'./open_dataset/black\事_4.png',
'./open_dataset/black\一_4.png',
'./open_dataset/black\た_4.png',
'./open_dataset/black\よ_4.png',
'./open_dataset/black\言_4.png',
'./open_dataset/black\思_4.png',
'./open_dataset/black\ー_4.png',
'./open_dataset/black\リ_4.png',
'./open_dataset/black\ン_4.png',
'./open_dataset/black\ロ_4.png',
'./open_dataset/black\シ_4.png',
'./open_dataset/black\く_4.png',
'./open_dataset/black\わ_4.png',
'./open_dataset/black\ア_4.png',
'./open_dataset/black\け_4.png',
'./open_dataset/black\自_4.png',
'./open_dataset/black\時_4.png',
'./open_dataset/black\じ_4.png',
'./open_dataset/black\い_4.png',
'./open_dataset/black\ろ_4.png',
'./open_dataset/black\ら_4.png',
'./open_dataset/black\会_4.png',
'./open_dataset/black\ち_4.png',
'./open_dataset/black\生_4.png',
'./open_dataset/black\方_4.png',
'./open_dataset/black\せ_4.png',
'./open_dataset/black\ほ_4.png',
'./open_dataset/black\人_4.png',
'./open_dataset/black\的_4.png',
'./open_dataset/black\出_4.png',
'./open_dataset/black\イ_4.png',
'./open_dataset/black\ド_4.png',
'./open_dataset/black\ょ_4.png',
'./open_dataset/black\中_4.png',
'./open_dataset/black\見_4.png',
'./open_dataset/black\本_4.png',
'./open_dataset/black\カ_4.png',
'./open_dataset/black\み_4.png',
'./open_dataset/black\学_4.png',
'./open_dataset/black\る_5.png',
'./open_dataset/black\思_5.png',
'./open_dataset/black\か_5.png',
'./open_dataset/black\ば_5.png',
'./open_dataset/black\上_5.png',
'./open_dataset/black\な_5.png',
'./open_dataset/black\自_5.png',
'./open_dataset/black\よ_5.png',
'./open_dataset/black\と_5.png',
'./open_dataset/black\う_5.png',
'./open_dataset/black\本_5.png',
'./open_dataset/black\ラ_5.png',
'./open_dataset/black\が_5.png',
'./open_dataset/black\人_5.png',
'./open_dataset/black\れ_5.png',
'./open_dataset/black\シ_5.png',
'./open_dataset/black\見_5.png',
'./open_dataset/black\は_5.png',
'./open_dataset/black\ょ_5.png',
'./open_dataset/black\あ_5.png',
'./open_dataset/black\一_5.png',
'./open_dataset/black\私_5.png',
'./open_dataset/black\リ_5.png',
'./open_dataset/black\ー_5.png',
'./open_dataset/black\言_5.png',
'./open_dataset/black\で_5.png',
'./open_dataset/black\も_5.png',
'./open_dataset/black\ほ_5.png',
'./open_dataset/black\り_5.png',
'./open_dataset/black\的_5.png',
'./open_dataset/black\っ_5.png',
'./open_dataset/black\場_5.png',
'./open_dataset/black\ス_5.png',
'./open_dataset/black\て_5.png',
'./open_dataset/black\だ_5.png',
'./open_dataset/black\タ_5.png',
'./open_dataset/black\ね_5.png',
'./open_dataset/black\し_5.png',
'./open_dataset/black\ン_5.png',
'./open_dataset/black\す_5.png',
'./open_dataset/black\ア_5.png',
'./open_dataset/black\み_5.png',
'./open_dataset/black\た_5.png',
'./open_dataset/black\入_5.png',
'./open_dataset/black\行_5.png',
'./open_dataset/black\く_5.png',
'./open_dataset/black\ど_5.png',
'./open_dataset/black\者_5.png',
'./open_dataset/black\二_5.png',
'./open_dataset/black\事_5.png',
'./open_dataset/black\を_5.png',
'./open_dataset/black\間_5.png',
'./open_dataset/black\国_5.png',
'./open_dataset/black\出_5.png',
'./open_dataset/black\ま_5.png',
'./open_dataset/black\め_5.png',
'./open_dataset/black\に_5.png',
'./open_dataset/black\会_5.png',
'./open_dataset/black\け_5.png',
'./open_dataset/black\イ_5.png',
'./open_dataset/black\中_5.png',
'./open_dataset/black\つ_5.png',
'./open_dataset/black\前_5.png',
'./open_dataset/black\さ_5.png',
'./open_dataset/black\ッ_5.png',
'./open_dataset/black\や_5.png',
'./open_dataset/black\き_5.png',
'./open_dataset/black\ト_5.png',
'./open_dataset/black\方_5.png',
'./open_dataset/black\こ_5.png',
'./open_dataset/black\生_5.png',
'./open_dataset/black\合_5.png',
'./open_dataset/black\ら_5.png',
'./open_dataset/black\時_5.png',
'./open_dataset/black\い_5.png',
'./open_dataset/black\気_5.png',
'./open_dataset/black\ち_5.png',
'./open_dataset/black\子_5.png',
'./open_dataset/black\レ_5.png',
'./open_dataset/black\ド_5.png',
'./open_dataset/black\分_5.png',
'./open_dataset/black\日_5.png',
'./open_dataset/black\手_5.png',
'./open_dataset/black\カ_5.png',
'./open_dataset/black\年_5.png',
'./open_dataset/black\わ_5.png',
'./open_dataset/black\え_5.png',
'./open_dataset/black\学_5.png',
'./open_dataset/black\そ_5.png',
'./open_dataset/black\ル_5.png',
'./open_dataset/black\ん_5.png',
'./open_dataset/black\大_5.png',
'./open_dataset/black\ロ_5.png',
'./open_dataset/black\せ_5.png',
'./open_dataset/black\ず_5.png',
'./open_dataset/black\じ_5.png',
'./open_dataset/black\ろ_5.png',
'./open_dataset/black\ク_5.png',
'./open_dataset/black\の_5.png',
'./open_dataset/black\お_5.png',
'./open_dataset/black\う_6.png',
'./open_dataset/black\見_6.png',
'./open_dataset/black\リ_6.png',
'./open_dataset/black\り_6.png',
'./open_dataset/black\ル_6.png',
'./open_dataset/black\ら_6.png',
'./open_dataset/black\自_6.png',
'./open_dataset/black\年_6.png',
'./open_dataset/black\て_6.png',
'./open_dataset/black\ほ_6.png',
'./open_dataset/black\は_6.png',
'./open_dataset/black\国_6.png',
'./open_dataset/black\合_6.png',
'./open_dataset/black\せ_6.png',
'./open_dataset/black\イ_6.png',
'./open_dataset/black\大_6.png',
'./open_dataset/black\カ_6.png',
'./open_dataset/black\間_6.png',
'./open_dataset/black\ょ_6.png',
'./open_dataset/black\行_6.png',
'./open_dataset/black\る_6.png',
'./open_dataset/black\っ_6.png',
'./open_dataset/black\め_6.png',
'./open_dataset/black\上_6.png',
'./open_dataset/black\が_6.png',
'./open_dataset/black\で_6.png',
'./open_dataset/black\日_6.png',
'./open_dataset/black\者_6.png',
'./open_dataset/black\ば_6.png',
'./open_dataset/black\思_6.png',
'./open_dataset/black\本_6.png',
'./open_dataset/black\め_7.png',
'./open_dataset/black\り_7.png',
'./open_dataset/black\み_7.png',
'./open_dataset/black\二_7.png',
'./open_dataset/black\た_7.png',
'./open_dataset/black\う_7.png',
'./open_dataset/black\言_7.png',
'./open_dataset/black\こ_7.png',
'./open_dataset/black\出_7.png',
'./open_dataset/black\手_7.png',
'./open_dataset/black\て_7.png',
'./open_dataset/black\間_7.png',
'./open_dataset/black\イ_7.png',
'./open_dataset/black\ー_7.png',
'./open_dataset/black\ク_7.png',
'./open_dataset/black\学_7.png',
'./open_dataset/black\れ_7.png',
'./open_dataset/black\あ_7.png',
'./open_dataset/black\入_7.png',
'./open_dataset/black\そ_7.png',
'./open_dataset/black\自_7.png',
'./open_dataset/black\ら_7.png',
'./open_dataset/black\ほ_7.png',
'./open_dataset/black\ば_7.png',
'./open_dataset/black\に_7.png',
'./open_dataset/black\ン_7.png',
'./open_dataset/black\ド_7.png',
'./open_dataset/black\じ_7.png',
'./open_dataset/black\く_7.png',
'./open_dataset/black\ス_7.png',
'./open_dataset/black\ん_7.png',
'./open_dataset/black\方_7.png',
'./open_dataset/black\ア_7.png',
'./open_dataset/black\い_7.png',
'./open_dataset/black\タ_7.png',
'./open_dataset/black\ど_7.png',
'./open_dataset/black\リ_7.png',
'./open_dataset/black\レ_7.png',
'./open_dataset/black\私_7.png',
'./open_dataset/black\よ_7.png',
'./open_dataset/black\者_7.png',
'./open_dataset/black\つ_7.png',
'./open_dataset/black\分_7.png',
'./open_dataset/black\の_7.png',
'./open_dataset/black\事_7.png',
'./open_dataset/black\ト_7.png',
'./open_dataset/black\年_7.png',
'./open_dataset/black\国_7.png',
'./open_dataset/black\ろ_7.png',
'./open_dataset/black\ロ_7.png',
'./open_dataset/black\ル_7.png',
'./open_dataset/black\シ_7.png',
'./open_dataset/black\見_7.png',
'./open_dataset/black\場_7.png',
'./open_dataset/black\ッ_7.png',
'./open_dataset/black\わ_7.png',
'./open_dataset/black\思_7.png',
'./open_dataset/black\気_7.png',
'./open_dataset/black\め_8.png',
'./open_dataset/black\ま_8.png',
'./open_dataset/black\大_8.png',
'./open_dataset/black\タ_8.png',
'./open_dataset/black\し_8.png',
'./open_dataset/black\ス_8.png',
'./open_dataset/black\こ_8.png',
'./open_dataset/black\じ_8.png',
'./open_dataset/black\カ_8.png',
'./open_dataset/black\な_8.png',
'./open_dataset/black\が_8.png',
'./open_dataset/black\方_8.png',
'./open_dataset/black\う_8.png',
'./open_dataset/black\出_8.png',
'./open_dataset/black\会_8.png',
'./open_dataset/black\る_8.png',
'./open_dataset/black\間_8.png',
'./open_dataset/black\え_8.png',
'./open_dataset/black\と_8.png',
'./open_dataset/black\れ_8.png',
'./open_dataset/black\言_8.png',
'./open_dataset/black\自_8.png',
'./open_dataset/black\か_8.png',
'./open_dataset/black\ち_8.png',
'./open_dataset/black\ら_8.png',
'./open_dataset/black\私_8.png',
'./open_dataset/black\ず_8.png',
'./open_dataset/black\を_8.png',
'./open_dataset/black\そ_8.png',
'./open_dataset/black\ル_8.png',
'./open_dataset/black\っ_8.png',
'./open_dataset/black\事_8.png',
'./open_dataset/black\は_8.png',
'./open_dataset/black\ば_8.png',
'./open_dataset/black\で_8.png',
'./open_dataset/black\ン_8.png',
'./open_dataset/black\生_8.png',
'./open_dataset/black\ろ_8.png',
'./open_dataset/black\く_8.png',
'./open_dataset/black\本_8.png',
'./open_dataset/black\り_8.png',
'./open_dataset/black\的_8.png',
'./open_dataset/black\一_8.png',
'./open_dataset/black\思_8.png',
'./open_dataset/black\前_8.png',
'./open_dataset/black\ね_8.png',
'./open_dataset/black\き_8.png',
'./open_dataset/black\も_8.png',
'./open_dataset/black\者_8.png',
'./open_dataset/black\上_8.png',
'./open_dataset/black\シ_8.png',
'./open_dataset/black\け_8.png',
'./open_dataset/black\リ_8.png',
'./open_dataset/black\あ_8.png',
'./open_dataset/black\手_8.png',
'./open_dataset/black\て_8.png',
'./open_dataset/black\ド_8.png',
'./open_dataset/black\た_8.png',
'./open_dataset/black\ロ_8.png',
'./open_dataset/black\お_8.png',
'./open_dataset/black\国_8.png',
'./open_dataset/black\年_8.png',
'./open_dataset/black\つ_8.png',
'./open_dataset/black\行_8.png',
'./open_dataset/black\す_8.png',
'./open_dataset/black\ん_8.png',
'./open_dataset/black\さ_8.png',
'./open_dataset/black\時_8.png',
'./open_dataset/black\だ_8.png',
'./open_dataset/black\学_8.png',
'./open_dataset/black\ラ_8.png',
'./open_dataset/black\人_8.png',
'./open_dataset/black\い_8.png',
'./open_dataset/black\ー_8.png',
'./open_dataset/black\ア_8.png',

'./open_dataset/black\ク_8.png',
'./open_dataset/black\日_8.png',
'./open_dataset/black\わ_8.png',
'./open_dataset/black\見_8.png',
'./open_dataset/black\レ_8.png',
'./open_dataset/black\に_8.png',
'./open_dataset/black\ど_8.png',
'./open_dataset/black\ほ_8.png',
'./open_dataset/black\せ_8.png',
'./open_dataset/black\合_8.png',
'./open_dataset/black\子_8.png',
'./open_dataset/black\の_8.png',
'./open_dataset/black\二_8.png',
'./open_dataset/black\イ_8.png',
'./open_dataset/black\よ_8.png',
'./open_dataset/black\ト_8.png',
'./open_dataset/black\ょ_8.png',
'./open_dataset/black\入_8.png',
'./open_dataset/black\や_8.png',
'./open_dataset/black\ッ_8.png',
'./open_dataset/black\み_8.png',
'./open_dataset/black\場_8.png',
'./open_dataset/black\分_8.png',
'./open_dataset/black\中_8.png',
'./open_dataset/black\気_8.png',
'./open_dataset/black\ー_9.png',
'./open_dataset/black\国_9.png',
'./open_dataset/black\手_9.png',
'./open_dataset/black\事_9.png',
'./open_dataset/black\な_9.png',
'./open_dataset/black\間_9.png',
'./open_dataset/black\上_9.png',
'./open_dataset/black\大_9.png',
'./open_dataset/black\し_9.png',
'./open_dataset/black\ス_9.png',
'./open_dataset/black\こ_9.png',
'./open_dataset/black\じ_9.png',
'./open_dataset/black\私_9.png',
'./open_dataset/black\で_9.png',
'./open_dataset/black\を_9.png',
'./open_dataset/black\二_9.png',
'./open_dataset/black\す_9.png',
'./open_dataset/black\出_9.png',
'./open_dataset/black\カ_9.png',
'./open_dataset/black\は_9.png',
'./open_dataset/black\者_9.png',
'./open_dataset/black\つ_9.png',
'./open_dataset/black\と_9.png',
'./open_dataset/black\も_9.png',
'./open_dataset/black\言_9.png',
'./open_dataset/black\自_9.png',
'./open_dataset/black\っ_9.png',
'./open_dataset/black\ち_9.png',
'./open_dataset/black\ら_9.png',
'./open_dataset/black\レ_9.png',
'./open_dataset/black\ず_9.png',
'./open_dataset/black\か_9.png',
'./open_dataset/black\そ_9.png',
'./open_dataset/black\ル_9.png',
'./open_dataset/black\う_9.png',
'./open_dataset/black\方_9.png',
'./open_dataset/black\が_9.png',
'./open_dataset/black\学_9.png',
'./open_dataset/black\よ_9.png',
'./open_dataset/black\わ_9.png',
'./open_dataset/black\あ_9.png',
'./open_dataset/black\ば_9.png',
'./open_dataset/black\思_9.png',
'./open_dataset/black\た_9.png',
'./open_dataset/black\る_9.png',
'./open_dataset/black\ほ_9.png',
'./open_dataset/black\生_9.png',
'./open_dataset/black\り_9.png',
'./open_dataset/black\イ_9.png',
'./open_dataset/black\子_9.png',
'./open_dataset/black\て_9.png',
'./open_dataset/black\中_9.png',
'./open_dataset/black\ど_9.png',
'./open_dataset/black\に_9.png',
'./open_dataset/black\だ_9.png',
'./open_dataset/black\本_9.png',
'./open_dataset/black\ア_9.png',
'./open_dataset/black\く_9.png',
'./open_dataset/black\せ_9.png',
'./open_dataset/black\き_9.png',
'./open_dataset/black\ょ_9.png',
'./open_dataset/black\時_9.png',
'./open_dataset/black\ま_9.png',
'./open_dataset/black\ロ_9.png',
'./open_dataset/black\え_9.png',
'./open_dataset/black\み_9.png',
'./open_dataset/black\ん_9.png',
'./open_dataset/black\シ_9.png',
'./open_dataset/black\さ_9.png',
'./open_dataset/black\お_9.png',
'./open_dataset/black\い_9.png',
'./open_dataset/black\見_9.png',
'./open_dataset/black\前_9.png',
'./open_dataset/black\人_9.png',
'./open_dataset/black\日_9.png',

'./open_dataset/black\ラ_9.png',
'./open_dataset/black\一_9.png',
'./open_dataset/black\タ_9.png',
'./open_dataset/black\ン_9.png',
'./open_dataset/black\ド_9.png',
'./open_dataset/black\年_9.png',
'./open_dataset/black\入_9.png',
'./open_dataset/black\ト_9.png',
'./open_dataset/black\め_9.png',
'./open_dataset/black\ッ_9.png',
'./open_dataset/black\リ_9.png',
'./open_dataset/black\れ_9.png',
'./open_dataset/black\ね_9.png',
'./open_dataset/black\場_9.png',
'./open_dataset/black\け_9.png',
'./open_dataset/black\気_9.png',
'./open_dataset/black\の_9.png',
'./open_dataset/black\ク_9.png',
'./open_dataset/black\的_9.png',
'./open_dataset/black\会_9.png',
'./open_dataset/black\合_9.png',
'./open_dataset/black\行_9.png',
'./open_dataset/black\ろ_9.png',
'./open_dataset/black\分_9.png',
'./open_dataset/black\や_9.png',
'./open_dataset/black\ず_10.png',
'./open_dataset/black\年_10.png',
'./open_dataset/black\せ_10.png',
'./open_dataset/black\わ_10.png',
'./open_dataset/black\ち_10.png',
'./open_dataset/black\ま_10.png',
'./open_dataset/black\リ_10.png',
'./open_dataset/black\ょ_10.png',
'./open_dataset/black\し_10.png',
'./open_dataset/black\は_10.png',
'./open_dataset/black\方_10.png',
'./open_dataset/black\っ_10.png',
'./open_dataset/black\日_10.png',
'./open_dataset/black\タ_10.png',
'./open_dataset/black\で_10.png',
'./open_dataset/black\ろ_10.png',
'./open_dataset/black\く_10.png',
'./open_dataset/black\生_10.png',
'./open_dataset/black\な_10.png',
'./open_dataset/black\か_10.png',
'./open_dataset/black\会_10.png',
'./open_dataset/black\も_10.png',
'./open_dataset/black\本_10.png',
'./open_dataset/black\ロ_10.png',
'./open_dataset/black\が_10.png',
'./open_dataset/black\シ_10.png',
'./open_dataset/black\人_10.png',
'./open_dataset/black\と_10.png',
'./open_dataset/black\ラ_10.png',
'./open_dataset/black\よ_10.png',
'./open_dataset/black\時_10.png',
'./open_dataset/black\を_10.png',
'./open_dataset/black\ら_10.png',
'./open_dataset/black\だ_10.png',
'./open_dataset/black\子_10.png',
'./open_dataset/black\す_10.png',
'./open_dataset/black\ト_10.png',
'./open_dataset/black\に_10.png',
'./open_dataset/black\う_10.png',
'./open_dataset/black\み_10.png',
'./open_dataset/black\イ_10.png',
'./open_dataset/black\る_10.png',
'./open_dataset/black\え_10.png',
'./open_dataset/black\こ_10.png',
'./open_dataset/black\言_10.png',
'./open_dataset/black\分_10.png',
'./open_dataset/black\て_10.png',
'./open_dataset/black\レ_10.png',
'./open_dataset/black\上_10.png',
'./open_dataset/black\そ_10.png',
'./open_dataset/black\一_10.png',
'./open_dataset/black\気_10.png',
'./open_dataset/black\ド_10.png',
'./open_dataset/black\手_10.png',
'./open_dataset/black\大_10.png',
'./open_dataset/black\さ_10.png',
'./open_dataset/black\見_10.png',
'./open_dataset/black\前_10.png',
'./open_dataset/black\れ_10.png',
'./open_dataset/black\あ_10.png',
'./open_dataset/black\カ_10.png',
'./open_dataset/black\き_10.png',
'./open_dataset/black\自_10.png',
'./open_dataset/black\り_10.png',
'./open_dataset/black\場_10.png',
'./open_dataset/black\ル_10.png',
'./open_dataset/black\た_10.png',
'./open_dataset/black\ン_10.png',
'./open_dataset/black\合_10.png',
'./open_dataset/black\じ_10.png',
'./open_dataset/black\ん_10.png',
'./open_dataset/black\め_10.png',
'./open_dataset/black\ー_10.png',
'./open_dataset/black\事_10.png',
'./open_dataset/black\中_10.png',

'./open_dataset/black\い_10.png',
'./open_dataset/black\国_10.png',
'./open_dataset/black\ど_10.png',
'./open_dataset/black\出_10.png',
'./open_dataset/black\学_10.png',
'./open_dataset/black\ほ_10.png',
'./open_dataset/black\け_10.png',
'./open_dataset/black\間_10.png',
'./open_dataset/black\つ_10.png',
'./open_dataset/black\ク_10.png',
'./open_dataset/black\の_10.png',
'./open_dataset/black\行_10.png',
'./open_dataset/black\ス_10.png',
'./open_dataset/black\ア_10.png',
'./open_dataset/black\者_10.png',
'./open_dataset/black\ば_10.png',
'./open_dataset/black\私_10.png',
'./open_dataset/black\や_10.png',
'./open_dataset/black\二_10.png',
'./open_dataset/black\的_10.png',
'./open_dataset/black\入_10.png',
'./open_dataset/black\ッ_10.png',
'./open_dataset/black\お_10.png',
'./open_dataset/black\思_10.png',
'./open_dataset/black\ね_10.png',
'./open_dataset/black\ト_11.png',
'./open_dataset/black\を_11.png',
'./open_dataset/black\子_11.png',
'./open_dataset/black\ほ_11.png',
'./open_dataset/black\で_11.png',
'./open_dataset/black\間_11.png',
'./open_dataset/black\な_11.png',
'./open_dataset/black\シ_11.png',
'./open_dataset/black\き_11.png',
'./open_dataset/black\自_11.png',
'./open_dataset/black\ロ_11.png',
'./open_dataset/black\ル_11.png',
'./open_dataset/black\り_11.png',
'./open_dataset/black\ッ_11.png',
'./open_dataset/black\前_11.png',
'./open_dataset/black\し_11.png',
'./open_dataset/black\か_11.png',
'./open_dataset/black\国_11.png',
'./open_dataset/black\れ_11.png',
'./open_dataset/black\じ_11.png',
'./open_dataset/black\カ_11.png',
'./open_dataset/black\は_11.png',
'./open_dataset/black\二_11.png',
'./open_dataset/black\ど_11.png',
'./open_dataset/black\と_11.png',
'./open_dataset/black\ま_11.png',
'./open_dataset/black\時_11.png',
'./open_dataset/black\言_11.png',
'./open_dataset/black\う_11.png',
'./open_dataset/black\や_11.png',
'./open_dataset/black\こ_11.png',
'./open_dataset/black\上_11.png',
'./open_dataset/black\っ_11.png',
'./open_dataset/black\ー_11.png',
'./open_dataset/black\せ_11.png',
'./open_dataset/black\す_11.png',
'./open_dataset/black\者_11.png',
'./open_dataset/black\た_11.png',
'./open_dataset/black\さ_11.png',
'./open_dataset/black\に_11.png',
'./open_dataset/black\ア_11.png',
'./open_dataset/black\入_11.png',
'./open_dataset/black\く_11.png',
'./open_dataset/black\一_11.png',
'./open_dataset/black\大_11.png',
'./open_dataset/black\ん_11.png',
'./open_dataset/black\中_11.png',
'./open_dataset/black\あ_11.png',
'./open_dataset/black\ス_11.png',
'./open_dataset/black\行_11.png',
'./open_dataset/black\気_11.png',
'./open_dataset/black\ン_11.png',
'./open_dataset/black\ら_11.png',
'./open_dataset/black\ね_11.png',
'./open_dataset/black\手_11.png',
'./open_dataset/black\ょ_11.png',
'./open_dataset/black\人_11.png',
'./open_dataset/black\年_11.png',
'./open_dataset/black\だ_11.png',
'./open_dataset/black\会_11.png',
'./open_dataset/black\が_11.png',
'./open_dataset/black\私_11.png',
'./open_dataset/black\る_11.png',
'./open_dataset/black\ば_11.png',
'./open_dataset/black\タ_11.png',
'./open_dataset/black\レ_11.png',
'./open_dataset/black\ず_11.png',
'./open_dataset/black\ラ_11.png',
'./open_dataset/black\ド_11.png',
'./open_dataset/black\出_11.png',
'./open_dataset/black\学_11.png',
'./open_dataset/black\イ_11.png',
'./open_dataset/black\め_11.png',
'./open_dataset/black\わ_11.png',
'./open_dataset/black\え_11.png',

'./open_dataset/black\よ_11.png',
'./open_dataset/black\合_11.png',
'./open_dataset/black\お_11.png',
'./open_dataset/black\て_11.png',
'./open_dataset/black\事_11.png',
'./open_dataset/black\リ_11.png',
'./open_dataset/black\け_11.png',
'./open_dataset/black\ク_11.png',
'./open_dataset/black\い_11.png',
'./open_dataset/black\そ_11.png',
'./open_dataset/black\方_11.png',
'./open_dataset/black\本_11.png',
'./open_dataset/black\も_11.png',
'./open_dataset/black\日_11.png',
'./open_dataset/black\思_11.png',
'./open_dataset/black\の_11.png',
'./open_dataset/black\場_11.png',
'./open_dataset/black\み_11.png',
'./open_dataset/black\つ_11.png',
'./open_dataset/black\ち_11.png',
'./open_dataset/black\見_11.png',
'./open_dataset/black\的_11.png',
'./open_dataset/black\ろ_11.png',
'./open_dataset/black\分_11.png',
'./open_dataset/black\生_11.png',
'./open_dataset/black\が_12.png',
'./open_dataset/black\行_12.png',
'./open_dataset/black\出_12.png',
'./open_dataset/black\な_12.png',
'./open_dataset/black\間_12.png',
'./open_dataset/black\れ_12.png',
'./open_dataset/black\さ_12.png',
'./open_dataset/black\会_12.png',
'./open_dataset/black\気_12.png',
'./open_dataset/black\国_12.png',
'./open_dataset/black\で_12.png',
'./open_dataset/black\手_12.png',
'./open_dataset/black\合_12.png',
'./open_dataset/black\じ_12.png',
'./open_dataset/black\し_12.png',
'./open_dataset/black\え_12.png',
'./open_dataset/black\て_12.png',
'./open_dataset/black\タ_12.png',
'./open_dataset/black\あ_12.png',
'./open_dataset/black\年_12.png',
'./open_dataset/black\よ_12.png',
'./open_dataset/black\言_12.png',
'./open_dataset/black\を_12.png',
'./open_dataset/black\も_12.png',
'./open_dataset/black\レ_12.png',
'./open_dataset/black\り_12.png',
'./open_dataset/black\思_12.png',
'./open_dataset/black\っ_12.png',
'./open_dataset/black\学_12.png',
'./open_dataset/black\ル_12.png',
'./open_dataset/black\に_12.png',
'./open_dataset/black\一_12.png',
'./open_dataset/black\こ_12.png',
'./open_dataset/black\ト_12.png',
'./open_dataset/black\時_12.png',
'./open_dataset/black\前_12.png',
'./open_dataset/black\人_12.png',
'./open_dataset/black\ロ_12.png',
'./open_dataset/black\イ_13.png',
'./open_dataset/black\シ_13.png',
'./open_dataset/black\し_13.png',
'./open_dataset/black\は_13.png',
'./open_dataset/black\子_13.png',
'./open_dataset/black\っ_13.png',
'./open_dataset/black\ろ_13.png',
'./open_dataset/black\国_13.png',
'./open_dataset/black\で_13.png',
'./open_dataset/black\行_13.png',
'./open_dataset/black\さ_13.png',
'./open_dataset/black\と_13.png',
'./open_dataset/black\す_13.png',
'./open_dataset/black\ク_13.png',
'./open_dataset/black\本_13.png',
'./open_dataset/black\を_13.png',
'./open_dataset/black\わ_13.png',
'./open_dataset/black\も_13.png',
'./open_dataset/black\ド_13.png',
'./open_dataset/black\自_13.png',
'./open_dataset/black\が_13.png',
'./open_dataset/black\ほ_13.png',
'./open_dataset/black\く_13.png',
'./open_dataset/black\お_13.png',
'./open_dataset/black\レ_13.png',
'./open_dataset/black\か_13.png',
'./open_dataset/black\言_13.png',
'./open_dataset/black\る_13.png',
'./open_dataset/black\年_13.png',
'./open_dataset/black\け_13.png',
'./open_dataset/black\間_13.png',
'./open_dataset/black\う_13.png',
'./open_dataset/black\こ_13.png',
'./open_dataset/black\ん_13.png',
'./open_dataset/black\事_13.png',
'./open_dataset/black\中_13.png',
'./open_dataset/black\前_13.png',

'./open_dataset/black\り_13.png',
'./open_dataset/black\ル_13.png',
'./open_dataset/black\時_13.png',
'./open_dataset/black\た_13.png',
'./open_dataset/black\な_13.png',
'./open_dataset/black\入_13.png',
'./open_dataset/black\ラ_13.png',
'./open_dataset/black\ら_13.png',
'./open_dataset/black\ト_13.png',
'./open_dataset/black\方_13.png',
'./open_dataset/black\て_13.png',
'./open_dataset/black\生_13.png',
'./open_dataset/black\つ_13.png',
'./open_dataset/black\に_13.png',
'./open_dataset/black\だ_13.png',
'./open_dataset/black\分_13.png',
'./open_dataset/black\ッ_13.png',
'./open_dataset/black\あ_13.png',
'./open_dataset/black\や_13.png',
'./open_dataset/black\ー_13.png',
'./open_dataset/black\気_13.png',
'./open_dataset/black\上_13.png',
'./open_dataset/black\ま_13.png',
'./open_dataset/black\出_13.png',
'./open_dataset/black\人_13.png',
'./open_dataset/black\二_13.png',
'./open_dataset/black\そ_13.png',
'./open_dataset/black\よ_13.png',
'./open_dataset/black\ど_13.png',
'./open_dataset/black\ね_13.png',
'./open_dataset/black\き_13.png',
'./open_dataset/black\ロ_13.png',
'./open_dataset/black\ア_13.png',
'./open_dataset/black\め_13.png',
'./open_dataset/black\い_13.png',
'./open_dataset/black\ン_13.png',
'./open_dataset/black\見_13.png',
'./open_dataset/black\的_13.png',
'./open_dataset/black\日_13.png',
'./open_dataset/black\ち_13.png',
'./open_dataset/black\者_13.png',
'./open_dataset/black\学_13.png',
'./open_dataset/black\れ_13.png',
'./open_dataset/black\一_13.png',
'./open_dataset/black\私_13.png',
'./open_dataset/black\せ_13.png',
'./open_dataset/black\タ_13.png',
'./open_dataset/black\日_14.png',
'./open_dataset/black\そ_14.png',
'./open_dataset/black\自_14.png',
'./open_dataset/black\で_14.png',
'./open_dataset/black\れ_14.png',
'./open_dataset/black\ッ_14.png',
'./open_dataset/black\さ_14.png',
'./open_dataset/black\時_14.png',
'./open_dataset/black\を_14.png',
'./open_dataset/black\ま_14.png',
'./open_dataset/black\く_14.png',
'./open_dataset/black\子_14.png',
'./open_dataset/black\す_14.png',
'./open_dataset/black\学_14.png',
'./open_dataset/black\ト_14.png',
'./open_dataset/black\に_14.png',
'./open_dataset/black\っ_14.png',
'./open_dataset/black\イ_14.png',
'./open_dataset/black\ろ_14.png',
'./open_dataset/black\し_14.png',
'./open_dataset/black\ど_14.png',
'./open_dataset/black\ら_14.png',
'./open_dataset/black\言_14.png',
'./open_dataset/black\じ_14.png',
'./open_dataset/black\て_14.png',
'./open_dataset/black\ロ_14.png',
'./open_dataset/black\方_14.png',
'./open_dataset/black\ん_14.png',
'./open_dataset/black\お_14.png',
'./open_dataset/black\シ_14.png',
'./open_dataset/black\タ_14.png',
'./open_dataset/black\国_14.png',
'./open_dataset/black\も_14.png',
'./open_dataset/black\ね_14.png',
'./open_dataset/black\気_14.png',
'./open_dataset/black\本_14.png',
'./open_dataset/black\り_14.png',
'./open_dataset/black\や_14.png',
'./open_dataset/black\た_14.png',
'./open_dataset/black\ば_14.png',
'./open_dataset/black\ス_14.png',
'./open_dataset/black\間_14.png',
'./open_dataset/black\ち_14.png',
'./open_dataset/black\大_14.png',
'./open_dataset/black\リ_14.png',
'./open_dataset/black\ょ_14.png',
'./open_dataset/black\せ_15.png',
'./open_dataset/black\事_15.png',
'./open_dataset/black\な_15.png',
'./open_dataset/black\見_15.png',
'./open_dataset/black\ー_15.png',
'./open_dataset/black\と_15.png',
'./open_dataset/black\か_15.png',

'./open_dataset/black\ラ_15.png',
'./open_dataset/black\年_15.png',
'./open_dataset/black\は_15.png',
'./open_dataset/black\つ_15.png',
'./open_dataset/black\う_15.png',
'./open_dataset/black\手_15.png',
'./open_dataset/black\ク_15.png',
'./open_dataset/black\る_15.png',
'./open_dataset/black\会_15.png',
'./open_dataset/black\こ_15.png',
'./open_dataset/black\人_15.png',
'./open_dataset/black\学_15.png',
'./open_dataset/black\レ_15.png',
'./open_dataset/black\入_15.png',
'./open_dataset/black\が_15.png',
'./open_dataset/black\場_15.png',
'./open_dataset/black\私_15.png',
'./open_dataset/black\中_15.png',
'./open_dataset/black\で_15.png',
'./open_dataset/black\お_15.png',
'./open_dataset/black\し_15.png',
'./open_dataset/black\ロ_15.png',
'./open_dataset/black\そ_15.png',
'./open_dataset/black\日_15.png',
'./open_dataset/black\間_15.png',
'./open_dataset/black\よ_15.png',
'./open_dataset/black\だ_15.png',
'./open_dataset/black\分_15.png',
'./open_dataset/black\一_15.png',
'./open_dataset/black\あ_15.png',
'./open_dataset/black\ア_15.png',
'./open_dataset/black\ッ_15.png',
'./open_dataset/black\思_15.png',
'./open_dataset/black\り_15.png',
'./open_dataset/black\や_15.png',
'./open_dataset/black\っ_15.png',
'./open_dataset/black\的_15.png',
'./open_dataset/black\国_15.png',
'./open_dataset/black\て_15.png',
'./open_dataset/black\行_15.png',
'./open_dataset/black\た_15.png',
'./open_dataset/black\ス_15.png',
'./open_dataset/black\く_15.png',
'./open_dataset/black\大_15.png',
'./open_dataset/black\シ_15.png',
'./open_dataset/black\を_15.png',
'./open_dataset/black\れ_15.png',
'./open_dataset/black\上_15.png',
'./open_dataset/black\ら_15.png',
'./open_dataset/black\出_15.png',
'./open_dataset/black\気_15.png',
'./open_dataset/black\す_15.png',
'./open_dataset/black\二_15.png',
'./open_dataset/black\め_15.png',
'./open_dataset/black\に_15.png',
'./open_dataset/black\き_15.png',
'./open_dataset/black\方_15.png',
'./open_dataset/black\ず_15.png',
'./open_dataset/black\ん_15.png',
'./open_dataset/black\イ_15.png',
'./open_dataset/black\け_15.png',
'./open_dataset/black\ド_15.png',
'./open_dataset/black\い_15.png',
'./open_dataset/black\ょ_15.png',
'./open_dataset/black\自_15.png',
'./open_dataset/black\さ_15.png',
'./open_dataset/black\ち_15.png',
'./open_dataset/black\ね_15.png',
'./open_dataset/black\合_15.png',
'./open_dataset/black\時_15.png',
'./open_dataset/black\も_15.png',
'./open_dataset/black\タ_15.png',
'./open_dataset/black\カ_15.png',
'./open_dataset/black\じ_15.png',
'./open_dataset/black\ま_15.png',
'./open_dataset/black\ば_15.png',
'./open_dataset/black\ン_15.png',
'./open_dataset/black\ル_15.png',
'./open_dataset/black\ト_15.png',
'./open_dataset/black\リ_15.png',
'./open_dataset/black\ど_15.png',
'./open_dataset/black\子_15.png',
'./open_dataset/black\え_15.png',
'./open_dataset/black\前_15.png',
'./open_dataset/black\本_15.png',
'./open_dataset/black\ろ_15.png',
'./open_dataset/black\の_15.png',
'./open_dataset/black\者_15.png',
'./open_dataset/black\ほ_15.png',
'./open_dataset/black\み_15.png',
'./open_dataset/black\生_15.png',
'./open_dataset/black\わ_15.png',
'./open_dataset/black\言_15.png',
'./open_dataset/black\言_16.png',
'./open_dataset/black\入_16.png',
'./open_dataset/black\で_16.png',
'./open_dataset/black\ず_16.png',
'./open_dataset/black\手_16.png',
'./open_dataset/black\そ_16.png',
'./open_dataset/black\場_16.png',

'./open_dataset/black\行_16.png',
'./open_dataset/black\じ_16.png',
'./open_dataset/black\ち_16.png',
'./open_dataset/black\生_16.png',
'./open_dataset/black\ね_16.png',
'./open_dataset/black\本_16.png',
'./open_dataset/black\中_16.png',
'./open_dataset/black\ば_16.png',
'./open_dataset/black\ら_16.png',
'./open_dataset/black\み_16.png',
'./open_dataset/black\こ_16.png',
'./open_dataset/black\見_16.png',
'./open_dataset/black\し_16.png',
'./open_dataset/black\が_16.png',
'./open_dataset/black\ほ_16.png',
'./open_dataset/black\う_16.png',
'./open_dataset/black\ク_16.png',
'./open_dataset/black\る_16.png',
'./open_dataset/black\カ_16.png',
'./open_dataset/black\わ_16.png',
'./open_dataset/black\と_16.png',
'./open_dataset/black\れ_16.png',
'./open_dataset/black\シ_16.png',
'./open_dataset/black\国_16.png',
'./open_dataset/black\か_16.png',
'./open_dataset/black\ん_16.png',
'./open_dataset/black\な_16.png',
'./open_dataset/black\年_16.png',
'./open_dataset/black\せ_16.png',
'./open_dataset/black\た_16.png',
'./open_dataset/black\ょ_16.png',
'./open_dataset/black\的_16.png',
'./open_dataset/black\す_16.png',
'./open_dataset/black\よ_16.png',
'./open_dataset/black\方_16.png',
'./open_dataset/black\上_16.png',
'./open_dataset/black\時_16.png',
'./open_dataset/black\て_16.png',
'./open_dataset/black\事_16.png',
'./open_dataset/black\や_16.png',
'./open_dataset/black\あ_16.png',
'./open_dataset/black\ル_16.png',
'./open_dataset/black\だ_16.png',
'./open_dataset/black\イ_17.png',
'./open_dataset/black\き_17.png',
'./open_dataset/black\本_17.png',
'./open_dataset/black\い_17.png',
'./open_dataset/black\そ_17.png',
'./open_dataset/black\私_17.png',
'./open_dataset/black\一_17.png',
'./open_dataset/black\者_17.png',
'./open_dataset/black\思_17.png',
'./open_dataset/black\の_17.png',
'./open_dataset/black\時_17.png',
'./open_dataset/black\ス_17.png',
'./open_dataset/black\ま_17.png',
'./open_dataset/black\め_17.png',
'./open_dataset/black\ょ_17.png',
'./open_dataset/black\場_17.png',
'./open_dataset/black\わ_17.png',
'./open_dataset/black\年_17.png',
'./open_dataset/black\ッ_17.png',
'./open_dataset/black\ほ_17.png',
'./open_dataset/black\ド_17.png',
'./open_dataset/black\ば_17.png',
'./open_dataset/black\ラ_17.png',
'./open_dataset/black\る_18.png',
'./open_dataset/black\思_18.png',
'./open_dataset/black\か_18.png',
'./open_dataset/black\ば_18.png',
'./open_dataset/black\上_18.png',
'./open_dataset/black\な_18.png',
'./open_dataset/black\自_18.png',
'./open_dataset/black\よ_18.png',
'./open_dataset/black\と_18.png',
'./open_dataset/black\う_18.png',
'./open_dataset/black\ト_18.png',
'./open_dataset/black\く_18.png',
'./open_dataset/black\分_18.png',
'./open_dataset/black\前_18.png',
'./open_dataset/black\で_18.png',
'./open_dataset/black\っ_18.png',
'./open_dataset/black\ね_18.png',
'./open_dataset/black\ま_18.png',
'./open_dataset/black\年_18.png',
'./open_dataset/black\入_18.png',
'./open_dataset/black\が_18.png',
'./open_dataset/black\手_18.png',
'./open_dataset/black\わ_18.png',
'./open_dataset/black\て_18.png',
'./open_dataset/black\こ_18.png',
'./open_dataset/black\事_18.png',
'./open_dataset/black\時_18.png',
'./open_dataset/black\れ_18.png',
'./open_dataset/black\ル_18.png',
'./open_dataset/black\あ_18.png',
'./open_dataset/black\二_18.png',
'./open_dataset/black\す_18.png',
'./open_dataset/black\さ_18.png',
'./open_dataset/black\ろ_18.png',

'./open_dataset/black\も_18.png',
'./open_dataset/black\国_18.png',
'./open_dataset/black\を_18.png',
'./open_dataset/black\レ_18.png',
'./open_dataset/black\ン_18.png',
'./open_dataset/black\に_18.png',
'./open_dataset/black\生_18.png',
'./open_dataset/black\場_18.png',
'./open_dataset/black\ん_18.png',
'./open_dataset/black\め_18.png',
'./open_dataset/black\リ_18.png',
'./open_dataset/black\ー_18.png',
'./open_dataset/black\的_18.png',
'./open_dataset/black\だ_18.png',
'./open_dataset/black\ず_18.png',
'./open_dataset/black\せ_18.png',
'./open_dataset/black\間_18.png',
'./open_dataset/black\ょ_18.png',
'./open_dataset/black\み_18.png',
'./open_dataset/black\ラ_18.png',
'./open_dataset/black\大_18.png',
'./open_dataset/black\け_18.png',
'./open_dataset/black\ク_18.png',
'./open_dataset/black\ロ_18.png',
'./open_dataset/black\し_18.png',
'./open_dataset/black\ら_18.png',
'./open_dataset/black\気_18.png',
'./open_dataset/black\き_18.png',
'./open_dataset/black\見_18.png',
'./open_dataset/black\は_18.png',
'./open_dataset/black\カ_18.png',
'./open_dataset/black\ス_18.png',
'./open_dataset/black\た_18.png',
'./open_dataset/black\つ_18.png',
'./open_dataset/black\会_18.png',
'./open_dataset/black\出_18.png',
'./open_dataset/black\り_18.png',
'./open_dataset/black\お_18.png',
'./open_dataset/black\そ_18.png',
'./open_dataset/black\子_18.png',
'./open_dataset/black\本_18.png',
'./open_dataset/black\い_18.png',
'./open_dataset/black\シ_18.png',
'./open_dataset/black\人_18.png',
'./open_dataset/black\日_18.png',
'./open_dataset/black\学_18.png',
'./open_dataset/black\ほ_18.png',
'./open_dataset/black\え_18.png',
'./open_dataset/black\方_18.png',
'./open_dataset/black\ど_18.png',
'./open_dataset/black\ア_18.png',
'./open_dataset/black\の_18.png',
'./open_dataset/black\ッ_18.png',
'./open_dataset/black\や_18.png',
'./open_dataset/black\行_18.png',
'./open_dataset/black\私_18.png',
'./open_dataset/black\一_18.png',
'./open_dataset/black\イ_18.png',
'./open_dataset/black\じ_18.png',
'./open_dataset/black\言_18.png',
'./open_dataset/black\タ_18.png',
'./open_dataset/black\ち_18.png',
'./open_dataset/black\者_18.png',
'./open_dataset/black\中_18.png',
'./open_dataset/black\合_18.png',
'./open_dataset/black\ド_18.png',
'./open_dataset/black\出_19.png',
'./open_dataset/black\日_19.png',
'./open_dataset/black\で_19.png',
'./open_dataset/black\さ_19.png',
'./open_dataset/black\を_19.png',
'./open_dataset/black\事_19.png',
'./open_dataset/black\分_19.png',
'./open_dataset/black\な_19.png',
'./open_dataset/black\二_19.png',
'./open_dataset/black\も_19.png',
'./open_dataset/black\ン_19.png',
'./open_dataset/black\カ_19.png',
'./open_dataset/black\入_19.png',
'./open_dataset/black\シ_19.png',
'./open_dataset/black\る_19.png',
'./open_dataset/black\タ_19.png',
'./open_dataset/black\気_19.png',
'./open_dataset/black\ラ_19.png',
'./open_dataset/black\し_19.png',
'./open_dataset/black\ど_19.png',
'./open_dataset/black\て_19.png',
'./open_dataset/black\ょ_19.png',
'./open_dataset/black\く_19.png',
'./open_dataset/black\ば_19.png',
'./open_dataset/black\リ_19.png',
'./open_dataset/black\そ_19.png',
'./open_dataset/black\が_19.png',
'./open_dataset/black\す_19.png',
'./open_dataset/black\前_19.png',
'./open_dataset/black\こ_19.png',
'./open_dataset/black\的_19.png',
'./open_dataset/black\本_19.png',
'./open_dataset/black\け_19.png',
'./open_dataset/black\ず_19.png',

'./open_dataset/black\か_19.png',
'./open_dataset/black\ま_19.png',
'./open_dataset/black\だ_19.png',
'./open_dataset/black\ち_19.png',
'./open_dataset/black\ク_19.png',
'./open_dataset/black\た_19.png',
'./open_dataset/black\お_19.png',
'./open_dataset/black\り_19.png',
'./open_dataset/black\ろ_19.png',
'./open_dataset/black\間_19.png',
'./open_dataset/black\と_19.png',
'./open_dataset/black\っ_19.png',
'./open_dataset/black\学_19.png',
'./open_dataset/black\思_19.png',
'./open_dataset/black\ら_19.png',
'./open_dataset/black\み_19.png',
'./open_dataset/black\上_19.png',
'./open_dataset/black\は_19.png',
'./open_dataset/black\行_19.png',
'./open_dataset/black\わ_19.png',
'./open_dataset/black\に_19.png',
'./open_dataset/black\ん_19.png',
'./open_dataset/black\自_19.png',
'./open_dataset/black\見_19.png',
'./open_dataset/black\あ_19.png',
'./open_dataset/black\せ_19.png',
'./open_dataset/black\き_19.png',
'./open_dataset/black\ほ_19.png',
'./open_dataset/black\者_19.png',
'./open_dataset/black\れ_19.png',
'./open_dataset/black\人_19.png',
'./open_dataset/black\大_19.png',
'./open_dataset/black\ー_19.png',
'./open_dataset/black\ね_19.png',
'./open_dataset/black\子_19.png',
'./open_dataset/black\レ_19.png',
'./open_dataset/black\え_19.png',
'./open_dataset/black\じ_19.png',
'./open_dataset/black\国_19.png',
'./open_dataset/black\い_19.png',
'./open_dataset/black\よ_19.png',
'./open_dataset/black\方_19.png',
'./open_dataset/black\一_19.png',
'./open_dataset/black\ア_19.png',
'./open_dataset/black\ド_19.png',
'./open_dataset/black\う_19.png',
'./open_dataset/black\会_19.png',
'./open_dataset/black\ト_19.png',
'./open_dataset/black\つ_19.png',
'./open_dataset/black\や_19.png',
'./open_dataset/black\場_19.png',
'./open_dataset/black\め_19.png',
'./open_dataset/black\と_20.png'
]

touch = [

'./open_dataset/black\思_0.png',
'./open_dataset/black\ラ_0.png',
'./open_dataset/black\え_0.png',
'./open_dataset/black\生_0.png',
'./open_dataset/black\事_0.png',
'./open_dataset/black\者_0.png',
'./open_dataset/black\手_0.png',
'./open_dataset/black\会_0.png',
'./open_dataset/black\お_0.png',
'./open_dataset/black\じ_0.png',
'./open_dataset/black\ょ_0.png',
'./open_dataset/black\大_0.png',
'./open_dataset/black\わ_0.png',
'./open_dataset/black\気_0.png',
'./open_dataset/black\の_0.png',
'./open_dataset/black\一_0.png',
'./open_dataset/black\ト_0.png',
'./open_dataset/black\行_0.png',
'./open_dataset/black\ほ_0.png',
'./open_dataset/black\あ_0.png',
'./open_dataset/black\ド_0.png',
'./open_dataset/black\的_1.png',
'./open_dataset/black\お_1.png',
'./open_dataset/black\も_1.png',
'./open_dataset/black\日_1.png',
'./open_dataset/black\シ_1.png',
'./open_dataset/black\せ_1.png',
'./open_dataset/black\ば_1.png',
'./open_dataset/black\く_1.png',
'./open_dataset/black\本_1.png',
'./open_dataset/black\カ_1.png',
'./open_dataset/black\た_1.png',
'./open_dataset/black\て_1.png',
'./open_dataset/black\合_1.png',
'./open_dataset/black\う_1.png',
'./open_dataset/black\分_2.png',
'./open_dataset/black\一_2.png',
'./open_dataset/black\二_2.png',
'./open_dataset/black\ー_2.png',
'./open_dataset/black\け_2.png',
'./open_dataset/black\ド_2.png',
'./open_dataset/black\本_2.png',
'./open_dataset/black\よ_2.png',
'./open_dataset/black\リ_2.png',
'./open_dataset/black\子_2.png',
'./open_dataset/black\イ_2.png',
'./open_dataset/black\え_2.png',
'./open_dataset/black\年_2.png',
'./open_dataset/black\入_2.png',
'./open_dataset/black\い_2.png',
'./open_dataset/black\ン_2.png',
'./open_dataset/black\ょ_2.png',
'./open_dataset/black\お_2.png',
'./open_dataset/black\思_2.png',
'./open_dataset/black\言_2.png',
'./open_dataset/black\や_2.png',
'./open_dataset/black\じ_2.png',
'./open_dataset/black\タ_2.png',
'./open_dataset/black\の_2.png',
'./open_dataset/black\ど_2.png',
'./open_dataset/black\会_2.png',
'./open_dataset/black\め_2.png',
'./open_dataset/black\者_2.png',
'./open_dataset/black\か_2.png',
'./open_dataset/black\手_2.png',
'./open_dataset/black\出_2.png',
'./open_dataset/black\ル_2.png',
'./open_dataset/black\場_2.png',
'./open_dataset/black\前_2.png',
'./open_dataset/black\的_2.png',
'./open_dataset/black\ま_3.png',
'./open_dataset/black\み_3.png',
'./open_dataset/black\シ_3.png',
'./open_dataset/black\し_3.png',
'./open_dataset/black\は_3.png',
'./open_dataset/black\子_3.png',
'./open_dataset/black\っ_3.png',
'./open_dataset/black\イ_3.png',
'./open_dataset/black\国_3.png',
'./open_dataset/black\で_3.png',
'./open_dataset/black\行_3.png',
'./open_dataset/black\け_3.png',
'./open_dataset/black\と_3.png',
'./open_dataset/black\す_3.png',
'./open_dataset/black\中_3.png',
'./open_dataset/black\生_3.png',
'./open_dataset/black\を_3.png',
'./open_dataset/black\一_3.png',
'./open_dataset/black\も_3.png',
'./open_dataset/black\ド_3.png',
'./open_dataset/black\思_3.png',
'./open_dataset/black\が_3.png',
'./open_dataset/black\ほ_3.png',
'./open_dataset/black\だ_3.png',
'./open_dataset/black\め_3.png',
'./open_dataset/black\ラ_3.png',
'./open_dataset/black\さ_3.png',
'./open_dataset/black\間_3.png',
'./open_dataset/black\ッ_3.png',
'./open_dataset/black\つ_3.png',
'./open_dataset/black\ず_3.png',
'./open_dataset/black\ら_3.png',
'./open_dataset/black\く_3.png',
'./open_dataset/black\レ_3.png',
'./open_dataset/black\え_3.png',
'./open_dataset/black\方_3.png',
'./open_dataset/black\あ_3.png',
'./open_dataset/black\場_3.png',
'./open_dataset/black\ト_3.png',
'./open_dataset/black\大_3.png',
'./open_dataset/black\二_3.png',
'./open_dataset/black\な_3.png',
'./open_dataset/black\人_3.png',
'./open_dataset/black\ク_3.png',
'./open_dataset/black\気_4.png',
'./open_dataset/black\お_4.png',
'./open_dataset/black\ん_4.png',
'./open_dataset/black\日_4.png',
'./open_dataset/black\間_4.png',
'./open_dataset/black\分_6.png',
'./open_dataset/black\ー_6.png',
'./open_dataset/black\事_6.png',
'./open_dataset/black\な_6.png',
'./open_dataset/black\れ_6.png',
'./open_dataset/black\あ_6.png',
'./open_dataset/black\ど_6.png',
'./open_dataset/black\ア_6.png',
'./open_dataset/black\た_6.png',
'./open_dataset/black\学_6.png',
'./open_dataset/black\え_6.png',
'./open_dataset/black\つ_6.png',
'./open_dataset/black\ま_6.png',
'./open_dataset/black\方_6.png',
'./open_dataset/black\と_6.png',
'./open_dataset/black\を_6.png',
'./open_dataset/black\レ_6.png',
'./open_dataset/black\的_6.png',
'./open_dataset/black\ス_6.png',
'./open_dataset/black\二_6.png',
'./open_dataset/black\し_6.png',
'./open_dataset/black\言_6.png',
'./open_dataset/black\も_6.png',
'./open_dataset/black\に_6.png',
'./open_dataset/black\生_6.png',
'./open_dataset/black\ト_6.png',
'./open_dataset/black\き_6.png',
'./open_dataset/black\ク_6.png',
'./open_dataset/black\す_6.png',
'./open_dataset/black\く_6.png',
'./open_dataset/black\入_6.png',
'./open_dataset/black\そ_6.png',
'./open_dataset/black\子_6.png',
'./open_dataset/black\こ_6.png',
'./open_dataset/black\私_6.png',
'./open_dataset/black\ち_6.png',
'./open_dataset/black\か_6.png',
'./open_dataset/black\さ_6.png',
'./open_dataset/black\み_6.png',
'./open_dataset/black\出_6.png',
'./open_dataset/black\だ_6.png',
'./open_dataset/black\わ_6.png',
'./open_dataset/black\ん_6.png',
'./open_dataset/black\ね_6.png',
'./open_dataset/black\中_6.png',
'./open_dataset/black\い_6.png',
'./open_dataset/black\気_6.png',
'./open_dataset/black\ン_6.png',
'./open_dataset/black\ろ_6.png',
'./open_dataset/black\前_6.png',
'./open_dataset/black\よ_6.png',
'./open_dataset/black\シ_6.png',
'./open_dataset/black\け_6.png',
'./open_dataset/black\ラ_6.png',
'./open_dataset/black\の_6.png',
'./open_dataset/black\手_6.png',
'./open_dataset/black\お_6.png',
'./open_dataset/black\お_7.png',
'./open_dataset/black\ず_6.png',
'./open_dataset/black\や_6.png',
'./open_dataset/black\場_6.png',
'./open_dataset/black\一_6.png',
'./open_dataset/black\タ_6.png',
'./open_dataset/black\会_6.png',
'./open_dataset/black\ロ_6.png',
'./open_dataset/black\じ_6.png',
'./open_dataset/black\人_6.png',
'./open_dataset/black\ド_6.png',
'./open_dataset/black\ッ_6.png',
'./open_dataset/black\時_6.png',
'./open_dataset/black\ち_7.png',
'./open_dataset/black\ま_7.png',
'./open_dataset/black\日_7.png',
'./open_dataset/black\会_7.png',
'./open_dataset/black\し_7.png',
'./open_dataset/black\は_7.png',
'./open_dataset/black\ず_7.png',
'./open_dataset/black\っ_7.png',
'./open_dataset/black\大_7.png',
'./open_dataset/black\ね_7.png',
'./open_dataset/black\で_7.png',
'./open_dataset/black\時_7.png',
'./open_dataset/black\け_7.png',
'./open_dataset/black\と_7.png',
'./open_dataset/black\す_7.png',
'./open_dataset/black\的_7.png',
'./open_dataset/black\中_7.png',
'./open_dataset/black\を_7.png',
'./open_dataset/black\一_7.png',
'./open_dataset/black\も_7.png',
'./open_dataset/black\カ_7.png',
'./open_dataset/black\行_7.png',
'./open_dataset/black\が_7.png',
'./open_dataset/black\前_7.png',
'./open_dataset/black\だ_7.png',
'./open_dataset/black\や_7.png',
'./open_dataset/black\か_7.png',
'./open_dataset/black\子_7.png',
'./open_dataset/black\る_7.png',
'./open_dataset/black\せ_7.png',
'./open_dataset/black\な_7.png',
'./open_dataset/black\さ_7.png',
'./open_dataset/black\ラ_7.png',
'./open_dataset/black\合_7.png',
'./open_dataset/black\え_7.png',
'./open_dataset/black\き_7.png',
'./open_dataset/black\本_7.png',
'./open_dataset/black\人_7.png',
'./open_dataset/black\生_7.png',
'./open_dataset/black\ょ_7.png',
'./open_dataset/black\上_7.png',
'./open_dataset/black\イ_12.png',
'./open_dataset/black\ん_12.png',
'./open_dataset/black\大_12.png',
'./open_dataset/black\そ_12.png',
'./open_dataset/black\中_12.png',
'./open_dataset/black\は_12.png',
'./open_dataset/black\う_12.png',
'./open_dataset/black\る_12.png',
'./open_dataset/black\場_12.png',
'./open_dataset/black\生_12.png',
'./open_dataset/black\ち_12.png',
'./open_dataset/black\だ_12.png',
'./open_dataset/black\日_12.png',
'./open_dataset/black\二_12.png',
'./open_dataset/black\と_12.png',
'./open_dataset/black\す_12.png',
'./open_dataset/black\ず_12.png',
'./open_dataset/black\く_12.png',
'./open_dataset/black\ッ_12.png',
'./open_dataset/black\シ_12.png',
'./open_dataset/black\か_12.png',
'./open_dataset/black\方_12.png',
'./open_dataset/black\お_12.png',
'./open_dataset/black\た_12.png',
'./open_dataset/black\き_12.png',
'./open_dataset/black\子_12.png',
'./open_dataset/black\自_12.png',
'./open_dataset/black\ー_12.png',
'./open_dataset/black\ろ_12.png',
'./open_dataset/black\ン_12.png',
'./open_dataset/black\ド_12.png',
'./open_dataset/black\ら_12.png',
'./open_dataset/black\わ_12.png',
'./open_dataset/black\分_12.png',
'./open_dataset/black\事_12.png',
'./open_dataset/black\上_12.png',
'./open_dataset/black\見_12.png',
'./open_dataset/black\い_12.png',
'./open_dataset/black\者_12.png',
'./open_dataset/black\ね_12.png',
'./open_dataset/black\リ_12.png',
'./open_dataset/black\ま_12.png',
'./open_dataset/black\ス_12.png',
'./open_dataset/black\け_12.png',
'./open_dataset/black\ほ_12.png',
'./open_dataset/black\め_12.png',
'./open_dataset/black\ア_12.png',
'./open_dataset/black\ク_12.png',
'./open_dataset/black\や_12.png',
'./open_dataset/black\入_12.png',
'./open_dataset/black\ょ_12.png',
'./open_dataset/black\の_12.png',
'./open_dataset/black\ど_12.png',
'./open_dataset/black\カ_12.png',
'./open_dataset/black\思_13.png',
'./open_dataset/black\ラ_12.png',
'./open_dataset/black\せ_12.png',
'./open_dataset/black\私_12.png',
'./open_dataset/black\つ_12.png',
'./open_dataset/black\み_12.png',
'./open_dataset/black\ば_12.png',
'./open_dataset/black\的_12.png',
'./open_dataset/black\本_12.png',
'./open_dataset/black\前_14.png',
'./open_dataset/black\大_13.png',
'./open_dataset/black\ス_13.png',
'./open_dataset/black\ず_13.png',
'./open_dataset/black\カ_13.png',
'./open_dataset/black\の_13.png',
'./open_dataset/black\ば_13.png',
'./open_dataset/black\合_13.png',
'./open_dataset/black\リ_13.png',
'./open_dataset/black\手_13.png',
'./open_dataset/black\場_13.png',
'./open_dataset/black\え_13.png',
'./open_dataset/black\み_13.png',
'./open_dataset/black\ょ_13.png',
'./open_dataset/black\じ_13.png',
'./open_dataset/black\会_13.png',
'./open_dataset/black\せ_14.png',
'./open_dataset/black\事_14.png',
'./open_dataset/black\な_14.png',
'./open_dataset/black\見_14.png',
'./open_dataset/black\ー_14.png',
'./open_dataset/black\と_14.png',
'./open_dataset/black\か_14.png',
'./open_dataset/black\ラ_14.png',
'./open_dataset/black\年_14.png',
'./open_dataset/black\は_14.png',
'./open_dataset/black\つ_14.png',
'./open_dataset/black\う_14.png',
'./open_dataset/black\手_14.png',
'./open_dataset/black\ク_14.png',
'./open_dataset/black\る_14.png',
'./open_dataset/black\会_14.png',
'./open_dataset/black\こ_14.png',
'./open_dataset/black\人_14.png',
'./open_dataset/black\レ_14.png',
'./open_dataset/black\入_14.png',
'./open_dataset/black\が_14.png',
'./open_dataset/black\場_14.png',
'./open_dataset/black\分_14.png',
'./open_dataset/black\わ_14.png',
'./open_dataset/black\ず_14.png',
'./open_dataset/black\だ_14.png',
'./open_dataset/black\よ_14.png',
'./open_dataset/black\え_14.png',
'./open_dataset/black\上_14.png',
'./open_dataset/black\中_14.png',
'./open_dataset/black\い_14.png',
'./open_dataset/black\生_14.png',
'./open_dataset/black\め_14.png',
'./open_dataset/black\あ_14.png',
'./open_dataset/black\け_14.png',
'./open_dataset/black\的_14.png',
'./open_dataset/black\思_14.png',
'./open_dataset/black\ン_14.png',
'./open_dataset/black\み_14.png',
'./open_dataset/black\一_14.png',
'./open_dataset/black\カ_14.png',
'./open_dataset/black\二_14.png',
'./open_dataset/black\き_14.png',
'./open_dataset/black\ル_14.png',
'./open_dataset/black\ア_14.png',
'./open_dataset/black\合_14.png',
'./open_dataset/black\ド_14.png',
'./open_dataset/black\者_14.png',
'./open_dataset/black\の_14.png',
'./open_dataset/black\ほ_14.png',
'./open_dataset/black\私_14.png',
'./open_dataset/black\出_14.png',
'./open_dataset/black\行_14.png',
'./open_dataset/black\ろ_16.png',
'./open_dataset/black\お_16.png',
'./open_dataset/black\ン_16.png',
'./open_dataset/black\く_16.png',
'./open_dataset/black\つ_16.png',
'./open_dataset/black\イ_16.png',
'./open_dataset/black\ー_16.png',
'./open_dataset/black\ラ_16.png',
'./open_dataset/black\レ_16.png',
'./open_dataset/black\は_16.png',
'./open_dataset/black\っ_16.png',
'./open_dataset/black\ド_16.png',
'./open_dataset/black\り_16.png',
'./open_dataset/black\自_16.png',
'./open_dataset/black\を_16.png',
'./open_dataset/black\前_16.png',
'./open_dataset/black\ス_16.png',
'./open_dataset/black\に_16.png',
'./open_dataset/black\さ_16.png',
'./open_dataset/black\日_16.png',
'./open_dataset/black\リ_16.png',
'./open_dataset/black\も_16.png',
'./open_dataset/black\人_16.png',
'./open_dataset/black\ま_16.png',
'./open_dataset/black\者_16.png',
'./open_dataset/black\ア_16.png',
'./open_dataset/black\い_16.png',
'./open_dataset/black\会_16.png',
'./open_dataset/black\え_16.png',
'./open_dataset/black\大_16.png',
'./open_dataset/black\思_16.png',
'./open_dataset/black\一_16.png',
'./open_dataset/black\合_16.png',
'./open_dataset/black\き_16.png',
'./open_dataset/black\ど_16.png',
'./open_dataset/black\ロ_16.png',
'./open_dataset/black\間_16.png',
'./open_dataset/black\け_16.png',
'./open_dataset/black\分_16.png',
'./open_dataset/black\私_16.png',
'./open_dataset/black\の_16.png',
'./open_dataset/black\学_16.png',
'./open_dataset/black\ッ_16.png',
'./open_dataset/black\め_16.png',
'./open_dataset/black\ト_16.png',
'./open_dataset/black\タ_16.png',
'./open_dataset/black\気_16.png',
'./open_dataset/black\出_16.png',
'./open_dataset/black\子_16.png',
'./open_dataset/black\二_16.png',
'./open_dataset/black\が_17.png',
'./open_dataset/black\行_17.png',
'./open_dataset/black\出_17.png',
'./open_dataset/black\な_17.png',
'./open_dataset/black\間_17.png',
'./open_dataset/black\れ_17.png',
'./open_dataset/black\さ_17.png',
'./open_dataset/black\会_17.png',
'./open_dataset/black\気_17.png',
'./open_dataset/black\国_17.png',
'./open_dataset/black\で_17.png',
'./open_dataset/black\手_17.png',
'./open_dataset/black\合_17.png',
'./open_dataset/black\じ_17.png',
'./open_dataset/black\し_17.png',
'./open_dataset/black\え_17.png',
'./open_dataset/black\て_17.png',
'./open_dataset/black\タ_17.png',
'./open_dataset/black\あ_17.png',
'./open_dataset/black\せ_17.png',
'./open_dataset/black\中_17.png',
'./open_dataset/black\だ_17.png',
'./open_dataset/black\カ_17.png',
'./open_dataset/black\こ_17.png',
'./open_dataset/black\ロ_17.png',
'./open_dataset/black\み_17.png',
'./open_dataset/black\前_17.png',
'./open_dataset/black\リ_17.png',
'./open_dataset/black\ー_17.png',
'./open_dataset/black\自_17.png',
'./open_dataset/black\は_17.png',
'./open_dataset/black\う_17.png',
'./open_dataset/black\ら_17.png',
'./open_dataset/black\的_17.png',
'./open_dataset/black\か_17.png',
'./open_dataset/black\レ_17.png',
'./open_dataset/black\や_17.png',
'./open_dataset/black\に_17.png',
'./open_dataset/black\を_17.png',
'./open_dataset/black\ト_17.png',
'./open_dataset/black\ル_17.png',
'./open_dataset/black\る_17.png',
'./open_dataset/black\ン_17.png',
'./open_dataset/black\す_17.png',
'./open_dataset/black\ク_17.png',
'./open_dataset/black\日_17.png',
'./open_dataset/black\と_17.png',
'./open_dataset/black\学_17.png',
'./open_dataset/black\子_17.png',
'./open_dataset/black\く_17.png',
'./open_dataset/black\人_17.png',
'./open_dataset/black\二_17.png',
'./open_dataset/black\ね_17.png',
'./open_dataset/black\方_17.png',
'./open_dataset/black\っ_17.png',
'./open_dataset/black\上_17.png',
'./open_dataset/black\シ_17.png',
'./open_dataset/black\分_17.png',
'./open_dataset/black\も_17.png',
'./open_dataset/black\お_17.png',
'./open_dataset/black\た_17.png',
'./open_dataset/black\入_17.png',
'./open_dataset/black\け_17.png',
'./open_dataset/black\大_17.png',
'./open_dataset/black\言_17.png',
'./open_dataset/black\ど_17.png',
'./open_dataset/black\よ_17.png',
'./open_dataset/black\ア_17.png',
'./open_dataset/black\ち_17.png',
'./open_dataset/black\り_17.png',
'./open_dataset/black\生_17.png',
'./open_dataset/black\見_17.png',
'./open_dataset/black\ず_17.png',
'./open_dataset/black\つ_17.png',
'./open_dataset/black\ろ_17.png',
'./open_dataset/black\ん_17.png',
'./open_dataset/black\事_17.png',
'./open_dataset/black\年_19.png',
'./open_dataset/black\ル_19.png',
'./open_dataset/black\言_19.png',
'./open_dataset/black\ロ_19.png',
'./open_dataset/black\の_19.png',
'./open_dataset/black\イ_19.png',
'./open_dataset/black\ッ_19.png',
'./open_dataset/black\中_19.png',
'./open_dataset/black\合_19.png',
'./open_dataset/black\ス_19.png',
'./open_dataset/black\時_19.png',
'./open_dataset/black\生_19.png',
'./open_dataset/black\手_19.png',
'./open_dataset/black\私_19.png',
'./open_dataset/black\め_20.png',
'./open_dataset/black\ま_20.png',
'./open_dataset/black\大_20.png',
'./open_dataset/black\タ_20.png',
'./open_dataset/black\し_20.png',
'./open_dataset/black\は_20.png',
'./open_dataset/black\時_20.png',
'./open_dataset/black\っ_20.png',
'./open_dataset/black\み_20.png',
'./open_dataset/black\手_20.png',
'./open_dataset/black\で_20.png',
'./open_dataset/black\子_20.png',
'./open_dataset/black\す_20.png',
'./open_dataset/black\中_20.png',
'./open_dataset/black\生_20.png',
'./open_dataset/black\を_20.png',
'./open_dataset/black\わ_20.png',
'./open_dataset/black\も_20.png',
'./open_dataset/black\ド_20.png',
'./open_dataset/black\思_20.png',
'./open_dataset/black\が_20.png',
'./open_dataset/black\ほ_20.png',
'./open_dataset/black\だ_20.png',
'./open_dataset/black\お_20.png',
'./open_dataset/black\レ_20.png',
'./open_dataset/black\か_20.png',
'./open_dataset/black\言_20.png',
'./open_dataset/black\る_20.png',
'./open_dataset/black\ス_20.png',
'./open_dataset/black\な_20.png',
'./open_dataset/black\さ_20.png',
'./open_dataset/black\年_20.png',
'./open_dataset/black\国_20.png',
'./open_dataset/black\ン_20.png',
'./open_dataset/black\き_20.png',
'./open_dataset/black\ク_20.png',
'./open_dataset/black\分_20.png',
'./open_dataset/black\会_20.png',
'./open_dataset/black\事_20.png',
'./open_dataset/black\く_20.png',
'./open_dataset/black\れ_20.png',
'./open_dataset/black\的_20.png',
'./open_dataset/black\見_20.png',
'./open_dataset/black\方_20.png',
'./open_dataset/black\ー_20.png',
'./open_dataset/black\ト_20.png',
'./open_dataset/black\ら_20.png',
'./open_dataset/black\ず_20.png',
'./open_dataset/black\入_20.png',
'./open_dataset/black\て_20.png',
'./open_dataset/black\者_20.png',
'./open_dataset/black\た_20.png',
'./open_dataset/black\気_20.png',
'./open_dataset/black\ど_20.png',
'./open_dataset/black\行_20.png',
'./open_dataset/black\学_20.png',
'./open_dataset/black\ね_20.png',
'./open_dataset/black\ラ_20.png',
'./open_dataset/black\ろ_20.png',
'./open_dataset/black\間_20.png',
'./open_dataset/black\前_20.png',
'./open_dataset/black\上_20.png',
'./open_dataset/black\出_20.png',
'./open_dataset/black\ば_20.png',
'./open_dataset/black\ち_20.png',
'./open_dataset/black\え_20.png',
'./open_dataset/black\ル_20.png',
'./open_dataset/black\り_20.png',
'./open_dataset/black\じ_20.png',
'./open_dataset/black\け_20.png',
'./open_dataset/black\リ_20.png',
'./open_dataset/black\日_20.png',
'./open_dataset/black\人_20.png',
'./open_dataset/black\場_20.png',
'./open_dataset/black\ッ_20.png',
'./open_dataset/black\つ_20.png',
'./open_dataset/black\ょ_20.png',
'./open_dataset/black\に_20.png',
'./open_dataset/black\こ_20.png',
'./open_dataset/black\シ_20.png',
'./open_dataset/black\自_20.png',
'./open_dataset/black\そ_20.png',
'./open_dataset/black\ア_20.png',
'./open_dataset/black\ん_20.png',
'./open_dataset/black\ロ_20.png',
'./open_dataset/black\せ_20.png',
'./open_dataset/black\や_20.png',
'./open_dataset/black\の_20.png',
'./open_dataset/black\私_20.png',
'./open_dataset/black\う_20.png',
'./open_dataset/black\カ_20.png',
'./open_dataset/black\本_20.png',
'./open_dataset/black\よ_20.png',
'./open_dataset/black\合_20.png',
'./open_dataset/black\一_20.png',
'./open_dataset/black\二_20.png',
'./open_dataset/black\イ_20.png',
'./open_dataset/black\あ_20.png',
'./open_dataset/black\い_20.png',
'./open_dataset/black\で_21.png',
'./open_dataset/black\を_21.png',
'./open_dataset/black\ど_21.png',
'./open_dataset/black\生_21.png',
'./open_dataset/black\場_21.png',
'./open_dataset/black\ド_21.png',
'./open_dataset/black\る_21.png',
'./open_dataset/black\な_21.png',
'./open_dataset/black\ロ_21.png',
'./open_dataset/black\ス_21.png',
'./open_dataset/black\ょ_21.png',
'./open_dataset/black\二_21.png',
'./open_dataset/black\レ_21.png',
'./open_dataset/black\ク_21.png',
'./open_dataset/black\め_21.png',
'./open_dataset/black\じ_21.png',
'./open_dataset/black\み_21.png',
'./open_dataset/black\言_21.png',
'./open_dataset/black\日_21.png',
'./open_dataset/black\だ_21.png',
'./open_dataset/black\前_21.png',
'./open_dataset/black\も_21.png',
'./open_dataset/black\上_21.png',
'./open_dataset/black\は_21.png',
'./open_dataset/black\え_21.png',
'./open_dataset/black\ト_21.png',
'./open_dataset/black\り_21.png',
'./open_dataset/black\ち_21.png',
'./open_dataset/black\思_21.png',
'./open_dataset/black\行_21.png',
'./open_dataset/black\会_21.png',
'./open_dataset/black\う_21.png',
'./open_dataset/black\よ_21.png',
'./open_dataset/black\ね_21.png',
'./open_dataset/black\事_21.png',
'./open_dataset/black\大_21.png',
'./open_dataset/black\ん_21.png'

]

max_stars_repo_name: Mediotaku/Kanji-Recognition

max_issues_repo_name: Mediotaku/Kanji-Recognition

max_forks_repo_name: Mediotaku/Kanji-Recognition


text:
from data_set_loader import DataSetLoader
import itertools
import numpy as np
from random import randrange
from matplotlib import pyplot as plt
from inspect import signature

class CrossValidatorTester:
    @staticmethod
    def plot(error_rates, title):
        return
        plt.title(title)
        plt.plot(100 - np.array(error_rates))
        plt.xlabel('Epoch')
        plt.ylabel('Development set accuracy')
        plt.show()

    @staticmethod
    def get_data_for(files):
        features = []
        labels = []

        for data_set_filename in files:
            new_features, new_labels = DataSetLoader(data_set_filename).load()
            features += new_features
            labels += new_labels

        return features, labels

    def __init__(self, cls, hyper_parameters, training_files, development_file, test_file):
        self.cls = cls
        self.hyper_parameters_names = list(hyper_parameters.keys())
        self.hyper_parameters = [list(x) for x in itertools.product(*hyper_parameters.values())]
        self.training_files = training_files
        self.development_file = development_file
        self.test_file = test_file

    def run(self):
        best_hyperparameters, error_rate = self.detect_best_hyperparameters()
        print(
            'BEST HYPER-PARAMETERS: %s CROSS VALIDATION ACCURACY: %.2f%%' % (
                self.get_print_value(best_hyperparameters),
                100 - error_rate
            )
        )

        w = self.train(best_hyperparameters)
        test_features, test_labels = DataSetLoader(self.test_file).load()

        test_error_rate = self.calculate_error_rate(test_features, test_labels, w)
        print('\nTesting data error rate: %.2f%% TEST SET ACCURACY %.2f%%' % (test_error_rate, 100 - test_error_rate))

        return w

    def detect_best_hyperparameters(self):
        lowest_error_rate = float("inf")
        best_hyperparameters = None

        for hyper_parameter_list in self.hyper_parameters:
            perceptron_cls_init_parameters = hyper_parameter_list[:]

            error_rates = self.get_cross_validation_error_rates_for(perceptron_cls_init_parameters)
            average_error_rate = round(sum(error_rates) / len(error_rates), 2)

            print(
                'Perceptron type: %s    %s Epochs: %s    Error rates: %s    Average error rate: %.2f%%' %
                (
                    self.cls.__name__,
                    self.get_print_value(hyper_parameter_list),
                    '10',
                    "% ".join(format(e, "9.3f") for e in error_rates),
                    average_error_rate
                )
            )

            if average_error_rate < lowest_error_rate:
                lowest_error_rate = average_error_rate
                best_hyperparameters = hyper_parameter_list

        return best_hyperparameters, lowest_error_rate

    def get_cross_validation_error_rates_for(self, perceptron_cls_init_parameters):
        error_rates = []

        for idx, _ in enumerate(self.training_files):
            folds = self.training_files[:]
            test_fold_filename = folds[idx]
            del (folds[idx])

            features, labels = CrossValidatorTester.get_data_for(folds)
            test_features, test_labels = DataSetLoader(test_fold_filename).load()

            perceptron = self.cls(*perceptron_cls_init_parameters)
            weights = perceptron.train(features, labels, 10)

            invalid_entries = 0

            for i, x in enumerate(test_features):
                y1 = self.cls.predict(x, weights)
                y = test_labels[i]

                if y1 != y:
                    invalid_entries += 1

            error_rates.append(round((invalid_entries / len(test_features)) * 100, 2))

        return error_rates

    def train(self, perceptron_cls_init_parameters):
        error_rates = []
        best_error_rate = float('inf')
        best_w = None
        total_updates = 0

        perceptron = self.cls(*perceptron_cls_init_parameters)

        features, labels = CrossValidatorTester.get_data_for(self.training_files)
        development_features, development_labels = DataSetLoader(self.development_file).load()
        w = np.array([randrange(-100, 100, 1) / 10000 for _ in range(len(features[0]))])
        u = np.array([0.0 for _ in range(len(features[0]))])

        train_method_parameters = self.get_train_method_parameters(
            perceptron.train_one_epoch,
            {
                'train': features,
                'labels': labels,
                'w': w,
                'u': u,
                'c': 1,
                'epoch': 0
            }
        )

        for _ in range(20):
            # The `train_one_epoch` has various signatures depending on the perceptron type used.
            # From all the possible parameters we are selecting only the ones that we infer from the method signature.

            new_train_method_parameters = perceptron.train_one_epoch(*train_method_parameters)
            updates_count = new_train_method_parameters.pop(0)
            new_train_method_parameters.insert(0, labels)
            new_train_method_parameters.insert(0, features)
            train_method_parameters = new_train_method_parameters

            if self.cls.__name__ == 'AveragedPerceptron':
                w = train_method_parameters[3] / train_method_parameters[4]
            else:
                w = train_method_parameters[2]

            error_rate = self.calculate_error_rate(
                development_features,
                development_labels,
                w
            )

            if error_rate < best_error_rate:
                best_error_rate = error_rate
                best_w = w

            total_updates += updates_count

            error_rates.append(error_rate)

        print('\nDevelopment set error rates: %s' % "% ".join(format(e, "7.2f") for e in error_rates))
        print(
            'Minimum error rate: %.2f%% Epoch: %d DEVELOPMENT SET ACCURACY %.2f%% UPDATES PERFORMED DURING TRAINING %d'
            % (
                min(error_rates),
                error_rates.index(min(error_rates)),
                100 - min(error_rates),
                total_updates
            )
        )

        title = 'Perceptron type: {} {} '.format(
            self.cls.__name__,
            self.get_print_value(perceptron_cls_init_parameters)
        )
        CrossValidatorTester.plot(error_rates, title)
        return best_w

    def calculate_error_rate(self, test_features, test_labels, weights):
        invalid_entries = 0

        for i, x in enumerate(test_features):
            y1 = self.cls.predict(x, weights)
            y = test_labels[i]

            if y1 != y:
                invalid_entries += 1

        return (invalid_entries / len(test_features)) * 100

    def get_print_value(self, hyper_parameter_list):
        hyper_parameters_names = self.hyper_parameters_names[:]
        hyper_parameters_names.append('')

        return ': {:.2f}    '.join(hyper_parameters_names).format(*hyper_parameter_list[:])

    def get_train_method_parameters(self, method, all_parameters):
        train_one_epoch_signature = signature(method)
        result = []
        for param_name in train_one_epoch_signature.parameters:
            result.append(all_parameters[param_name])

        return result

ext: py

reason: import numpy


text:
""" Testing

"""
from __future__ import division, print_function, absolute_import

import sys

from io import BytesIO
cStringIO = BytesIO

import numpy as np

from nose.tools import assert_true, assert_false, \
     assert_equal, assert_raises

from numpy.testing import assert_array_equal, assert_array_almost_equal, \
     run_module_suite

from scipy.lib.six import u

import scipy.io.matlab.byteordercodes as boc
import scipy.io.matlab.streams as streams
import scipy.io.matlab.mio5_params as mio5p
import scipy.io.matlab.mio5_utils as m5u

def test_byteswap():
    for val in (
        1,
        0x100,
        0x10000):
        a = np.array(val, dtype=np.uint32)
        b = a.byteswap()
        c = m5u.byteswap_u4(a)
        yield assert_equal, b.item(), c
        d = m5u.byteswap_u4(c)
        yield assert_equal, a.item(), d

def _make_tag(base_dt, val, mdtype, sde=False):
    ''' Makes a simple matlab tag, full or sde '''
    base_dt = np.dtype(base_dt)
    bo = boc.to_numpy_code(base_dt.byteorder)
    byte_count = base_dt.itemsize
    if not sde:
        udt = bo + 'u4'
        padding = 8 - (byte_count % 8)
        all_dt = [('mdtype', udt),
                  ('byte_count', udt),
                  ('val', base_dt)]
        if padding:
            all_dt.append(('padding', 'u1', padding))
    else:  # is sde
        udt = bo + 'u2'
        padding = 4-byte_count
        if bo == '<':  # little endian
            all_dt = [('mdtype', udt),
                      ('byte_count', udt),
                      ('val', base_dt)]
        else:  # big endian
            all_dt = [('byte_count', udt),
                      ('mdtype', udt),
                      ('val', base_dt)]
        if padding:
            all_dt.append(('padding', 'u1', padding))
    tag = np.zeros((1,), dtype=all_dt)
    tag['mdtype'] = mdtype
    tag['byte_count'] = byte_count
    tag['val'] = val
    return tag

def _write_stream(stream, *strings):
    stream.truncate(0)
    stream.seek(0)
    for s in strings:
        stream.write(s)
    stream.seek(0)

def _make_readerlike(stream, byte_order=boc.native_code):
    class R(object):
        pass
    r = R()
    r.mat_stream = stream
    r.byte_order = byte_order
    r.struct_as_record = True
    r.uint16_codec = sys.getdefaultencoding()
    r.chars_as_strings = False
    r.mat_dtype = False
    r.squeeze_me = False
    return r

def test_read_tag():
    # mainly to test errors
    # make reader-like thing
    str_io = BytesIO()
    r = _make_readerlike(str_io)
    c_reader = m5u.VarReader5(r)
    # This works for StringIO but _not_ cStringIO
    yield assert_raises, IOError, c_reader.read_tag
    # bad SDE
    tag = _make_tag('i4', 1, mio5p.miINT32, sde=True)
    tag['byte_count'] = 5
    _write_stream(str_io, tag.tostring())
    yield assert_raises, ValueError, c_reader.read_tag

def test_read_stream():
    tag = _make_tag('i4', 1, mio5p.miINT32, sde=True)
    tag_str = tag.tostring()
    str_io = cStringIO(tag_str)
    st = streams.make_stream(str_io)
    s = streams._read_into(st, tag.itemsize)
    yield assert_equal, s, tag.tostring()

def test_read_numeric():
    # make reader-like thing
    str_io = cStringIO()
    r = _make_readerlike(str_io)
    # check simplest of tags
    for base_dt, val, mdtype in (
        ('u2', 30, mio5p.miUINT16),
        ('i4', 1, mio5p.miINT32),
        ('i2', -1, mio5p.miINT16)):
        for byte_code in ('<', '>'):
            r.byte_order = byte_code
            c_reader = m5u.VarReader5(r)
            yield assert_equal, c_reader.little_endian, byte_code == '<'
            yield assert_equal, c_reader.is_swapped, byte_code != boc.native_code
            for sde_f in (False, True):
                dt = np.dtype(base_dt).newbyteorder(byte_code)
                a = _make_tag(dt, val, mdtype, sde_f)
                a_str = a.tostring()
                _write_stream(str_io, a_str)
                el = c_reader.read_numeric()
                yield assert_equal, el, val
                # two sequential reads
                _write_stream(str_io, a_str, a_str)
                el = c_reader.read_numeric()
                yield assert_equal, el, val
                el = c_reader.read_numeric()
                yield assert_equal, el, val

def test_read_numeric_writeable():
    # make reader-like thing
    str_io = cStringIO()
    r = _make_readerlike(str_io, '<')
    c_reader = m5u.VarReader5(r)
    dt = np.dtype('<u2')
    a = _make_tag(dt, 30, mio5p.miUINT16, 0)
    a_str = a.tostring()
    _write_stream(str_io, a_str)
    el = c_reader.read_numeric()
    yield assert_true, el.flags.writeable

def test_zero_byte_string():
    # Tests hack to allow chars of non-zero length, but 0 bytes
    # make reader-like thing
    str_io = cStringIO()
    r = _make_readerlike(str_io, boc.native_code)
    c_reader = m5u.VarReader5(r)
    tag_dt = np.dtype([('mdtype', 'u4'), ('byte_count', 'u4')])
    tag = np.zeros((1,), dtype=tag_dt)
    tag['mdtype'] = mio5p.miINT8
    tag['byte_count'] = 1
    hdr = m5u.VarHeader5()
    # Try when string is 1 length
    hdr.set_dims([1,])
    _write_stream(str_io, tag.tostring() + b'        ')
    str_io.seek(0)
    val = c_reader.read_char(hdr)
    assert_equal(val, u(' '))
    # Now when string has 0 bytes 1 length
    tag['byte_count'] = 0
    _write_stream(str_io, tag.tostring())
    str_io.seek(0)
    val = c_reader.read_char(hdr)
    assert_equal(val, u(' '))
    # Now when string has 0 bytes 4 length
    str_io.seek(0)
    hdr.set_dims([4,])
    val = c_reader.read_char(hdr)
    assert_array_equal(val, [u(' ')] * 4)

if __name__ == "__main__":
    run_module_suite()

reason: import numpy,from numpy,import scipy,from scipy


text:
# coding: utf-8

# ## Time-Periodic Magnetization In Rashba System
# ### Rashba SOI in square lattice

# In[1]:

get_ipython().run_cell_magic('latex', '', '$\nH_{\\rm tot} = -\\sum_{n,m} \\left[|n,m\\rangle\\langle n+1,m|\\otimes(t+t_{\\rm SO}i\\sigma^y)\n                              +|n,m\\rangle\\langle n,m+1|\\otimes(t-t_{\\rm SO}i\\sigma^x)\n                               + {\\rm h.c.}\\right]\n$')

# In the superlattice we construct the local Hamiltonian and the connection matrix between superlattice as follows:
#
# `H[i][i+1]` = $-(t-t_{so}i \sigma_x)$  and
#
# `tau[i][i]` = $-(t+t_{so}i \sigma_y)$
#

# In[2]:

import numpy as np
def sq_rashba_const(mlat,tso):
    """ This function construct The Hamiltonian and the connection
        matrix between superllatice(SL) of a square lattice with mlat
        sites per SL.
        input:
        -----
        mlat: integer, number of site in SL
        tso: float, in hopping amplitude unit
            strength of Rashba interation

        return:
        -------
        H: mlatxmlat complex matrix, Hamiltonian of the SL
        tau: mlatxmlat complex matrix, connection matrix between SL
    """
    # Lattice space excluding spin
    h1 = np.zeros((mlat,mlat), dtype=complex)
    tau1 = np.zeros((mlat,mlat), dtype=complex)
    # Lattice space including spin
    h = np.zeros((2*mlat,2*mlat), dtype=complex)
    tau = np.zeros((2*mlat,2*mlat), dtype=complex)

    # define the Pauli matrices
    sigmax = np.array([[0,1],
                       [1,0]], dtype=complex)
    sigmay = np.array([[0,-1j],
                       [1j,0]], dtype=complex)
    sigmaz = np.array([[1,0],
                       [0,-1]], dtype=complex)
    sigma0 = np.array([[1,0],
                       [0,1]], dtype=complex)

    #loop over all sites in SL
    for i in range(mlat-1):
        h1[i][i+1] =  1.
        tau1[i][i] =  1.
    tau1[mlat-1][mlat-1] = 1.
    # end of loop

    # constructing spin including Hamiltonian
    h = np.kron(h1, (-sigma0 + tso*1.j*sigmax))
    tau = np.kron(tau1, -(sigma0 + tso*1.j*sigmay))

    # make Hamiltonian Hermitian
    h = h + h.T.conj()

    return h, tau

# Loop over k points in BZ
#

# In[78]:

import numpy.linalg as lg
N_k = 100
mlat = 2
tso = 0.5
E_data = np.zeros((N_k, 2*mlat), dtype=float)

k_range = np.linspace(-np.pi,np.pi,N_k)
h, tau = sq_rashba_const(mlat, tso)
tau_dag = tau.T.conj()
i = -1
for ka in k_range:
    i+=1
    H_eff = h + np.exp(1.j*ka)*tau + np.exp(-1.j*ka)*tau_dag
    E = lg.eigvalsh(H_eff)
    E_data[i,:] = np.sort(E)
#end of k-loop

# In[79]:

get_ipython().magic('matplotlib inline')
import matplotlib.pyplot as pl
fig, ax = pl.subplots(1,1,figsize=(8,6))
for i in range(2*mlat):
    ax.plot(k_range, E_data[:,i], 'k-')

ax.set_xlim(-np.pi,np.pi)
ax.set_xticks((-np.pi,0,np.pi))
ax.set_xticklabels((r'$-\pi$', r'$0$', r'$\pi$'))

# ### Adding periodic driven field
# I assumed that the magnetization is rotating stroboscopically over one
# period T. Since it is a square lattice so I prefer to change the magnetization
# direction four times per period. It start with direction toward x, then totate
# 90 degree to align to +y and at the final step it would get back to intial
# direction.
# Here we write the Hamiltonian constructor in such a way that time also included

# In[43]:

import numpy as np
def sq_rashba_const_t(mlat,tso, t_n, mag_st):
    """ This function construct The Hamiltonian and the connection
        matrix between superllatice(SL) of a square lattice with mlat
        sites per SL. In this version a time-dependent magnetization
        is implemented.

        input:
        -----
        mlat: integer, number of site in SL
        tso: float, in hopping amplitude unit
            strength of Rashba interation
        t_n: integer, time interval, t_N = T, where T
            is one period of driven field
        mag_st: float, magnetization strength

        return:
        -------
        H: mlatxmlat complex matrix, Hamiltonian of the SL
        tau: mlatxmlat complex matrix, connection matrix between SL
    """
    # Lattice space excluding spin
    h1 = np.zeros((mlat,mlat), dtype=complex)
    tau1 = np.zeros((mlat,mlat), dtype=complex)
    # time-dependent magnetization
    h2 = np.zeros((mlat,mlat), dtype=complex)
    # Lattice space including spin
    h = np.zeros((2*mlat,2*mlat), dtype=complex)
    tau = np.zeros((2*mlat,2*mlat), dtype=complex)

    # define the Pauli matrices
    sigmax = np.array([[0,1],
                       [1,0]], dtype=complex)
    sigmay = np.array([[0,-1j],
                       [1j,0]], dtype=complex)
    sigmaz = np.array([[1,0],
                       [0,-1]], dtype=complex)
    sigma0 = np.array([[1,0],
                       [0,1]], dtype=complex)

    #loop over all sites in SL
    for i in range(mlat-1):
        h1[i][i+1] =  1.
        tau1[i][i] =  1.
    # last site in SL hopping to next SL
    tau1[mlat-1][mlat-1] = 1.
    # end of loop

    # constructing spin including Hamiltonian
    h = np.kron(h1, (-sigma0 + tso*1.j*sigmax))
    tau = np.kron(tau1, -(sigma0 + tso*1.j*sigmay))

    # time dependent magnetization at each site
    for i in range(mlat):
        h2[i][i] = mag_st
    # time-dependency
    if t_n == 0:
        h += np.kron(h2, sigmax)
    elif t_n == 1:
        h += np.kron(h2, sigmay)
    elif t_n == 2:
        h += np.kron(h2, -sigmax)
    elif t_n == 3:
        h += np.kron(h2, -sigmay)

    # make Hamiltonian Hermitian
    h = h + h.T.conj()

    return h, tau

# Calculating the Floquet quasienergies:

# In[102]:

import numpy.linalg as lg
N_k = 100
N_t = 4
T = 1                    #one period
mlat = 20
mag_st = 0.0
tso = 0.0
E_data = np.zeros((N_k, 2*mlat), dtype=float)

k_range = np.linspace(-np.pi,np.pi,N_k)
ik = -1
for ka in k_range:
    ik+=1
    M_eff = np.eye((2*mlat), dtype=complex)   # aux matrix
    for it in range(N_t):
        h, tau = sq_rashba_const_t(mlat, tso, it, mag_st)
        tau_dag = tau.T.conj()
        H_eff = h + np.exp(1.j*ka)*tau + np.exp(-1.j*ka)*tau_dag
        E_k, U = lg.eig(H_eff)
        U_inv = lg.inv(U)
        # constructing Floquet operator
        M1 = (np.exp((-1.j/4)*E_k*T) * U_inv.T).T
        MM = np.dot(U,M1)
        M_eff = np.dot(M_eff,MM)
    #end of time loop
    E_Fl = lg.eigvals(M_eff)
    E_real = -np.log(E_Fl).imag
    E_data[ik,:] = np.sort(E_real)
#end of k-loop

# In[103]:

get_ipython().magic('matplotlib inline')
import matplotlib.pyplot as pl
fig, ax = pl.subplots(1,1,figsize=(8,6))
for i in range(2*mlat):
    ax.plot(k_range, E_data[:,i], 'k.')

ax.set_xlim(-np.pi,np.pi)
ax.set_xticks((-np.pi,0,np.pi))
ax.set_xticklabels((r'$-\pi$', r'$0$', r'$\pi$'))


text:
#!/usr/bin/env python

import os
from os import listdir
from os.path import isfile, join, basename
import xml.etree.ElementTree as ET
import numpy as np
import scipy.sparse
import re

def onlyFiles(path):
    return [f for f in listdir(path) if isfile(join(path, f))]

def _load_technicaldrawings_annotation(filename):
    """
    Load image and bounding boxes info from XML file in the technicaldrawings
    format.
    """
    tree = ET.parse(filename)
    objs = tree.findall('object')
    num_objs = len(objs)

    boxes = np.zeros((num_objs, 4), dtype=np.uint16)

    # Load object bounding boxes into a data frame.
    for ix, obj in enumerate(objs):
        bbox = obj.find('bndbox')
        # Make pixel indexes 0-based
        x1 = float(bbox.find('xmin').text)
        y1 = float(bbox.find('ymin').text)
        x2 = float(bbox.find('xmax').text)
        y2 = float(bbox.find('ymax').text)
        boxes[ix, :] = [x1, y1, x2, y2]

    return boxes

def merge(filename, bboxes, outpath):
    tree = ET.parse(filename)
    objs = tree.findall('object')
    root=tree.getroot()

    new_boxes=[]
    idx=0
    for ix, obj in enumerate(objs):
        if idx >= len(bboxes):
            break

        master_box = obj.find('bndbox')
        # Make pixel indexes 0-based
        x1 = float(master_box.find('xmin').text)
        y1 = float(master_box.find('ymin').text)
        x2 = float(master_box.find('xmax').text)
        y2 = float(master_box.find('ymax').text)

        for sub_box in bboxes[idx]:
            print 'subbox:'
            print sub_box
            sub_box[0]+=x1
            sub_box[1]+=y1
            sub_box[2]+=x1
            sub_box[3]+=y1
            print sub_box
            new_boxes.append(sub_box)

        idx+=1

    for ix, obj in enumerate(objs):
        root.remove(obj)
    def str_elem(parent, childElemName, value):
        e=ET.SubElement(parent,childElemName)
        e.text=value
        return e

    for b in new_boxes:
        obj=ET.SubElement(root,'object')

        str_elem(obj, 'name', 'number')
        str_elem(obj, 'pose', 'Unspecified')
        str_elem(obj, 'difficult', '0')
        bndbox=ET.SubElement(obj,'bndbox')
        str_elem(bndbox, 'xmin', str(int(b[0])))
        str_elem(bndbox, 'ymin', str(int(b[1])))
        str_elem(bndbox, 'xmax', str(int(b[2])))
        str_elem(bndbox, 'ymax', str(int(b[3])))

    tree.write(join(outpath, basename(filename)))

techdraw_path='/home/dennis/workspace/datasets/technicaldrawings'
numbers_measurements_path=os.path.join(techdraw_path, 'numbers-and-measurements/annotations')
single_numbers_path=os.path.join(techdraw_path, 'single-numbers/annotations')
outpath=os.path.join(techdraw_path, 'numbers-and-measurements/annotations-new')

regex_numbers_measurements_filename = re.compile('([a-zA-Z\.]+-\d+)\.xml')
regex_single_numbers_filename = re.compile('([a-zA-Z\.]+-\d+)-(measurement|housenumbers)-(\d+)\.xml')

nm_and_sn={}

for sn in onlyFiles(numbers_measurements_path):
    match=regex_numbers_measurements_filename.match(sn)
    if match:
        nm_and_sn[match.group(1)]=[os.path.join(numbers_measurements_path,sn)]

for sn in onlyFiles(single_numbers_path):
    match=regex_single_numbers_filename.match(sn)
    if match:
        existing=nm_and_sn.get(match.group(1), None)
        if existing != None:
            existing.append(_load_technicaldrawings_annotation(os.path.join(single_numbers_path,sn)))

for k in nm_and_sn:
    values=nm_and_sn[k]
    if len(values)>1:
        print k
        print values
        merge(values[0], values[1:], outpath)

max_stars_repo_name: haoli-buaa/faster-rcnn-scenarios

max_issues_repo_name: haoli-buaa/faster-rcnn-scenarios

max_forks_repo_name: djdam/faster-rcnn-scenarios

reason: import numpy,import scipy


text:
import threading
import time
from typing import Tuple

import matplotlib.pyplot as plt
import numpy as np
import scipy.stats

from pyOpenBCI import OpenBCIGanglion

NOMINAL_SAMPLING_RATE = 200

class GanglionSampleCounter:
    def __init__(self, board: OpenBCIGanglion):
        self._samples = 0
        self._lost_samples = 0
        self._board = board
        self._sampling_thread = threading.Thread(
            target=GanglionSampleCounter._recv_samples,
            args=(self,),
            daemon=True)

        self._lock = threading.RLock()

    def start(self):
        self._sampling_thread.start()

    def stop(self):
        self._board.stop_stream()
        self._sampling_thread.join()

    def _recv_samples(self):
        self._board.start_stream(self.handle_sample)

    @property
    def sample_count(self) -> Tuple[int, int]:
        with self._lock:
            return self._samples, self._lost_samples

    def handle_sample(self, sample):
        with self._lock:
            if np.NaN not in sample.channels_data:
                self._samples += 1
            else:
                self._lost_samples += 1

def benchmark_ganglion(mac: str,
                       runs: int, run_duration: float) -> np.ndarray:
    sampling_rates = []
    board = OpenBCIGanglion(mac=mac)

    total_recv_samples = 0
    total_lost_samples = 0

    counter = GanglionSampleCounter(board)
    counter.start()

    print(f'Sleeping for 10 seconds to let receiver warm up.')
    time.sleep(10.0)

    for r in range(runs):
        print(f'\rExecuting run {r + 1}/{runs}...', end='', flush=True)
        samples_i, lost_samples_i = counter.sample_count
        t_i = time.time()
        time.sleep(run_duration)
        delta_t = time.time() - t_i

        samples, lost_samples = counter.sample_count
        delta_cnt = samples - samples_i

        total_recv_samples += delta_cnt
        total_lost_samples += lost_samples - lost_samples_i

        sampling_rates.append(delta_cnt / delta_t)

    sampling_rates = np.array(sampling_rates)
    _, minmax, mean, var, _, _, = scipy.stats.describe(sampling_rates)

    counter.stop()
    board.disconnect()

    print(f'''
... Sampling rate benchmark results for OpenBCI Ganglion ...
Measured sampling rates over ~{run_duration:.2f}s intervals:
Mean: {mean} Hz
Min: {minmax[0]} Hz
Max: {minmax[1]} Hz
Variance: {var} Hz

Total received samples: {total_recv_samples}
Total lost samples: {total_lost_samples}
Loss rate: {(total_lost_samples / (total_recv_samples + total_lost_samples))
            * 100.0}%
    ''')

    return sampling_rates

if __name__ == '__main__':
    data = benchmark_ganglion('D2:EA:16:D2:EB:3F', 300, 1.0)

    fig, ax = plt.subplots()
    ax.axhline(y=200)
    ax.boxplot([data], vert=True, labels=['EEG\nNom. Freq. 200Hz'])

    y_ticks = ax.get_yticks()
    ax.set_yticks(np.append(y_ticks, np.array([200])))
    ax.legend()
    ax.set_ylabel('Measured sampling frequency [Hz]')
    plt.show()


text:
import ipaddress

import numpy as np
import six

from .ip_array import IPArray
from .common import _U8_MAX

def _as_int(ip):
    if isinstance(ip, six.string_types):
        ip = ipaddress.ip_address(ip)
    return int(ip)

def _crosses_boundary(lo, hi):
    return (lo <= _U8_MAX) == (hi <= _U8_MAX)

def ip_range(start=None, stop=None, step=None):
    """Generate a range of IP Addresses

    Parameters
    ----------
    start : int, str, IPv4Address, or IPv6Address, optional
        Start of interval.  The interval includes this value.  The default
        start value is 0.
    start : int, str, IPv4Address, or IPv6Address, optional
        End of interval.  The interval does not include this value.
    step : int, optional
        Spacing between values.  For any output `out`, this is the distance
        between two adjacent values, ``out[i+1] - out[i]``.  The default
        step size is 1.  If `step` is specified as a position argument,
        `start` must also be given.

    Returns
    -------
    IPArray

    Notes
    -----
    Performance will worsen if either of `start` or `stop` are larger than
    2**64.

    Examples
    --------
    From integers

    >>> ip_range(1, 5)
    IPArray(['0.0.0.1', '0.0.0.2', '0.0.0.3', '0.0.0.4'])

    Or strings

    >>> ip_range('0.0.0.1', '0.0.0.5')
    IPArray(['0.0.0.1', '0.0.0.2', '0.0.0.3', '0.0.0.4'])

    Or `ipaddress` objects

    >>> ip_range(ipaddress.IPv4Address(1), ipaddress.IPv4Address(5))
    IPArray(['0.0.0.1', '0.0.0.2', '0.0.0.3', '0.0.0.4'])
    """
    if start is not None:
        start = _as_int(start)
    if stop is not None:
        stop = _as_int(stop)
    if step is not None:
        step = _as_int(step)
    arr = IPArray(np.arange(start, stop, step))
    return arr

max_stars_repo_name: jbrockmendel/cyberpandas

max_issues_repo_name: jbrockmendel/cyberpandas

max_forks_repo_name: jbrockmendel/cyberpandas