diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1e5b61c --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img/CoreMLModels +TFLite/SpeechRecognition/ios_speech_commands/Pods diff --git a/CoreML/ImageClassification/ImageClassification.mlproj/Data Sources/flower_photos.json b/CoreML/ImageClassification/ImageClassification.mlproj/Data Sources/flower_photos.json new file mode 100644 index 0000000..f91810d --- /dev/null +++ b/CoreML/ImageClassification/ImageClassification.mlproj/Data Sources/flower_photos.json @@ -0,0 +1 @@ +{"dataURL":"file:\/\/\/Users\/hangyojeong\/Dev\/DeepLearning_Summary\/CoreML\/flower_photos\/","id":"9A410913-14F5-45F5-BA7A-771476C5F496","createdDate":"2023-03-22T15:07:14Z","title":"flower_photos","modifiedDate":"2023-03-22T15:08:54Z","preferredFilename":"flower_photos","version":"1.0","dataResult":{"dataURL":"file:\/\/\/Users\/hangyojeong\/Dev\/DeepLearning_Summary\/CoreML\/flower_photos\/","createdDate":"2023-03-22T15:07:14Z","dataSourceID":"9A410913-14F5-45F5-BA7A-771476C5F496"},"activityEntities":["dataSourceMetrics",[{"id":"E80F5A09-1D86-4B9A-BE3B-855044B793B6","title":"Data Summary","createdDate":"2023-03-22T15:08:54Z","event":"dataSourceMetrics","subtitle":"5 Classes, 3,670 Items"}],"dataSourceCreated",[{"id":"6B680BB5-AE2D-4C06-B77F-3F3B9194C246","title":"Data Source Created","createdDate":"2023-03-22T15:07:14Z","event":"dataSourceCreated","subtitle":"flower_photos"}],"dataSourceTrainingStarted",[{"id":"6BB7CA08-0EC9-4D4E-83D7-7F4AB9F265D8","title":"Used By","createdDate":"2023-03-22T15:08:54Z","event":"dataSourceTrainingStarted","subtitle":"ImageClassification 1"}]],"pathType":0,"experimentIDs":["61459CEC-13C8-4D41-BE6D-AF1171677B23"]} \ No newline at end of file diff --git a/CoreML/ImageClassification/ImageClassification.mlproj/Model Containers/ImageClassification 1.json b/CoreML/ImageClassification/ImageClassification.mlproj/Model Containers/ImageClassification 1.json new file mode 100644 index 0000000..c9df7df --- /dev/null +++ b/CoreML/ImageClassification/ImageClassification.mlproj/Model Containers/ImageClassification 1.json @@ -0,0 +1 @@ +{"id":"61459CEC-13C8-4D41-BE6D-AF1171677B23","validationEntity":{"analysedDataType":"auto","dataResult":{"createdDate":"2023-03-22T15:02:05Z"}},"modelEntity":{"createdDate":"2023-03-22T15:02:05Z","id":"42352DB2-100C-4B8B-BFD4-F321174B7B2A","experimentID":"61459CEC-13C8-4D41-BE6D-AF1171677B23","title":"","modifiedDate":"2023-03-22T15:02:05Z","preferredFilename":"","version":"1.0","modelURL":"Models\/ImageClassification%201.mlmodel"},"version":"1.0","settingEntity":{"taskType":"imageClassifier","augmentations":[],"styleTransferAlgorithmType":"image","iterationCount":25,"transferLearningEmbeddingType":"dynamic","harVideoAugmentations":0,"handPoseClassifierAugmentations":[],"algorithmType":"maxEnt","handActionClassifierAugmentations":[],"seedType":"default","featureNames":[]},"state":"trained","trainingEntity":{"finishTime":"2023-03-22T15:10:38Z","validationResults":{"imageClassifier":{"confusionMatrix":[{"expected":"daisy","actual":"daisy","count":36},{"expected":"dandelion","actual":"daisy","count":2},{"expected":"tulips","actual":"daisy","count":1},{"expected":"dandelion","actual":"dandelion","count":42},{"expected":"sunflowers","actual":"dandelion","count":1},{"expected":"roses","actual":"roses","count":35},{"expected":"tulips","actual":"roses","count":3},{"expected":"sunflowers","actual":"sunflowers","count":28},{"expected":"dandelion","actual":"tulips","count":1},{"expected":"roses","actual":"tulips","count":1},{"expected":"tulips","actual":"tulips","count":35}],"statsByLabel":{"daisy":{"count":39,"precisionRecall":{"success":{"recall":0.92307692307692313,"precision":1}}},"roses":{"count":38,"precisionRecall":{"success":{"recall":0.92105263157894735,"precision":0.97222222222222221}}},"sunflowers":{"count":28,"precisionRecall":{"success":{"recall":1,"precision":0.96551724137931039}}},"tulips":{"count":37,"precisionRecall":{"success":{"recall":0.94594594594594594,"precision":0.89743589743589747}}},"dandelion":{"count":43,"precisionRecall":{"success":{"recall":0.97674418604651159,"precision":0.93333333333333335}}}},"accuracy":0.9513513513513514}},"dataURL":"file:\/\/\/Users\/hangyojeong\/Dev\/DeepLearning_Summary\/CoreML\/flower_photos\/","dataResult":{"itemsCount":3670,"createdDate":"2023-03-22T15:02:05Z","dataURL":"file:\/\/\/Users\/hangyojeong\/Dev\/DeepLearning_Summary\/CoreML\/flower_photos\/","dataSourceID":"9A410913-14F5-45F5-BA7A-771476C5F496","classesCount":5,"dataAnalysis":{"summary":{"sampleCount":3670,"classCount":5,"canUseValidation":1},"issues":[{"description":"5 classes found, including dandelion, tulips, sunflowers","severity":"debug"},{"description":"3670 images found, automatically creating validation set","severity":"good"},{"description":"Smallest class is \"daisy\" with 633 images","severity":"debug"},{"description":"Largest class is \"dandelion\" with 898 images","severity":"debug"}],"classifierAnalysis":{"labelStats":{"daisy":633,"roses":641,"sunflowers":699,"tulips":799,"dandelion":898}}}},"trainingResults":{"imageClassifier":{"confusionMatrix":[{"expected":"daisy","actual":"daisy","count":590},{"expected":"dandelion","actual":"daisy","count":2},{"expected":"roses","actual":"daisy","count":1},{"expected":"tulips","actual":"daisy","count":1},{"expected":"daisy","actual":"dandelion","count":1},{"expected":"dandelion","actual":"dandelion","count":854},{"expected":"daisy","actual":"roses","count":1},{"expected":"roses","actual":"roses","count":600},{"expected":"tulips","actual":"roses","count":2},{"expected":"sunflowers","actual":"sunflowers","count":671},{"expected":"daisy","actual":"tulips","count":1},{"expected":"roses","actual":"tulips","count":1},{"expected":"tulips","actual":"tulips","count":760}],"statsByLabel":{"daisy":{"count":594,"precisionRecall":{"success":{"recall":0.9932659932659933,"precision":0.99494097807757165}}},"roses":{"count":603,"precisionRecall":{"success":{"recall":0.99502487562189057,"precision":0.99667774086378735}}},"sunflowers":{"count":671,"precisionRecall":{"success":{"recall":1,"precision":1}}},"tulips":{"count":762,"precisionRecall":{"success":{"recall":0.99737532808398954,"precision":0.99606815203145482}}},"dandelion":{"count":855,"precisionRecall":{"success":{"recall":0.99883040935672518,"precision":0.99766355140186913}}}},"accuracy":0.99713055954088947}},"progress":[{"currentRowIndex":0,"tableIndex":0,"count":0,"isLast":false,"percentComplete":0,"tableDone":false},{"icTrainingColumnHeader":{"hasValidation":true,"elapsedTime":1.184647,"trainingAccuracy":0.42697299999999999,"iterationCount":1,"validationAccuracy":0.37837799999999999},"isLast":false,"currentRowIndex":0,"count":1,"tableDone":false,"tableIndex":734,"percentComplete":0},{"icTrainingColumnHeader":{"hasValidation":true,"elapsedTime":1.3798429999999999,"trainingAccuracy":0.67517899999999997,"iterationCount":2,"validationAccuracy":0.60540499999999997},"isLast":false,"currentRowIndex":0,"count":2,"tableDone":false,"tableIndex":734,"percentComplete":0},{"icTrainingColumnHeader":{"hasValidation":true,"elapsedTime":1.484612,"trainingAccuracy":0.88149200000000005,"iterationCount":3,"validationAccuracy":0.87026999999999999},"isLast":false,"currentRowIndex":0,"count":3,"tableDone":false,"tableIndex":734,"percentComplete":0},{"icTrainingColumnHeader":{"hasValidation":true,"elapsedTime":1.5767169999999999,"trainingAccuracy":0.91535200000000005,"iterationCount":4,"validationAccuracy":0.89729700000000001},"isLast":false,"currentRowIndex":0,"count":4,"tableDone":false,"tableIndex":734,"percentComplete":0},{"icTrainingColumnHeader":{"hasValidation":true,"elapsedTime":1.694707,"trainingAccuracy":0.93170699999999995,"iterationCount":5,"validationAccuracy":0.92972999999999995},"isLast":false,"currentRowIndex":0,"count":5,"tableDone":false,"tableIndex":734,"percentComplete":0},{"icTrainingColumnHeader":{"hasValidation":true,"elapsedTime":2.0899969999999999,"trainingAccuracy":0.95954099999999998,"iterationCount":10,"validationAccuracy":0.94594599999999995},"isLast":false,"currentRowIndex":0,"count":10,"tableDone":false,"tableIndex":734,"percentComplete":0},{"currentRowIndex":0,"tableIndex":0,"count":15,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":20,"isLast":false,"percentComplete":0,"tableDone":false},{"icTrainingColumnHeader":{"hasValidation":true,"elapsedTime":3.4979040000000001,"trainingAccuracy":0.99713099999999999,"iterationCount":25,"validationAccuracy":0.95135099999999995},"isLast":false,"currentRowIndex":0,"count":25,"tableDone":true,"tableIndex":734,"percentComplete":0},{"currentRowIndex":0,"tableIndex":0,"count":30,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":35,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":40,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":45,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":50,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":55,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":60,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":65,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":70,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":75,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":80,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":85,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":90,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":95,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":100,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":105,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":110,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":115,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":120,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":125,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":130,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":135,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":140,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":145,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":150,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":155,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":160,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":165,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":170,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":175,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":180,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":185,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":190,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":195,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":200,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":205,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":210,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":215,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":220,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":225,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":230,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":235,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":240,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":245,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":250,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":255,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":260,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":265,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":270,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":275,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":280,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":285,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":290,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":295,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":300,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":305,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":310,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":315,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":320,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":325,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":330,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":335,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":340,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":345,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":350,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":355,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":360,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":365,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":370,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":375,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":380,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":385,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":390,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":395,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":400,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":405,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":410,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":415,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":420,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":425,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":430,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":435,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":440,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":445,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":450,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":455,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":460,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":465,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":470,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":475,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":480,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":485,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":490,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":495,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":500,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":505,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":510,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":515,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":520,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":525,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":530,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":535,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":540,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":545,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":550,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":555,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":560,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":565,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":570,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":575,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":580,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":585,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":590,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":595,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":600,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":605,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":610,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":615,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":620,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":625,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":630,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":635,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":640,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":645,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":650,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":655,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":660,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":665,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":670,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":675,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":680,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":685,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":690,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":695,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":700,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":705,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":710,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":715,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":720,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":725,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":730,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":735,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":740,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":745,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":750,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":755,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":760,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":765,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":770,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":775,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":780,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":785,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":790,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":795,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":800,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":805,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":810,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":815,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":820,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":825,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":830,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":835,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":840,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":845,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":850,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":855,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":860,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":865,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":870,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":875,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":880,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":885,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":890,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":895,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":900,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":905,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":910,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":915,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":920,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":925,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":930,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":935,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":940,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":945,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":950,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":955,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":960,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":965,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":970,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":975,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":980,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":985,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":990,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":995,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1000,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1005,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1010,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1015,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1020,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1025,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1030,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1035,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1040,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1045,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1050,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1055,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1060,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1065,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1070,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1075,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1080,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1085,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1090,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1095,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1100,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1105,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1110,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1115,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1120,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1125,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1130,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1135,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1140,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1145,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1150,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1155,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1160,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1165,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1170,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1175,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1180,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1185,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1190,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1195,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1200,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1205,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1210,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1215,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1220,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1225,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1230,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1235,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1240,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1245,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1250,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1255,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1260,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1265,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1270,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1275,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1280,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1285,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1290,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1295,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1300,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1305,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1310,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1315,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1320,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1325,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1330,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1335,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1340,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1345,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1350,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1355,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1360,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1365,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1370,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1375,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1380,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1385,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1390,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1395,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1400,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1405,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1410,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1415,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1420,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1425,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1430,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1435,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1440,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1445,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1450,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1455,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1460,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1465,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1470,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1475,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1480,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1485,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1490,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1495,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1500,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1505,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1510,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1515,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1520,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1525,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1530,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1535,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1540,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1545,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1550,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1555,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1560,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1565,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1570,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1575,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1580,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1585,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1590,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1595,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1600,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1605,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1610,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1615,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1620,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1625,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1630,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1635,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1640,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1645,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1650,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1655,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1660,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1665,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1670,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1675,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1680,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1685,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1690,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1695,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1700,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1705,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1710,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1715,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1720,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1725,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1730,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1735,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1740,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1745,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1750,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1755,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1760,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1765,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1770,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1775,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1780,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1785,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1790,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1795,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1800,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1805,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1810,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1815,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1820,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1825,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1830,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1835,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1840,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1845,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1850,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1855,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1860,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1865,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1870,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1875,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1880,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1885,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1890,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1895,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1900,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1905,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1910,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1915,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1920,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1925,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1930,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1935,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1940,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1945,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1950,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1955,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1960,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1965,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1970,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1975,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1980,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1985,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1990,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":1995,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2000,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2005,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2010,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2015,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2020,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2025,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2030,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2035,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2040,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2045,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2050,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2055,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2060,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2065,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2070,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2075,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2080,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2085,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2090,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2095,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2100,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2105,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2110,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2115,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2120,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2125,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2130,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2135,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2140,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2145,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2150,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2155,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2160,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2165,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2170,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2175,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2180,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2185,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2190,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2195,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2200,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2205,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2210,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2215,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2220,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2225,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2230,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2235,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2240,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2245,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2250,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2255,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2260,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2265,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2270,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2275,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2280,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2285,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2290,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2295,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2300,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2305,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2310,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2315,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2320,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2325,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2330,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2335,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2340,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2345,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2350,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2355,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2360,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2365,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2370,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2375,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2380,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2385,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2390,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2395,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2400,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2405,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2410,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2415,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2420,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2425,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2430,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2435,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2440,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2445,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2450,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2455,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2460,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2465,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2470,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2475,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2480,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2485,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2490,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2495,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2500,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2505,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2510,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2515,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2520,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2525,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2530,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2535,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2540,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2545,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2550,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2555,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2560,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2565,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2570,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2575,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2580,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2585,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2590,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2595,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2600,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2605,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2610,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2615,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2620,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2625,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2630,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2635,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2640,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2645,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2650,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2655,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2660,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2665,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2670,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2675,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2680,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2685,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2690,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2695,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2700,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2705,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2710,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2715,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2720,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2725,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2730,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2735,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2740,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2745,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2750,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2755,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2760,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2765,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2770,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2775,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2780,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2785,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2790,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2795,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2800,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2805,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2810,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2815,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2820,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2825,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2830,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2835,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2840,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2845,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2850,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2855,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2860,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2865,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2870,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2875,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2880,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2885,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2890,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2895,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2900,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2905,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2910,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2915,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2920,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2925,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2930,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2935,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2940,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2945,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2950,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2955,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2960,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2965,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2970,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2975,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2980,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2985,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2990,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":2995,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3000,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3005,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3010,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3015,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3020,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3025,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3030,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3035,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3040,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3045,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3050,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3055,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3060,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3065,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3070,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3075,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3080,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3085,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3090,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3095,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3100,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3105,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3110,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3115,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3120,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3125,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3130,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3135,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3140,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3145,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3150,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3155,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3160,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3165,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3170,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3175,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3180,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3185,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3190,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3195,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3200,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3205,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3210,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3215,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3220,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3225,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3230,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3235,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3240,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3245,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3250,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3255,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3260,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3265,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3270,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3275,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3280,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3285,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3290,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3295,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3300,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3305,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3310,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3315,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3320,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3325,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3330,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3335,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3340,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3345,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3350,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3355,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3360,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3365,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3370,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3375,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3380,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3385,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3390,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3395,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3400,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3405,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3410,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3415,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3420,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3425,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3430,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3435,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3440,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3445,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3450,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3455,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3460,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3465,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3470,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3475,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3480,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3485,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3490,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3495,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3500,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3505,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3510,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3515,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3520,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3525,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3530,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3535,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3540,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3545,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3550,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3555,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3560,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3565,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3570,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3575,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3580,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3585,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3590,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3595,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3600,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3605,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3610,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3615,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3620,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3625,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3630,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3635,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3640,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3645,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3650,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3655,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3660,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3665,"isLast":false,"percentComplete":0,"tableDone":false},{"currentRowIndex":0,"tableIndex":0,"count":3670,"isLast":false,"percentComplete":0,"tableDone":true}],"trainingAccuracy":0.99713055954088947,"checkpointMetrics":{},"analysedDataType":"datasource","dataSourceID":"9A410913-14F5-45F5-BA7A-771476C5F496","snapshottableCheckpoints":{},"featureExtractionCheckpointMayBeAvailable":false,"validationAccuracy":0.9513513513513514,"startTime":"2023-03-22T15:08:54Z"},"createdDate":"2023-03-22T15:02:05Z","evaluationContainerEntity":{"testingEvaluationEntity":{"id":"12e207a4-bd75-4ec0-a702-a2e5f5ad514f","createdDate":"2023-03-22T15:02:05Z","dataResult":{"createdDate":"2023-03-22T15:02:05Z"},"analysedDataType":"none"},"createdDate":"2023-03-22T15:10:54Z","id":"743aa4b3-db94-43c7-9270-2f6b7dce47ee","trainingEvaluationEntity":{"evaluationResult":{"imageClassifier":{"confusionMatrix":[{"expected":"daisy","actual":"daisy","count":590},{"expected":"dandelion","actual":"daisy","count":2},{"expected":"roses","actual":"daisy","count":1},{"expected":"tulips","actual":"daisy","count":1},{"expected":"daisy","actual":"dandelion","count":1},{"expected":"dandelion","actual":"dandelion","count":854},{"expected":"daisy","actual":"roses","count":1},{"expected":"roses","actual":"roses","count":600},{"expected":"tulips","actual":"roses","count":2},{"expected":"sunflowers","actual":"sunflowers","count":671},{"expected":"daisy","actual":"tulips","count":1},{"expected":"roses","actual":"tulips","count":1},{"expected":"tulips","actual":"tulips","count":760}],"statsByLabel":{"daisy":{"count":594,"precisionRecall":{"success":{"recall":0.9932659932659933,"precision":0.99494097807757165}}},"sunflowers":{"count":671,"precisionRecall":{"success":{"recall":1,"precision":1}}},"roses":{"count":603,"precisionRecall":{"success":{"recall":0.99502487562189057,"precision":0.99667774086378735}}},"tulips":{"count":762,"precisionRecall":{"success":{"recall":0.99737532808398954,"precision":0.99606815203145482}}},"dandelion":{"count":855,"precisionRecall":{"success":{"recall":0.99883040935672518,"precision":0.99766355140186913}}}},"accuracy":0.99713055954088947}},"createdDate":"2023-03-22T15:02:05Z","id":"ae0a16ba-6557-4580-bfc0-91d99901dca0","dataURL":"file:\/\/\/Users\/hangyojeong\/Dev\/DeepLearning_Summary\/CoreML\/flower_photos\/","dataSourceID":"9A410913-14F5-45F5-BA7A-771476C5F496","dataResult":{"itemsCount":3670,"createdDate":"2023-03-22T15:02:05Z","dataURL":"file:\/\/\/Users\/hangyojeong\/Dev\/DeepLearning_Summary\/CoreML\/flower_photos\/","dataSourceID":"9A410913-14F5-45F5-BA7A-771476C5F496","classesCount":5,"dataAnalysis":{"summary":{"sampleCount":3670,"classCount":5,"canUseValidation":1},"issues":[{"description":"5 classes found, including dandelion, tulips, sunflowers","severity":"debug"},{"description":"3670 images found, automatically creating validation set","severity":"good"},{"description":"Smallest class is \"daisy\" with 633 images","severity":"debug"},{"description":"Largest class is \"dandelion\" with 898 images","severity":"debug"}],"classifierAnalysis":{"labelStats":{"daisy":633,"roses":641,"sunflowers":699,"tulips":799,"dandelion":898}}}},"analysedDataType":"none"},"previewType":"imageClassifier","modifiedDate":"2023-03-22T15:10:54Z","validationEvaluationEntity":{"id":"5c0dc9da-6d7e-4c2a-b8a8-386d7c822e64","createdDate":"2023-03-22T15:02:05Z","dataResult":{"createdDate":"2023-03-22T15:02:05Z"},"analysedDataType":"auto","evaluationResult":{"imageClassifier":{"confusionMatrix":[{"expected":"daisy","actual":"daisy","count":36},{"expected":"dandelion","actual":"daisy","count":2},{"expected":"tulips","actual":"daisy","count":1},{"expected":"dandelion","actual":"dandelion","count":42},{"expected":"sunflowers","actual":"dandelion","count":1},{"expected":"roses","actual":"roses","count":35},{"expected":"tulips","actual":"roses","count":3},{"expected":"sunflowers","actual":"sunflowers","count":28},{"expected":"dandelion","actual":"tulips","count":1},{"expected":"roses","actual":"tulips","count":1},{"expected":"tulips","actual":"tulips","count":35}],"statsByLabel":{"daisy":{"count":39,"precisionRecall":{"success":{"recall":0.92307692307692313,"precision":1}}},"roses":{"count":38,"precisionRecall":{"success":{"recall":0.92105263157894735,"precision":0.97222222222222221}}},"sunflowers":{"count":28,"precisionRecall":{"success":{"recall":1,"precision":0.96551724137931039}}},"tulips":{"count":37,"precisionRecall":{"success":{"recall":0.94594594594594594,"precision":0.89743589743589747}}},"dandelion":{"count":43,"precisionRecall":{"success":{"recall":0.97674418604651159,"precision":0.93333333333333335}}}},"accuracy":0.9513513513513514}}},"evaluationEntities":[{"id":"cd7cc279-7473-4879-a34b-ab345464846f","createdDate":"2023-03-22T15:10:54Z","dataResult":{},"analysedDataType":"none"}]},"activityEntities":["trainingFinished",[{"id":"0447FAAA-408F-430D-AE49-111BF5249125","title":"Training Completed","createdDate":"2023-03-22T15:10:38Z","event":"trainingFinished","subtitle":"25 iterations"}],"trainingDataAdded",[{"id":"467B06D4-1501-499C-A72E-A5186AACD92A","title":"Training Data Added","createdDate":"2023-03-22T15:07:14Z","event":"trainingDataAdded","subtitle":"flower_photos"}],"trainingStarted",[{"id":"052D376F-8343-4956-BA13-51C9FF77A351","title":"Training Started","createdDate":"2023-03-22T15:08:54Z","event":"trainingStarted","subtitle":"25 iterations"}],"experimentCreated",[{"id":"29D591FA-650B-4607-BEB0-95B2D4641BF4","title":"Model Source Created","createdDate":"2023-03-22T15:02:05Z","event":"experimentCreated","subtitle":"ImageClassification 1"}]],"evaluationState":"uninitialized","title":"ImageClassification 1","evaluationEntity":{"id":"52999f13-c536-4997-8516-de9c887872ef","analysedDataType":"none","dataResult":{}},"snapshotRole":{"withoutSnapshots":0},"contentDataResult":{"createdDate":"2023-03-22T15:02:05Z"},"modifiedDate":"2023-03-22T15:10:54Z","preferredFilename":"ImageClassification 1"} \ No newline at end of file diff --git a/CoreML/ImageClassification/ImageClassification.mlproj/Models/ImageClassification 1.mlmodel b/CoreML/ImageClassification/ImageClassification.mlproj/Models/ImageClassification 1.mlmodel new file mode 100644 index 0000000..b697ba9 Binary files /dev/null and b/CoreML/ImageClassification/ImageClassification.mlproj/Models/ImageClassification 1.mlmodel differ diff --git a/CoreML/ImageClassification/ImageClassification.mlproj/Project.json b/CoreML/ImageClassification/ImageClassification.mlproj/Project.json new file mode 100644 index 0000000..219d8e0 --- /dev/null +++ b/CoreML/ImageClassification/ImageClassification.mlproj/Project.json @@ -0,0 +1 @@ +{"id":"1BF914EB-845D-439F-A7CB-298AE46E07B8","projectName":"ImageClassification","description":"","version":"1.1","authorName":"CommitGuy","createdDate":"2023-03-22T15:02:05Z","license":"","activityEntities":["projectCreated",[{"id":"94EE01E7-21D6-41ED-A1EC-3AB3AD55CAB9","title":"Project Created","createdDate":"2023-03-22T15:02:05Z","event":"projectCreated","subtitle":"ImageClassification"}]],"taskType":"imageClassifier","title":"Image Classification","location":"","versionErrorTitle":"Project file cannot be opened.","modifiedDate":"2023-03-22T15:02:05Z","settingsEntity":{"snapshotOnExtendTraining":true,"snapshotOnResumeTraining":false},"versionErrorSubtitle":"You need a newer version of Create ML to open this file. Download the latest version."} \ No newline at end of file diff --git a/CoreML/README.md b/CoreML/README.md new file mode 100644 index 0000000..e97792b --- /dev/null +++ b/CoreML/README.md @@ -0,0 +1,37 @@ +# CreateML & CoreML + +## CreateML +- Xcode를 실행 후 mouse 오른쪽 클릭 후 CreateML을 실행 + +
+ +- Template 선택 + +
+ +- Modeling 편집기 + +
+ + - Settings 탭에서 Training Data 를 설정해 Training 탭에서 학습 시킬 수 있음. + - Evaluation 탭에서 학습 후 결과를 확인 할 수 있으며 + - Preview 탭에서 테스트 해볼 수 있음 + - Output 탭에서 **[Get]**을 클릭하여 Model을 뽑을 수 있음 + +CreateML은 전이 학습을 사용하기 때문에 모델을 완전히 처음부터 학습시키는 게 아니며, 그 덕에 모델을 빠르고 효율적으로 학습시키게 됨 + +## CoreML +- MLModel 파일을 추가하기 위해 Xcode 프로젝트 창에 mlmodel을 Drag & Drop 함 + +- Utilities 탭에서 모델을 암호화하고 클라우드 배포를 설정할 수 있음 +
+ +### CoreML 추론 +CoreML을 사용하면 비동기 추론이 가능해야 하는데 그렇지 못할 경우 모델 추론에서 병목 현상이 일어날 수 있음.
+CoreML은 모바일 API로 설계되어 모델 추론하는 동안 앱이 멈추는 사용자 경험을 제공하지 않도록 하는 패턴을 사용 + +
+ +비동기 작업으로 만들기 위해 디스패치 큐(Dispatch Queue)에서 핸들러를 생성 +
+CoreML은 CIImage, CGImage, CVPixelBuffer, Data를 입력으로 받을 수 있음 \ No newline at end of file diff --git a/CoreML/StableDiffusion/README.md b/CoreML/StableDiffusion/README.md new file mode 100644 index 0000000..5f94c82 --- /dev/null +++ b/CoreML/StableDiffusion/README.md @@ -0,0 +1 @@ +# StableDiffusion diff --git a/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img.xcodeproj/project.pbxproj b/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img.xcodeproj/project.pbxproj new file mode 100644 index 0000000..bbf8222 --- /dev/null +++ b/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img.xcodeproj/project.pbxproj @@ -0,0 +1,403 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 56; + objects = { + +/* Begin PBXBuildFile section */ + 7848E37F29CBEF4B0034907E /* SD2Img2ImgApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7848E37E29CBEF4B0034907E /* SD2Img2ImgApp.swift */; }; + 7848E38129CBEF4B0034907E /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7848E38029CBEF4B0034907E /* ContentView.swift */; }; + 7848E38329CBEF4C0034907E /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7848E38229CBEF4C0034907E /* Assets.xcassets */; }; + 7848E38629CBEF4C0034907E /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7848E38529CBEF4C0034907E /* Preview Assets.xcassets */; }; + 784E31DB29CBF34B00DC6519 /* StableDiffusion in Frameworks */ = {isa = PBXBuildFile; productRef = 784E31DA29CBF34B00DC6519 /* StableDiffusion */; }; + 784E31DE29CC968C00DC6519 /* ImageGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 784E31DD29CC968C00DC6519 /* ImageGenerator.swift */; }; + 784E31E129CCA4EE00DC6519 /* ImageToImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 784E31E029CCA4EE00DC6519 /* ImageToImageView.swift */; }; + 784E31E329CD247D00DC6519 /* PromptView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 784E31E229CD247D00DC6519 /* PromptView.swift */; }; + 784E31E529CD35AA00DC6519 /* CoreMLModels in Resources */ = {isa = PBXBuildFile; fileRef = 784E31E429CD35AA00DC6519 /* CoreMLModels */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 7848E37B29CBEF4B0034907E /* SD2Img2Img.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SD2Img2Img.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 7848E37E29CBEF4B0034907E /* SD2Img2ImgApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SD2Img2ImgApp.swift; sourceTree = ""; }; + 7848E38029CBEF4B0034907E /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; + 7848E38229CBEF4C0034907E /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 7848E38529CBEF4C0034907E /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; + 784E31DD29CC968C00DC6519 /* ImageGenerator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageGenerator.swift; sourceTree = ""; }; + 784E31E029CCA4EE00DC6519 /* ImageToImageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageToImageView.swift; sourceTree = ""; }; + 784E31E229CD247D00DC6519 /* PromptView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PromptView.swift; sourceTree = ""; }; + 784E31E429CD35AA00DC6519 /* CoreMLModels */ = {isa = PBXFileReference; lastKnownFileType = folder; path = CoreMLModels; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 7848E37829CBEF4B0034907E /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 784E31DB29CBF34B00DC6519 /* StableDiffusion in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 7848E37229CBEF4B0034907E = { + isa = PBXGroup; + children = ( + 7848E37D29CBEF4B0034907E /* SD2Img2Img */, + 7848E37C29CBEF4B0034907E /* Products */, + ); + sourceTree = ""; + }; + 7848E37C29CBEF4B0034907E /* Products */ = { + isa = PBXGroup; + children = ( + 7848E37B29CBEF4B0034907E /* SD2Img2Img.app */, + ); + name = Products; + sourceTree = ""; + }; + 7848E37D29CBEF4B0034907E /* SD2Img2Img */ = { + isa = PBXGroup; + children = ( + 784E31E429CD35AA00DC6519 /* CoreMLModels */, + 784E31DF29CCA4D500DC6519 /* Views */, + 784E31DC29CC967700DC6519 /* SD */, + 7848E37E29CBEF4B0034907E /* SD2Img2ImgApp.swift */, + 7848E38029CBEF4B0034907E /* ContentView.swift */, + 7848E38229CBEF4C0034907E /* Assets.xcassets */, + 7848E38429CBEF4C0034907E /* Preview Content */, + ); + path = SD2Img2Img; + sourceTree = ""; + }; + 7848E38429CBEF4C0034907E /* Preview Content */ = { + isa = PBXGroup; + children = ( + 7848E38529CBEF4C0034907E /* Preview Assets.xcassets */, + ); + path = "Preview Content"; + sourceTree = ""; + }; + 784E31DC29CC967700DC6519 /* SD */ = { + isa = PBXGroup; + children = ( + 784E31DD29CC968C00DC6519 /* ImageGenerator.swift */, + ); + path = SD; + sourceTree = ""; + }; + 784E31DF29CCA4D500DC6519 /* Views */ = { + isa = PBXGroup; + children = ( + 784E31E029CCA4EE00DC6519 /* ImageToImageView.swift */, + 784E31E229CD247D00DC6519 /* PromptView.swift */, + ); + path = Views; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 7848E37A29CBEF4B0034907E /* SD2Img2Img */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7848E38929CBEF4C0034907E /* Build configuration list for PBXNativeTarget "SD2Img2Img" */; + buildPhases = ( + 7848E37729CBEF4B0034907E /* Sources */, + 7848E37829CBEF4B0034907E /* Frameworks */, + 7848E37929CBEF4B0034907E /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = SD2Img2Img; + packageProductDependencies = ( + 784E31DA29CBF34B00DC6519 /* StableDiffusion */, + ); + productName = SD2Img2Img; + productReference = 7848E37B29CBEF4B0034907E /* SD2Img2Img.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 7848E37329CBEF4B0034907E /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = 1; + LastSwiftUpdateCheck = 1420; + LastUpgradeCheck = 1420; + TargetAttributes = { + 7848E37A29CBEF4B0034907E = { + CreatedOnToolsVersion = 14.2; + }; + }; + }; + buildConfigurationList = 7848E37629CBEF4B0034907E /* Build configuration list for PBXProject "SD2Img2Img" */; + compatibilityVersion = "Xcode 14.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 7848E37229CBEF4B0034907E; + packageReferences = ( + 784E31D929CBF34B00DC6519 /* XCRemoteSwiftPackageReference "ml-stable-diffusion" */, + ); + productRefGroup = 7848E37C29CBEF4B0034907E /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 7848E37A29CBEF4B0034907E /* SD2Img2Img */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 7848E37929CBEF4B0034907E /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 784E31E529CD35AA00DC6519 /* CoreMLModels in Resources */, + 7848E38629CBEF4C0034907E /* Preview Assets.xcassets in Resources */, + 7848E38329CBEF4C0034907E /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 7848E37729CBEF4B0034907E /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7848E38129CBEF4B0034907E /* ContentView.swift in Sources */, + 784E31E129CCA4EE00DC6519 /* ImageToImageView.swift in Sources */, + 784E31DE29CC968C00DC6519 /* ImageGenerator.swift in Sources */, + 784E31E329CD247D00DC6519 /* PromptView.swift in Sources */, + 7848E37F29CBEF4B0034907E /* SD2Img2ImgApp.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 7848E38729CBEF4C0034907E /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 16.2; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 7848E38829CBEF4C0034907E /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 16.2; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 7848E38A29CBEF4C0034907E /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_ASSET_PATHS = "\"SD2Img2Img/Preview Content\""; + DEVELOPMENT_TEAM = KYV3CSY2F3; + ENABLE_PREVIEWS = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UILaunchScreen_Generation = YES; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.commitguy.img2imgsd.SD2Img2Img; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 7848E38B29CBEF4C0034907E /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_ASSET_PATHS = "\"SD2Img2Img/Preview Content\""; + DEVELOPMENT_TEAM = KYV3CSY2F3; + ENABLE_PREVIEWS = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UILaunchScreen_Generation = YES; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.commitguy.img2imgsd.SD2Img2Img; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 7848E37629CBEF4B0034907E /* Build configuration list for PBXProject "SD2Img2Img" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7848E38729CBEF4C0034907E /* Debug */, + 7848E38829CBEF4C0034907E /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 7848E38929CBEF4C0034907E /* Build configuration list for PBXNativeTarget "SD2Img2Img" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7848E38A29CBEF4C0034907E /* Debug */, + 7848E38B29CBEF4C0034907E /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + +/* Begin XCRemoteSwiftPackageReference section */ + 784E31D929CBF34B00DC6519 /* XCRemoteSwiftPackageReference "ml-stable-diffusion" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/apple/ml-stable-diffusion.git"; + requirement = { + branch = main; + kind = branch; + }; + }; +/* End XCRemoteSwiftPackageReference section */ + +/* Begin XCSwiftPackageProductDependency section */ + 784E31DA29CBF34B00DC6519 /* StableDiffusion */ = { + isa = XCSwiftPackageProductDependency; + package = 784E31D929CBF34B00DC6519 /* XCRemoteSwiftPackageReference "ml-stable-diffusion" */; + productName = StableDiffusion; + }; +/* End XCSwiftPackageProductDependency section */ + }; + rootObject = 7848E37329CBEF4B0034907E /* Project object */; +} diff --git a/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved new file mode 100644 index 0000000..20e07b9 --- /dev/null +++ b/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -0,0 +1,23 @@ +{ + "pins" : [ + { + "identity" : "ml-stable-diffusion", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/ml-stable-diffusion.git", + "state" : { + "branch" : "main", + "revision" : "2c4e9de73c9e723de264356f9563706ea9104212" + } + }, + { + "identity" : "swift-argument-parser", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-argument-parser.git", + "state" : { + "revision" : "fddd1c00396eed152c45a46bea9f47b98e59301d", + "version" : "1.2.0" + } + } + ], + "version" : 2 +} diff --git a/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img.xcodeproj/xcuserdata/hangyojeong.xcuserdatad/xcschemes/xcschememanagement.plist b/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img.xcodeproj/xcuserdata/hangyojeong.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..cda346a --- /dev/null +++ b/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img.xcodeproj/xcuserdata/hangyojeong.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + SD2Img2Img.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img/Assets.xcassets/AccentColor.colorset/Contents.json b/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000..eb87897 --- /dev/null +++ b/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img/Assets.xcassets/AppIcon.appiconset/Contents.json b/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..13613e3 --- /dev/null +++ b/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,13 @@ +{ + "images" : [ + { + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img/Assets.xcassets/Contents.json b/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img/Assets.xcassets/cat_512x512.imageset/Contents.json b/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img/Assets.xcassets/cat_512x512.imageset/Contents.json new file mode 100644 index 0000000..cf21256 --- /dev/null +++ b/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img/Assets.xcassets/cat_512x512.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "cat_512x512.jpg", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img/Assets.xcassets/cat_512x512.imageset/cat_512x512.jpg b/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img/Assets.xcassets/cat_512x512.imageset/cat_512x512.jpg new file mode 100644 index 0000000..bc30c0f Binary files /dev/null and b/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img/Assets.xcassets/cat_512x512.imageset/cat_512x512.jpg differ diff --git a/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img/ContentView.swift b/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img/ContentView.swift new file mode 100644 index 0000000..95bd7d6 --- /dev/null +++ b/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img/ContentView.swift @@ -0,0 +1,25 @@ +// +// ContentView.swift +// SD2Img2Img +// +// Created by HanGyo Jeong on 2023/03/23. +// + +import SwiftUI + +struct ContentView: View { + @StateObject var imageGenerator = ImageGenerator() + + var body: some View { + VStack { + ImageToImageView(imageGenerator: imageGenerator) + } + .padding() + } +} + +struct ContentView_Previews: PreviewProvider { + static var previews: some View { + ContentView() + } +} diff --git a/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img/Preview Content/Preview Assets.xcassets/Contents.json b/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img/Preview Content/Preview Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img/Preview Content/Preview Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img/SD/ImageGenerator.swift b/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img/SD/ImageGenerator.swift new file mode 100644 index 0000000..3287d62 --- /dev/null +++ b/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img/SD/ImageGenerator.swift @@ -0,0 +1,167 @@ +// +// ImageGenerator.swift +// SD2Img2Img +// +// Created by HanGyo Jeong on 2023/03/23. +// + +import Foundation +import StableDiffusion +import CoreML +import UIKit + +// @MainActor: MainThread에서의 동작을 보장 +@MainActor +final class ImageGenerator: ObservableObject { + + struct GenerationParameter { + var prompt: String + var negativePrompt: String + var guidanceScale: Float + var seed: Int + var stepCount: Int + var imageCount: Int + var disableSafety: Bool + var startImage: CGImage? + var strength: Float = 1.0 + } + + struct GeneratedImage: Identifiable { + let id: UUID = UUID() + let uiImage: UIImage + } + + struct GeneratedImages { + let prompt: String + let negativePrompt: String + let guidanceScale: Float + let imageCount: Int + let stepCount: Int + let seed: Int + let disableSafety: Bool + let images: [GeneratedImage] + } + + enum GenerationState: Equatable { + case idle + case generating(progressStep: Int) + static func == (lhs: Self, rhs: Self) -> Bool { + switch(lhs, rhs){ + case (.idle, idle): + return true + case (.generating(let step1), .generating(let step2)): + if step1 == step2 { + return true + } else { + return false + } + default: + return false + } + + } + } + + @Published var generationState: GenerationState = .idle + @Published var generatedImages: GeneratedImages? + @Published var isPipelineCreated = false + + private var sdPipeline: StableDiffusionPipeline? + + init() { + + } + + // MARK: Setter Funcs + func setState(_ state: GenerationState) { + generationState = state + } + + func setPipeline(_ pipeline: StableDiffusionPipeline) { + sdPipeline = pipeline + isPipelineCreated = true + } + + func setGeneratedImages(_ images: GeneratedImages) { + generatedImages = images + } + + // swiftlint:disable function_body_length + func generateImages(_ parameter: GenerationParameter) { + guard generationState == .idle else { return } + // Runs the given nonthrowing operation asynchronously as part of a new top-level task. + Task.detached(priority: .high) { + await self.setState(.generating(progressStep: 0)) + + if await self.sdPipeline == nil { + guard let path = Bundle.main.path(forResource: "CoreMLModels", ofType: nil, inDirectory: nil) else { + fatalError("Fatal error: failed to find the CoreML Models.") + } + let resourceURL = URL(fileURLWithPath: path) + + let config = MLModelConfiguration() + + /* + [Note] + Specifying config.computeUnits is not necessary. Use the default + + Specifying config.computeUnits = .cpuAndNeuralEngine will cause an internal fatal error on devices. + config.computeUnits = .cpuAndNeuralEngine + + Specifying config.computeUnits = .cpuAndGPU works on device with no reason + if !ProcessInfo.processInfo.isiOSAppOnMac { + config.computeUnits = .cpuAndGPU + } + */ + + // ReduceMemory option was added at v0.1.0 + // On iOS, the reduceMemory option should be set to true + let reduceMemory = ProcessInfo.processInfo.isiOSAppOnMac ? false:true + if let pipeline = try? StableDiffusionPipeline(resourcesAt: resourceURL, configuration: config, reduceMemory: reduceMemory) { + await self.setPipeline(pipeline) + } else { + fatalError("Fatal error: failed to create the Stable-Diffusion-Pipeline.") + } + } + + if let sdPipeline = await self.sdPipeline { + do { + // Will Add ProgressHandle + + var configuration = StableDiffusionPipeline.Configuration(prompt: parameter.prompt) + configuration.negativePrompt = parameter.negativePrompt + configuration.imageCount = parameter.imageCount + configuration.stepCount = parameter.stepCount + configuration.seed = UInt32(parameter.seed) + configuration.guidanceScale = parameter.guidanceScale + configuration.disableSafety = parameter.disableSafety + + configuration.startingImage = parameter.startImage + configuration.strength = parameter.strength + + let cgImages = try sdPipeline.generateImages(configuration: configuration) + print("Images were Generated") + + let uiImages = cgImages.compactMap { image in + if let cgImage = image { + return UIImage(cgImage: cgImage) + } else { + return nil + } + } + + await self.setGeneratedImages(GeneratedImages(prompt: parameter.prompt, + negativePrompt: parameter.negativePrompt, + guidanceScale: parameter.guidanceScale, + imageCount: parameter.imageCount, + stepCount: parameter.stepCount, + seed: parameter.seed, + disableSafety: parameter.disableSafety, + images: uiImages.map{ uiImage in GeneratedImage(uiImage: uiImage) })) + } catch { + print("Failed to generate images.") + } + } + } + } +} diff --git a/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img/SD2Img2ImgApp.swift b/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img/SD2Img2ImgApp.swift new file mode 100644 index 0000000..d670822 --- /dev/null +++ b/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img/SD2Img2ImgApp.swift @@ -0,0 +1,17 @@ +// +// SD2Img2ImgApp.swift +// SD2Img2Img +// +// Created by HanGyo Jeong on 2023/03/23. +// + +import SwiftUI + +@main +struct SD2Img2ImgApp: App { + var body: some Scene { + WindowGroup { + ContentView() + } + } +} diff --git a/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img/Views/ImageToImageView.swift b/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img/Views/ImageToImageView.swift new file mode 100644 index 0000000..85bd02a --- /dev/null +++ b/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img/Views/ImageToImageView.swift @@ -0,0 +1,60 @@ +// +// ImageToImageView.swift +// SD2Img2Img +// +// Created by HanGyo Jeong on 2023/03/24. +// + +import SwiftUI + +struct ImageToImageView: View { + static let prompt = "happy smile pretty cat" + static let negativePrompt = +""" +lowers, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, +cropped, worst quality, low quality, normal quality, jpeg artifacts, blurry, multiple legs, malformation +""" + static let startImageName = "cat_512x512" + + @ObservedObject var imageGenerator: ImageGenerator + @State private var generationParameter = ImageGenerator.GenerationParameter(prompt: prompt, + negativePrompt: negativePrompt, + guidanceScale: 8.0, + seed: 1_000_000, + stepCount: 20, + imageCount: 1, + disableSafety: false, + startImage: UIImage(named:startImageName)?.cgImage, + strength: 0.5) + + var body: some View { + ScrollView { + VStack { + Text("Image to Image").font(.title3).bold().padding(6) + Text("Sample App using apple/ml-stable-diffusion").foregroundColor(.secondary).font(.caption).padding(.bottom) + + Image(ImageToImageView.startImageName).resizable().scaledToFit().frame(height:200) + + PromptView(parameter: $generationParameter).disabled(imageGenerator.generationState != .idle) + + if imageGenerator.generationState == .idle { + Button(action: generate) { + Text("Generate").font(.title) + }.buttonStyle(.borderedProminent) + } else { + ProgressView() + } + + if let generatedImages = imageGenerator.generatedImages { + ForEach(generatedImages.images) { + Image(uiImage: $0.uiImage).resizable().scaledToFit() + } + } + } + }.padding() + } + + func generate() { + imageGenerator.generateImages(generationParameter) + } +} diff --git a/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img/Views/PromptView.swift b/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img/Views/PromptView.swift new file mode 100644 index 0000000..6cbcf69 --- /dev/null +++ b/CoreML/StableDiffusion/SD2Img2Img/SD2Img2Img/Views/PromptView.swift @@ -0,0 +1,71 @@ +// +// PromptView.swift +// SD2Img2Img +// +// Created by HanGyo Jeong on 2023/03/24. +// + +import SwiftUI + +struct PromptView: View { + @Binding var parameter: ImageGenerator.GenerationParameter + + var body: some View { + VStack { + HStack{ + Text("Prompt:"); + Spacer() + } + TextField("Prompt:", text: $parameter.prompt).textFieldStyle(RoundedBorderTextFieldStyle()) + + HStack { + Text("Negative Prompt:"); + Spacer() + } + TextField("Negative Prompt:", text: $parameter.prompt).textFieldStyle(RoundedBorderTextFieldStyle()) + + Stepper(value: $parameter.guidanceScale, in: 0.0...40.0, step: 0.5) { + Text("Guidance scale: \(parameter.guidanceScale, specifier: "%.1f")") + } + Stepper(value: $parameter.imageCount, in: 1...10) { + Text("Image Count: \(parameter.imageCount)") + } + Stepper(value: $parameter.stepCount, in: 1...100) { + Text("Iteration Steps: \(parameter.stepCount)") + } + + HStack{ + Text("Seed:"); Spacer() + } + TextField("Seed number (0 ... 4_294_967_295)", value: $parameter.seed, formatter: NumberFormatter()) + .textFieldStyle(RoundedBorderTextFieldStyle()) + .onSubmit { + if parameter.seed < 0 { + parameter.seed = 0 + } else if parameter.seed > UInt32.max { + parameter.seed = Int(UInt32.max) + } else { + // Do Nothing + } + } + + Stepper(value: $parameter.strength, in: 0.0...0.9, step: 0.1) { + Text("Strength: \(parameter.strength, specifier: "%.1f")") + } + }.padding() + } +} + +//struct PromptView_Previews: PreviewProvider { +// @State static var param = ImageGenerator.GenerationParameter(prompt: "a prompt", +// negativePrompt: "a negative prompt", +// guidanceScale: 0.5, +// seed: 1_000, +// stepCount: 20, +// imageCount: 1, +// disableSafety: false, +// strength: 0.5) +// static var previews: some View { +// PromptView(parameter: $param) +// } +//} diff --git a/CoreML/Swift/FlowerClassification/FlowerClassification.xcodeproj/project.pbxproj b/CoreML/Swift/FlowerClassification/FlowerClassification.xcodeproj/project.pbxproj new file mode 100644 index 0000000..744d6a3 --- /dev/null +++ b/CoreML/Swift/FlowerClassification/FlowerClassification.xcodeproj/project.pbxproj @@ -0,0 +1,367 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 56; + objects = { + +/* Begin PBXBuildFile section */ + 7840B1B329CB543B00CDC138 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7840B1B229CB543B00CDC138 /* AppDelegate.swift */; }; + 7840B1B529CB543B00CDC138 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7840B1B429CB543B00CDC138 /* SceneDelegate.swift */; }; + 7840B1B729CB543B00CDC138 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7840B1B629CB543B00CDC138 /* ViewController.swift */; }; + 7840B1BA29CB543B00CDC138 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 7840B1B829CB543B00CDC138 /* Main.storyboard */; }; + 7840B1BC29CB543C00CDC138 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7840B1BB29CB543C00CDC138 /* Assets.xcassets */; }; + 7840B1BF29CB543C00CDC138 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 7840B1BD29CB543C00CDC138 /* LaunchScreen.storyboard */; }; + 7840B1C729CB545100CDC138 /* flowers.mlmodel in Sources */ = {isa = PBXBuildFile; fileRef = 7840B1C629CB545000CDC138 /* flowers.mlmodel */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 7840B1AF29CB543B00CDC138 /* FlowerClassification.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = FlowerClassification.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 7840B1B229CB543B00CDC138 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 7840B1B429CB543B00CDC138 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; + 7840B1B629CB543B00CDC138 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; + 7840B1B929CB543B00CDC138 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 7840B1BB29CB543C00CDC138 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 7840B1BE29CB543C00CDC138 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 7840B1C029CB543C00CDC138 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 7840B1C629CB545000CDC138 /* flowers.mlmodel */ = {isa = PBXFileReference; lastKnownFileType = file.mlmodel; name = flowers.mlmodel; path = ../../../flowers.mlmodel; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 7840B1AC29CB543B00CDC138 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 7840B1A629CB543B00CDC138 = { + isa = PBXGroup; + children = ( + 7840B1B129CB543B00CDC138 /* FlowerClassification */, + 7840B1B029CB543B00CDC138 /* Products */, + ); + sourceTree = ""; + }; + 7840B1B029CB543B00CDC138 /* Products */ = { + isa = PBXGroup; + children = ( + 7840B1AF29CB543B00CDC138 /* FlowerClassification.app */, + ); + name = Products; + sourceTree = ""; + }; + 7840B1B129CB543B00CDC138 /* FlowerClassification */ = { + isa = PBXGroup; + children = ( + 7840B1C629CB545000CDC138 /* flowers.mlmodel */, + 7840B1B229CB543B00CDC138 /* AppDelegate.swift */, + 7840B1B429CB543B00CDC138 /* SceneDelegate.swift */, + 7840B1B629CB543B00CDC138 /* ViewController.swift */, + 7840B1B829CB543B00CDC138 /* Main.storyboard */, + 7840B1BB29CB543C00CDC138 /* Assets.xcassets */, + 7840B1BD29CB543C00CDC138 /* LaunchScreen.storyboard */, + 7840B1C029CB543C00CDC138 /* Info.plist */, + ); + path = FlowerClassification; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 7840B1AE29CB543B00CDC138 /* FlowerClassification */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7840B1C329CB543C00CDC138 /* Build configuration list for PBXNativeTarget "FlowerClassification" */; + buildPhases = ( + 7840B1AB29CB543B00CDC138 /* Sources */, + 7840B1AC29CB543B00CDC138 /* Frameworks */, + 7840B1AD29CB543B00CDC138 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = FlowerClassification; + productName = FlowerClassification; + productReference = 7840B1AF29CB543B00CDC138 /* FlowerClassification.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 7840B1A729CB543B00CDC138 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = 1; + LastSwiftUpdateCheck = 1420; + LastUpgradeCheck = 1420; + TargetAttributes = { + 7840B1AE29CB543B00CDC138 = { + CreatedOnToolsVersion = 14.2; + }; + }; + }; + buildConfigurationList = 7840B1AA29CB543B00CDC138 /* Build configuration list for PBXProject "FlowerClassification" */; + compatibilityVersion = "Xcode 14.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 7840B1A629CB543B00CDC138; + productRefGroup = 7840B1B029CB543B00CDC138 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 7840B1AE29CB543B00CDC138 /* FlowerClassification */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 7840B1AD29CB543B00CDC138 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7840B1BF29CB543C00CDC138 /* LaunchScreen.storyboard in Resources */, + 7840B1BC29CB543C00CDC138 /* Assets.xcassets in Resources */, + 7840B1BA29CB543B00CDC138 /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 7840B1AB29CB543B00CDC138 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7840B1B729CB543B00CDC138 /* ViewController.swift in Sources */, + 7840B1C729CB545100CDC138 /* flowers.mlmodel in Sources */, + 7840B1B329CB543B00CDC138 /* AppDelegate.swift in Sources */, + 7840B1B529CB543B00CDC138 /* SceneDelegate.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 7840B1B829CB543B00CDC138 /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 7840B1B929CB543B00CDC138 /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 7840B1BD29CB543C00CDC138 /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 7840B1BE29CB543C00CDC138 /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 7840B1C129CB543C00CDC138 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 16.2; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 7840B1C229CB543C00CDC138 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 16.2; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 7840B1C429CB543C00CDC138 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = KYV3CSY2F3; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = FlowerClassification/Info.plist; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; + INFOPLIST_KEY_UIMainStoryboardFile = Main; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.commitguy.flowerclassification.FlowerClassification; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 7840B1C529CB543C00CDC138 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = KYV3CSY2F3; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = FlowerClassification/Info.plist; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; + INFOPLIST_KEY_UIMainStoryboardFile = Main; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.commitguy.flowerclassification.FlowerClassification; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 7840B1AA29CB543B00CDC138 /* Build configuration list for PBXProject "FlowerClassification" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7840B1C129CB543C00CDC138 /* Debug */, + 7840B1C229CB543C00CDC138 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 7840B1C329CB543C00CDC138 /* Build configuration list for PBXNativeTarget "FlowerClassification" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7840B1C429CB543C00CDC138 /* Debug */, + 7840B1C529CB543C00CDC138 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 7840B1A729CB543B00CDC138 /* Project object */; +} diff --git a/CoreML/Swift/FlowerClassification/FlowerClassification.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/CoreML/Swift/FlowerClassification/FlowerClassification.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/CoreML/Swift/FlowerClassification/FlowerClassification.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/CoreML/Swift/FlowerClassification/FlowerClassification.xcodeproj/xcuserdata/hangyojeong.xcuserdatad/xcschemes/xcschememanagement.plist b/CoreML/Swift/FlowerClassification/FlowerClassification.xcodeproj/xcuserdata/hangyojeong.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..e964d1e --- /dev/null +++ b/CoreML/Swift/FlowerClassification/FlowerClassification.xcodeproj/xcuserdata/hangyojeong.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + FlowerClassification.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/CoreML/Swift/FlowerClassification/FlowerClassification/AppDelegate.swift b/CoreML/Swift/FlowerClassification/FlowerClassification/AppDelegate.swift new file mode 100644 index 0000000..073492d --- /dev/null +++ b/CoreML/Swift/FlowerClassification/FlowerClassification/AppDelegate.swift @@ -0,0 +1,36 @@ +// +// AppDelegate.swift +// FlowerClassification +// +// Created by HanGyo Jeong on 2023/03/23. +// + +import UIKit + +@main +class AppDelegate: UIResponder, UIApplicationDelegate { + + + + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + // Override point for customization after application launch. + return true + } + + // MARK: UISceneSession Lifecycle + + func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration { + // Called when a new scene session is being created. + // Use this method to select a configuration to create the new scene with. + return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) + } + + func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set) { + // Called when the user discards a scene session. + // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions. + // Use this method to release any resources that were specific to the discarded scenes, as they will not return. + } + + +} + diff --git a/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/1.imageset/5673728_71b8cb57eb.jpg b/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/1.imageset/5673728_71b8cb57eb.jpg new file mode 100644 index 0000000..2cb83fe Binary files /dev/null and b/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/1.imageset/5673728_71b8cb57eb.jpg differ diff --git a/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/1.imageset/Contents.json b/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/1.imageset/Contents.json new file mode 100644 index 0000000..bb0bc0d --- /dev/null +++ b/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/1.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "5673728_71b8cb57eb.jpg", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/2.imageset/8684108_a85764b22d_n.jpg b/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/2.imageset/8684108_a85764b22d_n.jpg new file mode 100644 index 0000000..bbdff1c Binary files /dev/null and b/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/2.imageset/8684108_a85764b22d_n.jpg differ diff --git a/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/2.imageset/Contents.json b/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/2.imageset/Contents.json new file mode 100644 index 0000000..e788569 --- /dev/null +++ b/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/2.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "8684108_a85764b22d_n.jpg", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/3.imageset/10919961_0af657c4e8.jpg b/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/3.imageset/10919961_0af657c4e8.jpg new file mode 100644 index 0000000..6db67f0 Binary files /dev/null and b/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/3.imageset/10919961_0af657c4e8.jpg differ diff --git a/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/3.imageset/Contents.json b/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/3.imageset/Contents.json new file mode 100644 index 0000000..d894938 --- /dev/null +++ b/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/3.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "10919961_0af657c4e8.jpg", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/4.imageset/11746276_de3dec8201.jpg b/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/4.imageset/11746276_de3dec8201.jpg new file mode 100644 index 0000000..55297ed Binary files /dev/null and b/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/4.imageset/11746276_de3dec8201.jpg differ diff --git a/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/4.imageset/Contents.json b/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/4.imageset/Contents.json new file mode 100644 index 0000000..902a179 --- /dev/null +++ b/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/4.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "11746276_de3dec8201.jpg", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/5.imageset/26254755_1bfc494ef1_n.jpg b/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/5.imageset/26254755_1bfc494ef1_n.jpg new file mode 100644 index 0000000..46141a0 Binary files /dev/null and b/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/5.imageset/26254755_1bfc494ef1_n.jpg differ diff --git a/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/5.imageset/Contents.json b/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/5.imageset/Contents.json new file mode 100644 index 0000000..7fb5041 --- /dev/null +++ b/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/5.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "26254755_1bfc494ef1_n.jpg", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/6.imageset/123128873_546b8b7355_n.jpg b/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/6.imageset/123128873_546b8b7355_n.jpg new file mode 100644 index 0000000..8106451 Binary files /dev/null and b/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/6.imageset/123128873_546b8b7355_n.jpg differ diff --git a/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/6.imageset/Contents.json b/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/6.imageset/Contents.json new file mode 100644 index 0000000..2e56cff --- /dev/null +++ b/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/6.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "123128873_546b8b7355_n.jpg", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/AccentColor.colorset/Contents.json b/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000..eb87897 --- /dev/null +++ b/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/AppIcon.appiconset/Contents.json b/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..13613e3 --- /dev/null +++ b/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,13 @@ +{ + "images" : [ + { + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/Contents.json b/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/CoreML/Swift/FlowerClassification/FlowerClassification/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/CoreML/Swift/FlowerClassification/FlowerClassification/Base.lproj/LaunchScreen.storyboard b/CoreML/Swift/FlowerClassification/FlowerClassification/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..865e932 --- /dev/null +++ b/CoreML/Swift/FlowerClassification/FlowerClassification/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CoreML/Swift/FlowerClassification/FlowerClassification/Base.lproj/Main.storyboard b/CoreML/Swift/FlowerClassification/FlowerClassification/Base.lproj/Main.storyboard new file mode 100644 index 0000000..8b7c641 --- /dev/null +++ b/CoreML/Swift/FlowerClassification/FlowerClassification/Base.lproj/Main.storyboard @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CoreML/Swift/FlowerClassification/FlowerClassification/Info.plist b/CoreML/Swift/FlowerClassification/FlowerClassification/Info.plist new file mode 100644 index 0000000..dd3c9af --- /dev/null +++ b/CoreML/Swift/FlowerClassification/FlowerClassification/Info.plist @@ -0,0 +1,25 @@ + + + + + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneConfigurationName + Default Configuration + UISceneDelegateClassName + $(PRODUCT_MODULE_NAME).SceneDelegate + UISceneStoryboardFile + Main + + + + + + diff --git a/CoreML/Swift/FlowerClassification/FlowerClassification/SceneDelegate.swift b/CoreML/Swift/FlowerClassification/FlowerClassification/SceneDelegate.swift new file mode 100644 index 0000000..69c5870 --- /dev/null +++ b/CoreML/Swift/FlowerClassification/FlowerClassification/SceneDelegate.swift @@ -0,0 +1,52 @@ +// +// SceneDelegate.swift +// FlowerClassification +// +// Created by HanGyo Jeong on 2023/03/23. +// + +import UIKit + +class SceneDelegate: UIResponder, UIWindowSceneDelegate { + + var window: UIWindow? + + + func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { + // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. + // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. + // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead). + guard let _ = (scene as? UIWindowScene) else { return } + } + + func sceneDidDisconnect(_ scene: UIScene) { + // Called as the scene is being released by the system. + // This occurs shortly after the scene enters the background, or when its session is discarded. + // Release any resources associated with this scene that can be re-created the next time the scene connects. + // The scene may re-connect later, as its session was not necessarily discarded (see `application:didDiscardSceneSessions` instead). + } + + func sceneDidBecomeActive(_ scene: UIScene) { + // Called when the scene has moved from an inactive state to an active state. + // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. + } + + func sceneWillResignActive(_ scene: UIScene) { + // Called when the scene will move from an active state to an inactive state. + // This may occur due to temporary interruptions (ex. an incoming phone call). + } + + func sceneWillEnterForeground(_ scene: UIScene) { + // Called as the scene transitions from the background to the foreground. + // Use this method to undo the changes made on entering the background. + } + + func sceneDidEnterBackground(_ scene: UIScene) { + // Called as the scene transitions from the foreground to the background. + // Use this method to save data, release shared resources, and store enough scene-specific state information + // to restore the scene back to its current state. + } + + +} + diff --git a/CoreML/Swift/FlowerClassification/FlowerClassification/ViewController.swift b/CoreML/Swift/FlowerClassification/FlowerClassification/ViewController.swift new file mode 100644 index 0000000..7596e4f --- /dev/null +++ b/CoreML/Swift/FlowerClassification/FlowerClassification/ViewController.swift @@ -0,0 +1,100 @@ +// +// ViewController.swift +// FlowerClassification +// +// Created by HanGyo Jeong on 2023/03/23. +// + +import UIKit +import CoreML +import Vision + +class ViewController: UIViewController { + let NUM_CLASSES = 5 + var currentImage = 1 + + @IBOutlet weak var txtOutput: UILabel! + @IBOutlet weak var imageView: UIImageView! + + override func viewDidLoad() { + super.viewDidLoad() + // Do any additional setup after loading the view. + } + + func interpretImage() { + let theImage: UIImage = UIImage(named: String(currentImage))! + getClassification(for: theImage) + } + + @IBAction func prevButton(_ sender: Any) { + currentImage = currentImage - 1 + if currentImage <= 0 { + currentImage = 6 + } + loadImage() + } + @IBAction func nextButton(_ sender: Any) { + currentImage = currentImage + 1 + if currentImage >= 7 { + currentImage = 1 + } + loadImage() + } + @IBAction func classifyButton(_ sender: Any) { + interpretImage() + } + + func loadImage(){ + imageView.image = UIImage(named: String(currentImage)) + } + + func getClassification(for image: UIImage) { + let orientation = CGImagePropertyOrientation(rawValue: UInt32(image.imageOrientation.rawValue))! + guard let ciImage = CIImage(image: image) else { fatalError("...") } + + DispatchQueue.global(qos: .userInitiated).async { + let handler = VNImageRequestHandler(ciImage: ciImage, orientation: orientation) + + do { + try handler.perform([self.classificationRequest]) + } catch { + print("...") + } + } + } + + // VNCoreMLRequest는 내부적으로 모델 초기화를 함 + lazy var classificationRequest: VNCoreMLRequest = { + do { + let model = try VNCoreMLModel.init(for: flowers().model) + let request = VNCoreMLRequest(model: model, completionHandler: { [weak self] request, error in + self?.processResults(for: request, error: error) + }) + request.imageCropAndScaleOption = .centerCrop + return request + } catch { + fatalError("...") + } + }() + + func processResults(for request: VNRequest, error: Error?) { + DispatchQueue.main.async { + guard let results = request.results else { + self.txtOutput.text = "..." + return + } + let classifications = results as! [VNClassificationObservation] + + if classifications.isEmpty { + self.txtOutput.text = "Nothing recognized." + } else { + let topClassifications = classifications.prefix(self.NUM_CLASSES) + let descriptions = topClassifications.map { + classification in return String(format: " (%.2f) %@", classification.confidence, classification.identifier) + } + self.txtOutput.text = "Classification:\n" + descriptions.joined(separator: "\n") + } + } + } +} + diff --git a/CoreML/flowers.mlmodel b/CoreML/flowers.mlmodel new file mode 100644 index 0000000..b697ba9 Binary files /dev/null and b/CoreML/flowers.mlmodel differ diff --git a/CoreML/images/coreml_inference.png b/CoreML/images/coreml_inference.png new file mode 100644 index 0000000..14dc416 Binary files /dev/null and b/CoreML/images/coreml_inference.png differ diff --git a/CoreML/images/createml.png b/CoreML/images/createml.png new file mode 100644 index 0000000..1e21c6d Binary files /dev/null and b/CoreML/images/createml.png differ diff --git a/CoreML/images/createml_template.png b/CoreML/images/createml_template.png new file mode 100644 index 0000000..7ef4f47 Binary files /dev/null and b/CoreML/images/createml_template.png differ diff --git a/CoreML/images/ml_cloud.png b/CoreML/images/ml_cloud.png new file mode 100644 index 0000000..d007074 Binary files /dev/null and b/CoreML/images/ml_cloud.png differ diff --git a/CoreML/images/modeling_editor.png b/CoreML/images/modeling_editor.png new file mode 100644 index 0000000..4c7c8a3 Binary files /dev/null and b/CoreML/images/modeling_editor.png differ diff --git a/Images/dl_simplewholeprocess.png b/Images/dl_simplewholeprocess.png new file mode 100644 index 0000000..5902fdc Binary files /dev/null and b/Images/dl_simplewholeprocess.png differ diff --git a/Python/01_Backpropagation_Theory/Backpropagation_example.png b/Python/01_Backpropagation_Theory/Backpropagation_example.png new file mode 100644 index 0000000..f94c370 Binary files /dev/null and b/Python/01_Backpropagation_Theory/Backpropagation_example.png differ diff --git a/Python/01_Backpropagation_Theory/CompositionFunctionExample.png b/Python/01_Backpropagation_Theory/CompositionFunctionExample.png new file mode 100644 index 0000000..db543af Binary files /dev/null and b/Python/01_Backpropagation_Theory/CompositionFunctionExample.png differ diff --git a/Python/01_Backpropagation_Theory/PropagationAndBack.png b/Python/01_Backpropagation_Theory/PropagationAndBack.png new file mode 100644 index 0000000..fe771a8 Binary files /dev/null and b/Python/01_Backpropagation_Theory/PropagationAndBack.png differ diff --git a/Python/01_Backpropagation_Theory/README.md b/Python/01_Backpropagation_Theory/README.md new file mode 100644 index 0000000..d25d1cd --- /dev/null +++ b/Python/01_Backpropagation_Theory/README.md @@ -0,0 +1,42 @@ +# 역전파 이론 +수치미분을 통해 미분 계산이 가능하지만 수치 미분은 계산 비용과 정확도 면에 문제가 있음. +So, 역전파(backpropagation, 오차역전파법)를 이용하면 미분을 효율적으로 계산할 수 있고 결괏값의 오차도 더 적음
+ + ## 연쇄법칙(Chain Rule) + 연쇄 법칙에 따르면 합성 함수(여러 함수가 연결된 함수)의 미분은 구성 함수 각각을 미분한 후 곱한 것과 같음
+ +
+ + x에 대한 y의 미분은 **"dy/dx = dy/db * db/da * da/dx"** 로 표현할 수 있음.
+ 식에서 알수 있듯 x에 대한 y의 미분은 구성 함수 각각의 미분값을 모두 곱한 값과 같음. 즉, 합성함수의 미분은 각 함수의 국소적 미분들로 분해가 가능. --> 연쇄 법칙
+ + 위 식(dy/dx = dy/db * db/da * da/dx)은 **"dy/dx = dy/dy * dy/db * db/da * da/dx"** 으로도 표현이 가능 dy/dy은 자신에 대한 미분이라 항상 1
+ + ## 역전파 원리 도출 +**"dy/dx = dy/dy * dy/db * db/da * da/dx"** 은 합성 함수의 미분은 구성 함수들의 미분의 곱으로 분해할 수 있음을 뜻함
+**"dy/dx = (((dy/dy*dy/db)db/da)da/dx)"** 식과 같이 출력에서 입력 방향으로, 즉 보통의 계산과는 반대 방향으로 미분을 계산, 출력 y에서 입력 x 방향으로 곱하면서 순서대로 미분하면 최종적으로 dy/dx가 구해짐
+ +
+ +dy/db는 함수 y = C(b)의 미분, db/da = B(a)의 미분, da/dx = A(x)의 미분 + +
+ + "y의 변수에 대한 미분값"이 변수 y, a, b, x에 대한 미분값이 오른쪽에서 왼쪽으로 전파됨을 알 수 있음 이것이 역전파, 전파되는 데이터는 모두 "y의 미분값" + +
+ +순전파와 역전파간의 관계를 봤을때 순전파 시의 변수 a는 역전파 시의 미분 dy/da에 대응, 마찬가지로 b는 dy/db, x는 dy/dx가 대응. 함수에도 마찬가지로 함수 B는 역전파의 B'(a)에 대응 A는 A'(x)에 대응. 이렇게 변수는 '통상값'과 '미분값'이 존재하고 함수는 '통상 계산(순전파)'과 '미분값을 구하기 위한 계산(역전파)'이 존재하는 것으로 생각 가능
+ +역전파를 구할때 C'(b)는 y = C(b)의 미분값, 이 때 C'(b)계산을 위해선 b값이 필요 마찬가지로 B'(a)를 구하기 위해선 a의 값이 필요함. 즉, 역전파 시에는 순전파 시 이용한 데이터가 필요함 따라서 역전파를 구하기 위해선 먼저 순전파를 해야 함
+ + +## Code +- code + - step01.py: 수동 역전파 구현 + - step02.py: 자동 역전파 구현 - 1 + - step03.py: 자동 역전파 구현 - 2 + +## Reference +- 역전파 이론 : [Backpropagation Theory](../../Theory/03_Backpropagation/README.md) +- 역전파 구현 : [Python으로 역전파 구현](code/step03.py) \ No newline at end of file diff --git a/Python/01_Backpropagation_Theory/SimplifiedBackgroundpropagation.png b/Python/01_Backpropagation_Theory/SimplifiedBackgroundpropagation.png new file mode 100644 index 0000000..b5fb75c Binary files /dev/null and b/Python/01_Backpropagation_Theory/SimplifiedBackgroundpropagation.png differ diff --git a/Python/01_Backpropagation_Theory/code/README.md b/Python/01_Backpropagation_Theory/code/README.md new file mode 100644 index 0000000..a82c09a --- /dev/null +++ b/Python/01_Backpropagation_Theory/code/README.md @@ -0,0 +1,16 @@ +# 역전파 자동화 +변수와 함수의 관계를 설정.
+ +- 함수 관점에서 변수는 "입력"과 "출력" +- 변수 관점에서 함수는 "창조자 혹은 부모" + +
+ + +## 역전파 계산의 흐름 +1. 함수를 가져온다 +2. 함수의 입력을 가져온다 +3. 함수의 backward 메서드를 호출한다 + +
+이러한 똑같은 처리 흐름의 반복을 자동화 하는 코드(step02.py --> step03.py) \ No newline at end of file diff --git a/Python/01_Backpropagation_Theory/code/RelationShipBetVarFunc.png b/Python/01_Backpropagation_Theory/code/RelationShipBetVarFunc.png new file mode 100644 index 0000000..874949f Binary files /dev/null and b/Python/01_Backpropagation_Theory/code/RelationShipBetVarFunc.png differ diff --git a/Python/01_Backpropagation_Theory/code/step01.py b/Python/01_Backpropagation_Theory/code/step01.py new file mode 100644 index 0000000..dd03263 --- /dev/null +++ b/Python/01_Backpropagation_Theory/code/step01.py @@ -0,0 +1,64 @@ +import numpy as np + +class Variable: + def __init__(self, data): + self.data = data + self.grad = None # grad: 미분 값 + +class Function: + def __call__(self, input): + x = input.data + y = self.forward(x) # 구체적인 계산은 forward 메서드에서 함 + output = Variable(y) + self.input = input # 입력 변수를 기억 + return output + + def forward(self, x): + raise NotImplementedError() + + def backward(self, gy): + raise NotImplementedError() + +# x^2 +class Square(Function): + def forward(self, x): + return x ** 2 + def backward(self, gy): + x = self.input.data + gx = 2 * x * gy + return gx + +# e^x +class Exp(Function): + def forward(self, x): + return np.exp(x) + def backward(self, gy): + x = self.input.data + gx = np.exp(x) * gy + return gx + +# 수치미분 +def numerical_diff(f, x, eps=1e-4): + x0 = Variable(x.data - eps) + x1 = Variable(x.data + eps) + y0 = f(x0) + y1 = f(x1) + + return (y1.data - y0.data) / (2 * eps) + +A = Square() +B = Exp() +C = Square() + +x = Variable(np.array(0.5)) +a = A(x) +b = B(a) +y = C(b) + +# 역전파 계산 +y.grad = np.array(1.0) +b.grad = C.backward(y.grad) +a.grad = B.backward(b.grad) +x.grad = A.backward(a.grad) + +print(x.grad) \ No newline at end of file diff --git a/Python/01_Backpropagation_Theory/code/step02.py b/Python/01_Backpropagation_Theory/code/step02.py new file mode 100644 index 0000000..bd27c40 --- /dev/null +++ b/Python/01_Backpropagation_Theory/code/step02.py @@ -0,0 +1,89 @@ +import numpy as np + +class Variable: + def __init__(self, data): + self.data = data + self.grad = None # grad: 미분 값 + self.creator = None + + def set_creator(self, func): + self.creator = func + +class Function: + def __call__(self, input): + x = input.data + y = self.forward(x) # 구체적인 계산은 forward 메서드에서 함 + output = Variable(y) + output.set_creator(self) # 출력 변수에 창조자를 설정 + self.input = input # 입력 변수를 기억 + self.output = output # 출력도 저장 + return output + + def forward(self, x): + raise NotImplementedError() + + def backward(self, gy): + raise NotImplementedError() + +# x^2 +class Square(Function): + def forward(self, x): + return x ** 2 + def backward(self, gy): + x = self.input.data + gx = 2 * x * gy + return gx + +# e^x +class Exp(Function): + def forward(self, x): + return np.exp(x) + def backward(self, gy): + x = self.input.data + gx = np.exp(x) * gy + return gx + +# 수치미분 +def numerical_diff(f, x, eps=1e-4): + x0 = Variable(x.data - eps) + x1 = Variable(x.data + eps) + y0 = f(x0) + y1 = f(x1) + + return (y1.data - y0.data) / (2 * eps) + +A = Square() +B = Exp() +C = Square() + +x = Variable(np.array(0.5)) +a = A(x) +b = B(a) +y = C(b) + +# 계산 그래프의 노드들을 거꾸로 거슬러 올라감 +assert y.creator == C +assert y.creator.input == b +assert y.creator.input.creator == B +assert y.creator.input.creator.input == a +assert y.creator.input.creator.input.creator == A +assert y.creator.input.creator.input.creator.input == x + +# y --> b 까지의 역전파 +y.grad = np.array(1.0) + +C = y.creator # 1. 함수를 가져옴 +b = C.input # 2. 함수의 입력을 가져옴 +b.grad = C.backward(y.grad) # 3. 함수의 backward 메서드를 호출 + +# b --> a 까지의 역전파 +B = b.creator # 1. 함수를 가져옴 +a = B.input # 2. 함수의 입력을 가져옴 +a.grad = B.backward(b.grad) # 3. 함수의 backward 메서드를 호출 + +# a --> x 까지의 역전파 +A = a.creator # 1. 함수를 가져옴 +x = A.input # 2. 함수의 입력을 가져옴 +x.grad = A.backward(a.grad) # 3. 함수의 backward 메서드를 호출 + +print(x.grad) \ No newline at end of file diff --git a/Python/01_Backpropagation_Theory/code/step03.py b/Python/01_Backpropagation_Theory/code/step03.py new file mode 100644 index 0000000..e9e3d4b --- /dev/null +++ b/Python/01_Backpropagation_Theory/code/step03.py @@ -0,0 +1,74 @@ +import numpy as np + +class Variable: + def __init__(self, data): + self.data = data + self.grad = None # grad: 미분 값 + self.creator = None + + def set_creator(self, func): + self.creator = func + + def backward(self): + f = self.creator # 1. 함수를 가져옴 + if f is not None: + x = f.input # 2. 함수의 입력을 가져옴 + x.grad = f.backward(self.grad) # 3. 함수의 backward 메서드를 호출 + x.backward() # 하나 앞 변수의 backward 메서드를 호출(재귀) + +class Function: + def __call__(self, input): + x = input.data + y = self.forward(x) # 구체적인 계산은 forward 메서드에서 함 + output = Variable(y) + output.set_creator(self) # 출력 변수에 창조자를 설정 + self.input = input # 입력 변수를 기억 + self.output = output # 출력도 저장 + return output + + def forward(self, x): + raise NotImplementedError() + + def backward(self, gy): + raise NotImplementedError() + +# x^2 +class Square(Function): + def forward(self, x): + return x ** 2 + def backward(self, gy): + x = self.input.data + gx = 2 * x * gy + return gx + +# e^x +class Exp(Function): + def forward(self, x): + return np.exp(x) + def backward(self, gy): + x = self.input.data + gx = np.exp(x) * gy + return gx + +# 수치미분 +def numerical_diff(f, x, eps=1e-4): + x0 = Variable(x.data - eps) + x1 = Variable(x.data + eps) + y0 = f(x0) + y1 = f(x1) + + return (y1.data - y0.data) / (2 * eps) + +A = Square() +B = Exp() +C = Square() + +x = Variable(np.array(0.5)) +a = A(x) +b = B(a) +y = C(b) + +y.grad = np.array(1.0) +y.backward() + +print(x.grad) \ No newline at end of file diff --git a/Python/README.md b/Python/README.md new file mode 100644 index 0000000..7852927 --- /dev/null +++ b/Python/README.md @@ -0,0 +1,10 @@ +# 밑바닥부터 시작하는 딥러닝 +Python으로 Deep Learning Framework 만들어 보기 + +## 필요 소프트웨어 +- python 3.3 이상 +- 넘파이 +- MatPlotlib +- Cupy +- Pilow + diff --git a/Pytorch/2_CNN/CNNImageClassify_TransferLearning.ipynb b/Pytorch/2_CNN/CNNImageClassify_TransferLearning.ipynb new file mode 100644 index 0000000..8e48407 --- /dev/null +++ b/Pytorch/2_CNN/CNNImageClassify_TransferLearning.ipynb @@ -0,0 +1,335 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 10, + "id": "e006bc4a", + "metadata": {}, + "outputs": [], + "source": [ + "# Module Import\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "import torch\n", + "import torch.nn as nn\n", + "import torch.nn.functional as F\n", + "from torchvision import transforms, datasets" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "912fbe35", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Using PyTorch version: 1.13.0 Device: cpu\n" + ] + } + ], + "source": [ + "if torch.cuda.is_available():\n", + " DEVICE = torch.device('cuda')\n", + "else:\n", + " DEVICE = torch.device('cpu')\n", + "\n", + "print('Using PyTorch version:', torch.__version__, ' Device:',DEVICE)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "b20b46a1", + "metadata": {}, + "outputs": [], + "source": [ + "BATCH_SIZE = 32\n", + "EPOCHS = 10" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "d236ecb2", + "metadata": {}, + "outputs": [], + "source": [ + "# 개미와 벌을 분류하기 위해 개미 이미지 데이터와 벌 이미지 데이터 불러오기(Train Set, Test Set 분리)\n", + "data_transforms = {\n", + " 'train': transforms.Compose([transforms.RandomResizedCrop(224), # - (1)\n", + " transforms.RandomHorizontalFlip(),\n", + " transforms.ToTensor(),\n", + " transforms.Normalize([0.5, 0.5, 0.5], [0.5, 0.5, 0.5])\n", + " ]),\n", + " 'val': transforms.Compose([transforms.CenterCrop(224),\n", + " transforms.Resize(224),\n", + " transforms.ToTensor(),\n", + " transforms.Normalize([0.5, 0.5, 0.5], [0.5, 0.5, 0.5])\n", + " ])\n", + "}\n", + "\n", + "image_datasets = {x: datasets.ImageFolder(\"data/hymenoptera_data\", data_transforms[x]) for x in ['train', 'val']}\n", + "dataloaders = {x: torch.utils.data.DataLoader(image_datasets[x], batch_size = BATCH_SIZE, num_workers = 0, shuffle = True) for x in ['train', 'val']}" + ] + }, + { + "cell_type": "markdown", + "id": "2ba25482", + "metadata": {}, + "source": [ + "(1) : 해당 이미지를 224 사이즈로 변경하되 변경되는 이미지 픽셀 값은 랜덤으로 선택. 이미지 내 랜덤으로 선택해 224 사이즈로 변경" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "2c4c657c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "X_train: torch.Size([32, 3, 224, 224]) type: torch.FloatTensor\n", + "y_train: torch.Size([32]) type: torch.LongTensor\n" + ] + } + ], + "source": [ + "# 데이터 확인\n", + "for (X_train, y_train) in dataloaders['train']:\n", + " print('X_train:', X_train.size(), 'type:', X_train.type())\n", + " print('y_train:', y_train.size(), 'type:', y_train.type())\n", + " break" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "e178b361", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n", + "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n", + "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n", + "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n", + "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n", + "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n", + "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n", + "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n", + "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n", + "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "pltsize = 1\n", + "plt.figure(figsize=(10*pltsize, pltsize))\n", + "\n", + "for i in range(10):\n", + " plt.subplot(1, 10, i + 1)\n", + " plt.axis('off')\n", + " plt.imshow(np.transpose(X_train[i], (1, 2, 0)))\n", + " plt.title('Class: ' + str(y_train[i].item()))" + ] + }, + { + "cell_type": "markdown", + "id": "af83d345", + "metadata": {}, + "source": [ + "제시된 10개의 이미지 데이터 각각은 224*224*3 개의 픽셀로 구성돼 있는 이미지" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "acb6f2b7", + "metadata": {}, + "outputs": [], + "source": [ + "# 불러온 특정 모델에 대해 학습을 진행하며 학습 데이터에 대한 모델 성능을 확인하는 함수\n", + "def train(model, train_loader, optimizer, log_interval):\n", + " model.train()\n", + " for batch_idx, (image, label) in enumerate(train_loader):\n", + " image = image.to(DEVICE)\n", + " label = label.to(DEVICE)\n", + " optimizer.zero_grad()\n", + " loss = criterion(output, label)\n", + " loss.backward()\n", + " optimizer.step()\n", + " \n", + " if batch_idx % log_interval == 0:\n", + " print(\"Train Epoch: {} [{}/{}({:.0f}%)] \\t Train Loss: {:.6f}\".format(Epoch, batch_idx * len(image), len(train_loader.dataset), 100 * batch_idx / len(train_loader), loss.item()))" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "d1ffc6bb", + "metadata": {}, + "outputs": [], + "source": [ + "# 학습되는 과정 속에서 검증 데이터에 대한 모델 성능을 확인하는 함수 정의\n", + "def evaluate(model, test_loader):\n", + " model.eval()\n", + " test_loss = 0\n", + " correct = 0\n", + " \n", + " with torch.no_grad():\n", + " for image, label in test_loader:\n", + " image = image.to(DEVICE)\n", + " label = label.to(DEVICE)\n", + " output = model(image)\n", + " test_loss += criterion(output, label).item()\n", + " prediction = output.max(1, keepdim = True)[1]\n", + " correct += prediction.eq(label.view_as(prediction)).sum().item()\n", + " \n", + " test_loss /= len(test_loader.dataset)\n", + " test_accuracy = 100 * correct / len(test_loader.dataset)\n", + " return test_loss, test_accuracy" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "70ffa926", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/hangyojeong/opt/anaconda3/envs/pytorch_test/lib/python3.10/site-packages/torchvision/models/_utils.py:208: UserWarning: The parameter 'pretrained' is deprecated since 0.13 and may be removed in the future, please use 'weights' instead.\n", + " warnings.warn(\n", + "/Users/hangyojeong/opt/anaconda3/envs/pytorch_test/lib/python3.10/site-packages/torchvision/models/_utils.py:223: UserWarning: Arguments other than a weight enum or `None` for 'weights' are deprecated since 0.13 and may be removed in the future. The current behavior is equivalent to passing `weights=None`.\n", + " warnings.warn(msg)\n" + ] + }, + { + "ename": "AssertionError", + "evalue": "Torch not compiled with CUDA enabled", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mAssertionError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[15], line 3\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;66;03m# 파이토치 내에서 제공하는 미리 학습되지 않은 ResNet18 모델 불러온 후 Ouptut 크기 설정\u001b[39;00m\n\u001b[1;32m 2\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mtorchvision\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mmodels\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m \u001b[38;5;21;01mmodels\u001b[39;00m\n\u001b[0;32m----> 3\u001b[0m model \u001b[38;5;241m=\u001b[39m \u001b[43mmodels\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mresnet18\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpretrained\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcuda\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 4\u001b[0m num_ftrs \u001b[38;5;241m=\u001b[39m model\u001b[38;5;241m.\u001b[39mfc\u001b[38;5;241m.\u001b[39min_features\n\u001b[1;32m 5\u001b[0m model\u001b[38;5;241m.\u001b[39mfc \u001b[38;5;241m=\u001b[39m nn\u001b[38;5;241m.\u001b[39mLinear(num_ftrs, \u001b[38;5;241m2\u001b[39m)\n", + "File \u001b[0;32m~/opt/anaconda3/envs/pytorch_test/lib/python3.10/site-packages/torch/nn/modules/module.py:747\u001b[0m, in \u001b[0;36mModule.cuda\u001b[0;34m(self, device)\u001b[0m\n\u001b[1;32m 730\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mcuda\u001b[39m(\u001b[38;5;28mself\u001b[39m: T, device: Optional[Union[\u001b[38;5;28mint\u001b[39m, device]] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m T:\n\u001b[1;32m 731\u001b[0m \u001b[38;5;124mr\u001b[39m\u001b[38;5;124;03m\"\"\"Moves all model parameters and buffers to the GPU.\u001b[39;00m\n\u001b[1;32m 732\u001b[0m \n\u001b[1;32m 733\u001b[0m \u001b[38;5;124;03m This also makes associated parameters and buffers different objects. So\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 745\u001b[0m \u001b[38;5;124;03m Module: self\u001b[39;00m\n\u001b[1;32m 746\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m--> 747\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_apply\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43;01mlambda\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mt\u001b[49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mt\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcuda\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdevice\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/opt/anaconda3/envs/pytorch_test/lib/python3.10/site-packages/torch/nn/modules/module.py:639\u001b[0m, in \u001b[0;36mModule._apply\u001b[0;34m(self, fn)\u001b[0m\n\u001b[1;32m 637\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_apply\u001b[39m(\u001b[38;5;28mself\u001b[39m, fn):\n\u001b[1;32m 638\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m module \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mchildren():\n\u001b[0;32m--> 639\u001b[0m \u001b[43mmodule\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_apply\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfn\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 641\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mcompute_should_use_set_data\u001b[39m(tensor, tensor_applied):\n\u001b[1;32m 642\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m torch\u001b[38;5;241m.\u001b[39m_has_compatible_shallow_copy_type(tensor, tensor_applied):\n\u001b[1;32m 643\u001b[0m \u001b[38;5;66;03m# If the new tensor has compatible tensor type as the existing tensor,\u001b[39;00m\n\u001b[1;32m 644\u001b[0m \u001b[38;5;66;03m# the current behavior is to change the tensor in-place using `.data =`,\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 649\u001b[0m \u001b[38;5;66;03m# global flag to let the user control whether they want the future\u001b[39;00m\n\u001b[1;32m 650\u001b[0m \u001b[38;5;66;03m# behavior of overwriting the existing tensor or not.\u001b[39;00m\n", + "File \u001b[0;32m~/opt/anaconda3/envs/pytorch_test/lib/python3.10/site-packages/torch/nn/modules/module.py:662\u001b[0m, in \u001b[0;36mModule._apply\u001b[0;34m(self, fn)\u001b[0m\n\u001b[1;32m 658\u001b[0m \u001b[38;5;66;03m# Tensors stored in modules are graph leaves, and we don't want to\u001b[39;00m\n\u001b[1;32m 659\u001b[0m \u001b[38;5;66;03m# track autograd history of `param_applied`, so we have to use\u001b[39;00m\n\u001b[1;32m 660\u001b[0m \u001b[38;5;66;03m# `with torch.no_grad():`\u001b[39;00m\n\u001b[1;32m 661\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m torch\u001b[38;5;241m.\u001b[39mno_grad():\n\u001b[0;32m--> 662\u001b[0m param_applied \u001b[38;5;241m=\u001b[39m \u001b[43mfn\u001b[49m\u001b[43m(\u001b[49m\u001b[43mparam\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 663\u001b[0m should_use_set_data \u001b[38;5;241m=\u001b[39m compute_should_use_set_data(param, param_applied)\n\u001b[1;32m 664\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m should_use_set_data:\n", + "File \u001b[0;32m~/opt/anaconda3/envs/pytorch_test/lib/python3.10/site-packages/torch/nn/modules/module.py:747\u001b[0m, in \u001b[0;36mModule.cuda..\u001b[0;34m(t)\u001b[0m\n\u001b[1;32m 730\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mcuda\u001b[39m(\u001b[38;5;28mself\u001b[39m: T, device: Optional[Union[\u001b[38;5;28mint\u001b[39m, device]] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m T:\n\u001b[1;32m 731\u001b[0m \u001b[38;5;124mr\u001b[39m\u001b[38;5;124;03m\"\"\"Moves all model parameters and buffers to the GPU.\u001b[39;00m\n\u001b[1;32m 732\u001b[0m \n\u001b[1;32m 733\u001b[0m \u001b[38;5;124;03m This also makes associated parameters and buffers different objects. So\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 745\u001b[0m \u001b[38;5;124;03m Module: self\u001b[39;00m\n\u001b[1;32m 746\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m--> 747\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_apply(\u001b[38;5;28;01mlambda\u001b[39;00m t: \u001b[43mt\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcuda\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdevice\u001b[49m\u001b[43m)\u001b[49m)\n", + "File \u001b[0;32m~/opt/anaconda3/envs/pytorch_test/lib/python3.10/site-packages/torch/cuda/__init__.py:221\u001b[0m, in \u001b[0;36m_lazy_init\u001b[0;34m()\u001b[0m\n\u001b[1;32m 217\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mRuntimeError\u001b[39;00m(\n\u001b[1;32m 218\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mCannot re-initialize CUDA in forked subprocess. To use CUDA with \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 219\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmultiprocessing, you must use the \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mspawn\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m start method\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 220\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28mhasattr\u001b[39m(torch\u001b[38;5;241m.\u001b[39m_C, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124m_cuda_getDeviceCount\u001b[39m\u001b[38;5;124m'\u001b[39m):\n\u001b[0;32m--> 221\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mAssertionError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mTorch not compiled with CUDA enabled\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 222\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m _cudart \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 223\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mAssertionError\u001b[39;00m(\n\u001b[1;32m 224\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mlibcudart functions unavailable. It looks like you have a broken build?\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", + "\u001b[0;31mAssertionError\u001b[0m: Torch not compiled with CUDA enabled" + ] + } + ], + "source": [ + "# 파이토치 내에서 제공하는 미리 학습되지 않은 ResNet18 모델 불러온 후 Ouptut 크기 설정\n", + "import torchvision.models as models # - (1)\n", + "model = models.resnet18(pretrained = False).cuda() # - (2)\n", + "num_ftrs = model.fc.in_features # - (3)\n", + "model.fc = nn.Linear(num_ftrs, 2) # - (4)\n", + "model = model.cuda() # - (5)" + ] + }, + { + "cell_type": "markdown", + "id": "f5cece8d", + "metadata": {}, + "source": [ + "(1) : torchvision Module의 models 내에 있는 models를 임포트\n", + "(2) : torchvision.models 내에 있는 models resnet18 모델을 불러옴.\n", + "미리 학습된 파라미터 값을 불러오는 과정은 pretrained = True 인자 값을 조정해 설정\n", + "pretrained = False이면 모델의 구조만 불러오고 모델 구조 내에 있는 파라미터는 특정 initializer에서 랜덤으로 샘플링한 값을 이용해 모델을 불러옴\n", + "\n", + "학습되지 않은 즉 설정된 initializer의 분포 내에서 샘플링한 파라미터 값을 이용해 모델을 학습하는 것보다는 다른 데이터에 학습된 파라미터를 이용하는 것이 좋아 보이지만 만약 다른 데이터셋에 대해 모델이 과적합돼 정작 데이터를 분류하지 못하게 된다면 문제가 생길수 있음 But, 그렇다해도 아예 랜덤으로 설정된 파라미터 값을 이용하는것보다는 나음\n", + "\n", + "본인이 이용하고자 하는 데이터와 아주 비슷한 데이터에서 학습된 모델을 이용할 수 있다면 우리가 이용하고자 하는 데이터에도 잘 작동할 가능성이 높음\n", + "\n", + "(3) : torchvision.model 내에 있는 models를 이용해 불러온 모델에 대해 Fully Connected Layer를 구성하고 있는 부분에 접근\n", + "in_features는 resnet34 모델의 Fully Connected Layer의 Input에 해당하는 노드 수를 num_ftrs로 저장\n", + "(4) : resnet18 모델의 Fully Connected Layer의 Input에 해당하는 노드 수를 이용해 새로운 레이어를 추가, 개미와 벌을 분류하기 때문에 클래스 개수인 2개로 Output을 설정\n", + "(5) : 기존에 있는 모델을 불러와 새로 재구성한 모델을 학습시키기 위해 사전에 정의한 DEVICE에 할당" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "8db5b2a6", + "metadata": {}, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'model' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[16], line 2\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;66;03m# Optimizer, Objective Function 설정\u001b[39;00m\n\u001b[0;32m----> 2\u001b[0m optimizer \u001b[38;5;241m=\u001b[39m torch\u001b[38;5;241m.\u001b[39moptim\u001b[38;5;241m.\u001b[39mAdam(\u001b[43mmodel\u001b[49m\u001b[38;5;241m.\u001b[39mparameters(), lr\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m0.0001\u001b[39m)\n\u001b[1;32m 3\u001b[0m criterion \u001b[38;5;241m=\u001b[39m nn\u001b[38;5;241m.\u001b[39mCrossEntropyLoss()\n\u001b[1;32m 5\u001b[0m \u001b[38;5;28mprint\u001b[39m(model)\n", + "\u001b[0;31mNameError\u001b[0m: name 'model' is not defined" + ] + } + ], + "source": [ + "# Optimizer, Objective Function 설정\n", + "optimizer = torch.optim.Adam(model.parameters(), lr=0.0001)\n", + "criterion = nn.CrossEntropyLoss()\n", + "\n", + "print(model)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ee04678d", + "metadata": {}, + "outputs": [], + "source": [ + "# 미리 학습되지 않은 ResNet18 학습을 실행하며 Train, Test set의 Loss 및 Test set Accuracy 확인\n", + "for Epoch in range(1, EPOCHS + 1):\n", + " train(model, dataloaders[“train”], optimizer, log_interval = 5) \n", + " test_loss, test_accuracy = evaluate(model, dataloaders[“val”]) \n", + " print(“\\n[EPOCH: {}], \\tTest Loss: {:.4f}, \\tTest Accuracy: {:.2f} % \\n”.format(Epoch, test_loss, test_accuracy))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.8" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/Pytorch/2_CNN/README.md b/Pytorch/2_CNN/README.md index e4baaf4..dd19535 100644 --- a/Pytorch/2_CNN/README.md +++ b/Pytorch/2_CNN/README.md @@ -52,4 +52,7 @@ Fully Connected Layer도 그대로 사용하고 Output Layer만 디자인하기 Transfer Learning은 결국 내가 학습하고자 하는 모델의 초기 Weight에 Pre-Trained Model의 Weight를 사용하는 것과 같기 때문에 Initialization 기법으로 바라볼 수도 있음
- \ No newline at end of file + +
+ +- [CODE] CNNImageClassify_TransferLearning.ipynb \ No newline at end of file diff --git a/Pytorch/3_NLP/BPE.py b/Pytorch/3_NLP/BPE.py new file mode 100644 index 0000000..a1c802f --- /dev/null +++ b/Pytorch/3_NLP/BPE.py @@ -0,0 +1,93 @@ +# collections.defaultdict: dictionary와 거의 비슷하지만 key값이 없을 경우 미리 지정해 놓은 초기값을 반환하는 dictionary +# re.escape: 문자열을 입력받으면 특수문자들을 이스케이프 처리해줌 +# 정규표현식 r'' 의미 : 파이썬 정규식에는 Raw string이라고 해서 컴파일 해야 하는 정규식이 Raw String(순수한 문자)임을 알려줌 +# [정규표현식] +# \d : 숫자를 찾음, \D : 숫자가 아닌 것을 찾음 +# \s : whitespace 문자인 것을 찾음, \S : whitespace 문자가 아닌 것을 찾음 +# \w : 문자 + 숫자인 것을 찾음, \W : 문자 + 숫자가 아닌 것을 찾음 + +# [정규표현식] - 메타문자 +# []: 문자 클래스 +# {m,n}: m회 이상 n회 이하 반복 +# | : or 조건식, ^ : 문자열의 시작, $ : 문자열의 끝, ? : 0회 이상 1회 이하(0 또는 1), \ : 이스케이프 또는 메타 문자를 일반 문자로 인식하게 함 + +# [정규표현식] - 전방탐색과 후방탐색 +# 원하는 문자를 검색하기 위해 정규식을 사용 +# 전방 탐색(lookahead) - 앞에서 찾기 +# 일치 영역을 발견해도 그 값을 반환하지 않는 패턴, 전방탐색 패턴의 구문은 '?='로 시작. 등호(=) 다음에 일치할 텍스트가 오는 하위 표현식 +# 후방 탐색(lookbehind) - 뒤에서 찾기 +# 후방탐색 연산은 ?<= +# http://minsone.github.io/regex/regexp-lookaround + +import re, collections +def get_stats(vocab): + pairs = collections.defaultdict(int) + for word, freq in vocab.items(): + symbols = word.split() + for i in range(len(symbols) - 1): + pairs[symbols[i], symbols[i+1]] += freq + + return pairs + +def merge_vocab(pair, v_in): + v_out = {} + bigram = re.escape(' '.join(pair)) + p = re.compile(r'(?': 5, +'l o w e r ': 2, +'n e w e s t ': 6, +'w i d e s t ': 3} + +num_merges = 10 + +for i in range(num_merges): # 4번 과정 + pairs = get_stats(vocab) # 2번 과정 + best = max(pairs, key=pairs.get) # 2번 과정 + vocab = merge_vocab(best, vocab) # 3번 과정 + + # print(f'Step {i + 1}') + # print(best) + # print(vocab) + # print('\\n') + + +# 한국어 +S1 = '나는 책상 위에 사과를 먹었다' +S2 = '알고 보니 그 사과는 Jason 것이었다' +S3 = '그래서 Jason에게 사과를 했다' + +token_counts = {} +index = 0 + +for sentence in [S1, S2, S3]: + tokens = sentence.split() + for token in tokens: + if token_counts.get(token) == None: + token_counts[token] = 1 + else: + token_counts[token] += 1 + +after_token_count = {} +for token, counts in token_counts.items(): + # " ".join(token) : 띄어쓰기로 분리한 token들을 음절로 만듬 + after_token_count[" ".join(token)] = counts + +print(after_token_count) + +num_merges = 10 +for i in range(num_merges): + pairs = get_stats(after_token_count) + best = max(pairs, key=pairs.get) + after_token_count = merge_vocab(best, after_token_count) + + print(f'Step {i + 1}') + print(best) + print(after_token_count) + print('\\n') diff --git a/Pytorch/3_NLP/BPE_Example.png b/Pytorch/3_NLP/BPE_Example.png new file mode 100644 index 0000000..6533be1 Binary files /dev/null and b/Pytorch/3_NLP/BPE_Example.png differ diff --git a/Pytorch/3_NLP/BertTokenizer.py b/Pytorch/3_NLP/BertTokenizer.py new file mode 100644 index 0000000..54b9dc7 --- /dev/null +++ b/Pytorch/3_NLP/BertTokenizer.py @@ -0,0 +1,17 @@ +# Bert Tokenizer + +from transformers import BertTokenizer +tokenizer = BertTokenizer.from_pretrained('bert-base-uncased') # - (1) + +print(len(tokenizer.vocab)) + +# (1) : bert-base-uncased 라는 이름의 이미 학습된 모델을 사용, 해당 모델을 사용하려면 모델 학습을 위해 사용했던 Tokenizer도 일치시켜야 함 + +sentence = "My dog is cute. He likes playing" +print(tokenizer.tokenize(sentence)) + +tokenizer = BertTokenizer.from_pretrained('bert-base-multilingual-uncased') # - (2) +print(len(tokenizer.vocab)) +print(tokenizer.tokenize(sentence)) + +# (2) : 다양한 언어를 담고 있는 다른 데이터에서 학습한 모델인 'bert-base-multilingual-uncased'의 Tokenizer를 가져와 Tokenization \ No newline at end of file diff --git a/Pytorch/3_NLP/Frequency_Based.png b/Pytorch/3_NLP/Frequency_Based.png new file mode 100644 index 0000000..c45b79a Binary files /dev/null and b/Pytorch/3_NLP/Frequency_Based.png differ diff --git a/Pytorch/3_NLP/README.md b/Pytorch/3_NLP/README.md new file mode 100644 index 0000000..010eeae --- /dev/null +++ b/Pytorch/3_NLP/README.md @@ -0,0 +1,165 @@ +# NLP +Text 데이터를 분석하고 모델링하는 분야를 자연어 처리(NLP)라 함
+- NLP(Natural Language Processing, NLP): 자연어 처리 + - NLU(Natural Language Understanding, NLU): 자연어 이해 + - Text -> Meaning + - NLG(Natural Language Generation, NLH): 자연어 생성 + - Meaning -> Text + +
+ +torchtext를 이용해 데이터셋 불러오기 +``` +from torchtext import data +from torchtext import datasets + +# Data Setting +TEXT = data.Field(lower=True, batch_first=True) +LABEL = data.Field(sequential=False) + +train, test = datasets.IMDB.splits(TEXT, LABEL) +``` + +## 문자를 숫자로 표현 +문자를 단순하게 숫자로 바꿔버리는 경우 Input에서 공통적인 패턴(Pattern) 또는 특징(Feature)을 찾기 힘듬
+모델을 잘 만들기 위해서는 Input의 공통적 패턴을 잘 찾아내도록 해줘야 함 + +단순하게 문자를 숫자로 바꿔 버리게 되면 몇 가지 문제가 생김
+- 내가 만든 사전에 없는 단어가 나오는 경우 +- '철수'나 '철수에게'는 같은 단어 같은데 조사 차이로 나눠야 하는가? +- 이중적 의미의 단어(예] 사과)를 같게 처리하는 경우 + +### Corpus & Out-of-Vocabulary(OOV) +Token을 저장해둔 Vocabulary에 Token이 없어서 처음 본 Token이 나오는 현상을 Out-of-Vocabulary(OOV)라 함
+이런 상황을 대비해 특수한 Token을 만들어 사용( token) + +새로 나온 단어마다 Token으로 처리하는 것보다 애초에 사전을 풍부하게 만들면 OOV 문제는 해결됨 --> 그러기 위해선 다양한 Token을 많이 모을 수 있는 많은 문장이 필요. Token을 모으기 위해 모아 놓은 문장의 모음을 **말뭉치(Corpus)** 라 함 + +Corpus를 잘 만드는 것도 모델 성능 향상의 큰 요인 + +하지만 Corpus가 커질수록 사전의 크기 역시 커짐. 사전의 크기가 커질수록 만드는 모델의 사이즈도 커지게 됨. 너무 커질 경우 메모리에 부담을 주게됨 + +===> 효율적인 Token 사전을 만들려면 띄어쓰기보다 좋은 Tokenizer가 필요 + +### Byte Pair Encoding(BPE) +띄어쓰기는 가장 쉬운 방법이긴 하지만 일상의 언어를 분석하는 과정에서는 비효율적 방법 + +한국어의 단위는 길이 순으로 **음운 < 음절 < 형태소 < 단어 < 어절 < 문장** +- 음운: 말의 뜻을 구별해주는 소리의 단위 (예: ㅎ, ㅏ, ㄴ, ㄱ, ㅜ , ㄱ) +- 음절: 음의 한 마디(예: 한 국) +- 형태소: 의미를 지닌 최소의 단위 +- 단어: 최소의 자립 형식(예: 먹었다) +- 어절: 문장을 이루는 마디, 문장 성분의 최소 단위로서 띄어쓰기의 단위 +- 문장: 사고나 감정을 말로 표현할때 완결딘 내용을 나타내는 최소 단위 + +#### Character based tokenization +띄어쓰기가 아닌 글자(Character)를 Token으로 사용 + +Token 사전의 크기가 줄어듬. 한국어에서는 자음과 모음으로 나타낼 수 있는 모든 조합을 생각하면되고 영어에서는 소문자 기준 26개의 알파벳만 생각하면 됨 + +OOV 현상은 사실상 없앨수 있게 됨. 인터넷에서 만들어지는 단축어와 신조어 등의 모든 글자를 표현할 수 있음 + +하지만 실제 딥러닝 모델에서 사용하는 Token은 대부분 글자 단위가 아님. 글자 단위의 Tokenization의 문제 중 하나는 표현법에 대한 학습이 어렵다는 것. 글자 하나는 보통 특정 의미를 갖고 있지 않음 + +특정 글자의 연속된 나열이 특정 의미를 나타내고 이를 패턴으로 학습해 의미를 만들고 각 의미를 조합해 문장의 의미를 만들어 내야 함 + +글자보단 의미를 가진 단위이자 기존의 띄어쓰기보다 효과적 방법을 찾아내는 연구가 진행 + +#### n-gram Tokenization +Token이 글자라면 OOV 현상이 벌어지는 일은 없지만 글자 하나에는 의미가 없기 때문에 모델의 구조를 만들 때 글자의 특정 연속성이 의미를 가진 단어라는 것을 학습하게 만들고 그것으로 문장이나 문단과 같은 더 긴 형태의 글을 이해하도록 만들어야 함 + +--> 글자보다는 좀 더 긴 형태의 Token을 만들어내기 위해 사용하는 방법 중 한 가지가 n-gram + +But n-gram을 사용할 경우 쓸모 없는 조합이 너무 많이 생성되게 됨. 특히 한국어의 경우 어미 변화가 매우 다양한데, 의미는 비슷하지만 서로 다른 Token이 아주 많이 생겨나게 됨. 그리고 Token 사전이 과하게 커짐 + +==> n-gram의 이점을 챙기면서 그중 의미가 있는 것들만 Token으로 사용하는 방법이 **Byte Pair Encoding(BPE)** + +#### Byte Pair Encoding(BPE) +BPE는 Data Compression 분야에서 사용됐던 개념으로 반복적으로 나오는 데이터의 연속된 패턴을 치환하는 방식을 사용해 데이터를 좀 더 효율적으로 저장하는 개념 + +n-gram에서 쓸모없이 많아지는 연속된 글자의 나열이 아닌 여러 번 나타나는 글자의 나열은 의미가 있다 생각해 따로 Token으로 만드는 방식 + +단어를 Subword로 한 번 더 나눠 표현함으로써 더 효율적인 Token을 만들 수 있게됨 + + +
+ +BPE Algorithm +1. 단어 횟수를 기록한 사전을 만듬(띄어쓰기 기반의 Tokenization), 이때 사전의 단어 글자는 모두 띄어 표현 +2. 각 단어에 대해 연속된 2개의 글자의 숫자를 세어 가장 많이 나오는 글자 2개의 조합을 찾음(Character bi-gram) +3. 두 글자를 합쳐 기존의 사전의 단어를 수정 +4. 미리 정해 놓은 횟수만큼 2~3번의 과정을 반복 + +- [CODE] : BPE.py +- [CODE] : Sentencepiece.py +- [CODE] : BertTokenizer.py + +## Word Embedding +문자를 그대로 숫자로 표현하게 되면 딥러닝 모델 학습에 문제가 생김 + +1 + 1 = 2 이지만 1이 '책상'을 의미하고 2가 '위에'를 의미한다면 그렇다고 해서 '책상' 두개가 '위에'를 의미하지는 않음 (1 + 1 = 2) + +이와 같은 문제가 일어나는 이유는 Token을 유한한 개수를 가진 변수로 생각하고 범주형 자료(Categorical Data)로 바로 표현했기 때문 + +==> 이러한 문제를 해결하기 위해 범주형 자료 변수를 표현하는 방법 중 한가지가 바로 원-핫 인코딩(통계학에서는 가변수(Dummy Variables)라고 표현) + +### 원-핫 인코딩 +원-핫 인코딩을 위해선 Corpus를 모두 Tokenization해 Vocabulary를 만들고 각 Token마다 Index를 정해야 함 + + +
+ +- [CODE] one_hot_encoding.py + +원-핫 인코딩 말고도 Frequency-based Method와 Dense Embedding Method로 나눠 볼 수 있음 + +### Frequency-based Method +단어의 횟수를 기반으로 표현하는 방식(Frequency-based Method)은 말 그대로 문장에 있는 Token의 등장 횟수를 세어 표현하는 방식 + +Token의 횟수에만 집중하기 때문에 주머니 같은 곳에 Token을 모아놓고 단어를 뽑아 문장을 표현한다해서 **Bag of Words(BoW)** 라 표현 + +표현 방법은 Token을 원-핫 인코딩한 결과를 문장마다 합하면 쉽게 나타낼 수 있음 + + +
+ +원-핫 인코딩을 거쳐가지 않고 {key: token, value: count} 형식으로 문장이나 문단의 Token을 직접 세어 표현가능 + +Frequency-based Method 방법에는 한 가지 문제가 있는데 영어의 "a", "an", "of"와 같은 특정 token은 문장이나 문단과 상관없이 많이 등장할 수 밖에 없음. 따라서 해당 Token의 수치는 매우 높은 값을 갖게됨 --> 등장 빈도가 적은 Token에 나쁜 영향을 미칠 수밖에 없음 + +==> 이러한 문제를 해결하기 위한 방법으로 **TF-IDF(Term Frequency - Inverse Document Frequency)** 라는 표현 방법이 존재 + +But, Frequency-Based 방법 또한 문제가 있는데 단어의 순서가 무시된다는 점. + +우리가 문장을 구성할때 특정 Token이 나올 확률은 이전 Token에 영향을 받을 수 밖에 없음. 하지만 횟수 기반의 표현 방식은 Token의 순서 정보를 전혀 담을 수 없어 NLG와 같이 새로운 문장을 생성해야 하는 Task에서 사용이 어려움 + +### Dense Representation +원-핫 인코딩을 이용한 문자 표현의 문제점 중 한 가지는 변수의 희소성. + +모든 Token의 개수인 V만큼의 벡터를 만드는 것뿐 아니라 대부분 0이면서 극소수의 위치에만 값을 가지고 있기 때문에 상당히 큰 메모리 사용량일 필요하지만 대부분은 0으로 돼있어 비효율적(파이썬의 sparse 라이브러리를 이용해 계산이나 메모리 사용을 효율화할 순 있음) + +### Word2vec: idea +Word2vec 방법은 vector("King") - vector("Man") + vector("Women") = vector("Queen") 이라는 예제를 이용해 관계를 연산으로 설명할 수 있는 벡터표현이 가능하다는 것을 보여 많은 관심을 갖게 됨 + +먼저 Word2vec 모델 학습에는 'Token의 의미는 주변 Token의 정보로 표현된다' 라 가정 + +==> 특정 Token을 기준으로 주변에 비슷한 Token이 있다면 해당 Token은 비슷한 위치의 벡터로 표현되도록 학습 + +Word2vec 학습 과정을 **CBOW(Continuous Bag-of-Words Model)** 와 **Skip-Gram** 이 두가지 방법 모두 공통적으로는 문장을 윈도우 형태로 부분만 보는 것을 기본으로 함 + +기준 Token의 양옆 Token을 포함한 윈도우가 이동하면서 윈도우 속 Token과 기준 Token의 관계를 학습시키는 과정을 진행 + +주변 Token을 **Context** , 기준 Token을 **Target** 이라 표현 + +- CBoW + - Context Token의 벡터로 변환해 더한 후 Target Token을 맞춤 +- Skip-Gram + - Target Token을 벡터로 변환 후 Context Token을 맞춤 + + +모델 구조 +
+ +
+ +#### 학습 과정 diff --git a/Pytorch/3_NLP/Sentencepiece.py b/Pytorch/3_NLP/Sentencepiece.py new file mode 100644 index 0000000..3aead99 --- /dev/null +++ b/Pytorch/3_NLP/Sentencepiece.py @@ -0,0 +1,6 @@ +# https://github.com/google/sentencepiece + +import sentencepiece as spm +s = spm.SentencePieceProcessor(model_file='spm.model') +for n in range(5): + s.encode('New York', out_type=str, enable_sampling=True, alpha=0.1, nbest=-1) \ No newline at end of file diff --git a/Pytorch/3_NLP/one_hot_encoding.png b/Pytorch/3_NLP/one_hot_encoding.png new file mode 100644 index 0000000..4fb23e2 Binary files /dev/null and b/Pytorch/3_NLP/one_hot_encoding.png differ diff --git a/Pytorch/3_NLP/one_hot_encoding.py b/Pytorch/3_NLP/one_hot_encoding.py new file mode 100644 index 0000000..8f787ea --- /dev/null +++ b/Pytorch/3_NLP/one_hot_encoding.py @@ -0,0 +1,41 @@ +S1 = "나는 책상 위에 사과를 먹었다" +S2 = "알고 보니 그 사과는 Json 것이었다" +S3 = "그래서 Jason에게 사과를 했다" + +token2idx = {} +index = 0 + +for sentence in [S1, S2, S3]: + tokens = sentence.split() + for token in tokens: + if token2idx.get(token) == None: + token2idx[token] = index + index += 1 + +print(token2idx) +print('\n') + +V = len(token2idx) + +token2vec = [([0 if i != idx else 1 for i in range(V)], idx, token) for token, idx in token2idx.items()] +for x in token2vec: + print("\t".join([str(y) for y in x])) +print('\n') + +# python numpy를 이용해 문장을 원-핫 인코딩으로 바꾸는 방법 +import numpy as np + +for sentence in [S1, S2, S3]: + onehot_s = [] + tokens = sentence.split() + for token in tokens: + if token2idx.get(token) != None: + vector = np.zeros((1,V)) + vector[:,token2idx[token]] = 1 + onehot_s.append(vector) + else: + print("UNK") + + print(f"{sentence}: ") + print(np.concatenate(onehot_s, axis = 0)) + print('\n') \ No newline at end of file diff --git a/Pytorch/3_NLP/word2vec_model.png b/Pytorch/3_NLP/word2vec_model.png new file mode 100644 index 0000000..3816634 Binary files /dev/null and b/Pytorch/3_NLP/word2vec_model.png differ diff --git a/README.md b/README.md index 7c5ce19..342161c 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,34 @@ # DeepLearning 요약 -DeepLearning을 연구하고 학습해오며 배웠던 것들을 정리하는 공간. +DeepLearning을 학습해오며 배웠던 것들을 정리하는 공간. ## Structure - Theory : 이론 위주 학습 정리 - Pytorch : Pytorch를 이용해 신경망 구현 - Python : Python으로 신경망 구현 +- TensorFlow : Keras Tensorflow로 신경망 구현 + +## Deep Learning 전체 프로세스 + +
## Index +- 딥러닝 모델 학습 전 알아두어야 할 이론 + - [확률적 경사 하강법(SGD) 이란?](Theory/02_StochasticGradientDescent/) + - [역전파법 이란?](Theory/03_Backpropagation/) + - [역전파법 구현 - Python](Python/01_Backpropagation_Theory/) + - [텐서, 손실함수, 옵티아미저란?](TensorFlow/0_dl_math/) +- 앞먹임 신경망 + - [앞먹임 신경망 이론(Feedforward Neural Network) 이란?](Theory/01_FeedforwardNeuralNetwork/) + - [앞먹임 신경망 구현 - Keras](TensorFlow/1_BasicNeuralNet/) + - [앞먹임 신경망 구현 - Pytorch](Pytorch/1_MLP/) +- 자기부호화기 + - [자기부호화기(AutoEncoder) 란?](Theory/04_AutoEncoder/) + - [자기부호화기(AutoEncoder) 구현 - Pytorch](Pytorch/1_MLP/1_AutoEncoder.ipynb) +- 합성곱 신경망 + - [합성곱 신경망(CNN) 이란?](Theory/05_CNN/) + - [CNN 구현 - Keras](TensorFlow/2_CNN/) + - [CNN 구현 - Pytorch](Pytorch/2_CNN/) +- 재귀 신경망 + - [재귀 신경망(RNN) 이란?](Theory/06_RNN/) + - [재귀 신경망 구현 - Keras](TensorFlow/3_RNN/) + - [재귀 신경망 구현 - Pytorch](Pytorch/3_NLP/) \ No newline at end of file diff --git a/TFLite/SpeechRecognition/aos_speech_commands/.gitignore b/TFLite/SpeechRecognition/aos_speech_commands/.gitignore new file mode 100755 index 0000000..23a894d --- /dev/null +++ b/TFLite/SpeechRecognition/aos_speech_commands/.gitignore @@ -0,0 +1,16 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +/build +/captures +.externalNativeBuild + +/.gradle/ +/.idea diff --git a/TFLite/SpeechRecognition/aos_speech_commands/app/.gitignore b/TFLite/SpeechRecognition/aos_speech_commands/app/.gitignore new file mode 100755 index 0000000..23a894d --- /dev/null +++ b/TFLite/SpeechRecognition/aos_speech_commands/app/.gitignore @@ -0,0 +1,16 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +/build +/captures +.externalNativeBuild + +/.gradle/ +/.idea diff --git a/TFLite/SpeechRecognition/aos_speech_commands/app/build.gradle b/TFLite/SpeechRecognition/aos_speech_commands/app/build.gradle new file mode 100755 index 0000000..907fd6b --- /dev/null +++ b/TFLite/SpeechRecognition/aos_speech_commands/app/build.gradle @@ -0,0 +1,53 @@ +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android-extensions' +apply plugin: 'kotlin-android' +apply plugin: 'de.undercouch.download' + +android { + compileSdkVersion 28 + buildToolsVersion '28.0.3' + defaultConfig { + applicationId "com.google.tflite.speechrecognition" + minSdkVersion 21 + targetSdkVersion 28 + versionCode 1 + versionName "1.0" + testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } + aaptOptions { + noCompress "tflite" + } + compileOptions { + sourceCompatibility = '1.8' + targetCompatibility = '1.8' + } +} + +// import DownloadModels task +project.ext.ASSET_DIR = projectDir.toString() + '/src/main/assets' +project.ext.TMP_DIR = project.buildDir.toString() + '/downloads' + +// Download default models; if you wish to use your own models then +// place them in the "assets" directory and comment out this line. +//apply from: "download_model.gradle" + +apply from:'download_model.gradle' + + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation 'com.android.support:appcompat-v7:28.0.0' + implementation 'com.android.support.constraint:constraint-layout:1.1.3' + implementation 'com.android.support:design:28.0.0' + implementation 'org.tensorflow:tensorflow-lite:0.0.0-nightly' + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" +} +repositories { + mavenCentral() +} diff --git a/TFLite/SpeechRecognition/aos_speech_commands/app/download_model.gradle b/TFLite/SpeechRecognition/aos_speech_commands/app/download_model.gradle new file mode 100755 index 0000000..7d3d49d --- /dev/null +++ b/TFLite/SpeechRecognition/aos_speech_commands/app/download_model.gradle @@ -0,0 +1,26 @@ + +task downloadZipFile(type: Download) { + src 'http://storage.googleapis.com/download.tensorflow.org/models/tflite/conv_actions_tflite.zip' + dest new File(buildDir, 'zips/') + overwrite true +} + + +task downloadAndUnzipFile(dependsOn: downloadZipFile, type: Copy) { + from zipTree(downloadZipFile.dest) + into project.ext.ASSET_DIR +} + + +task extractModels(type: Copy) { + dependsOn downloadAndUnzipFile +} + +tasks.whenTaskAdded { task -> + if (task.name == 'assembleDebug') { + task.dependsOn 'extractModels' + } + if (task.name == 'assembleRelease') { + task.dependsOn 'extractModels' + } +} \ No newline at end of file diff --git a/TFLite/SpeechRecognition/aos_speech_commands/app/proguard-rules.pro b/TFLite/SpeechRecognition/aos_speech_commands/app/proguard-rules.pro new file mode 100755 index 0000000..f1b4245 --- /dev/null +++ b/TFLite/SpeechRecognition/aos_speech_commands/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/TFLite/SpeechRecognition/aos_speech_commands/app/src/androidTest/java/com/google/tflite/speechrecognition/ExampleInstrumentedTest.java b/TFLite/SpeechRecognition/aos_speech_commands/app/src/androidTest/java/com/google/tflite/speechrecognition/ExampleInstrumentedTest.java new file mode 100755 index 0000000..ca91cff --- /dev/null +++ b/TFLite/SpeechRecognition/aos_speech_commands/app/src/androidTest/java/com/google/tflite/speechrecognition/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package com.google.tflite.speechrecognition; + +import android.content.Context; +import android.support.test.InstrumentationRegistry; +import android.support.test.runner.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.*; + +/** + * Instrumented test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getTargetContext(); + + assertEquals("com.google.tflite.speechrecognition", appContext.getPackageName()); + } +} diff --git a/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/AndroidManifest.xml b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/AndroidManifest.xml new file mode 100755 index 0000000..daee6e0 --- /dev/null +++ b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/AndroidManifest.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/assets/conv_actions_labels.txt b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/assets/conv_actions_labels.txt new file mode 100755 index 0000000..ba41645 --- /dev/null +++ b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/assets/conv_actions_labels.txt @@ -0,0 +1,12 @@ +_silence_ +_unknown_ +yes +no +up +down +left +right +on +off +stop +go \ No newline at end of file diff --git a/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/java/com/google/tflite/speechrecognition/MainActivity.kt b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/java/com/google/tflite/speechrecognition/MainActivity.kt new file mode 100755 index 0000000..a4bdd12 --- /dev/null +++ b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/java/com/google/tflite/speechrecognition/MainActivity.kt @@ -0,0 +1,374 @@ +/* + * Copyright 2019 The TensorFlow Authors. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* Demonstrates how to run an audio recognition model in Android. + +This example loads a simple speech recognition model trained by the tutorial at +https://www.tensorflow.org/tutorials/audio_training + +The model files should be downloaded automatically from the TensorFlow website, +but if you have a custom model you can update the LABEL_FILENAME and +MODEL_FILENAME constants to point to your own files. + +The example application displays a list view with all of the known audio labels, +and highlights each one when it thinks it has detected one through the +microphone. The averaging of results to give a more reliable signal happens in +the RecognizeCommands helper class. +*/ + +package com.google.tflite.speechrecognition + +import android.app.Activity +import android.content.pm.PackageManager +import android.media.AudioFormat +import android.media.AudioRecord +import android.media.MediaRecorder +import android.os.Build +import android.os.Bundle +import android.support.v4.content.ContextCompat +import android.util.Log +import android.widget.TextView +import com.google.tflite.speechrecognition.tflite.RecognizeCommands +import com.google.tflite.speechrecognition.tflite.SpeechInterpreter +import org.tensorflow.lite.Interpreter +import java.io.BufferedReader +import java.io.IOException +import java.io.InputStreamReader +import java.io.Reader +import java.util.* +import java.util.concurrent.locks.ReentrantLock +import kotlin.math.max +import kotlin.math.roundToInt + +/** + * An activity that listens for audio and then uses a TensorFlow model to detect particular classes, + * by default a small set of action words. + */ +class MainActivity : Activity() { + + + private var selectedTextView: TextView? = null + private var lastProcessingTimeMs: Long = 0 + private lateinit var speechInterpreter: SpeechInterpreter + + // Working variables. + private var recordingBuffer = ShortArray(RECORDING_LENGTH) + private var recordingOffset = 0 + private var shouldContinue = true + private var recordingThread: Thread? = null + private var shouldContinueRecognition = true + private var recognitionThread: Thread? = null + private val recordingBufferLock = ReentrantLock() + + private val labels = ArrayList() + private val displayedLabels = ArrayList() + private var tfLite: Interpreter? = null + + private var yesTextView: TextView? = null + private var noTextView: TextView? = null + private var upTextView: TextView? = null + private var downTextView: TextView? = null + private var leftTextView: TextView? = null + private var rightTextView: TextView? = null + private var onTextView: TextView? = null + private var offTextView: TextView? = null + private var stopTextView: TextView? = null + private var goTextView: TextView? = null + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_main) + + val actualLabelFilename = LABEL_FILENAME.split("file:///android_asset/".toRegex()).toTypedArray()[1] + Log.i(LOG_TAG, "Reading labels from: $actualLabelFilename") + val br: BufferedReader? + try { + br = BufferedReader(InputStreamReader(assets.open(actualLabelFilename)) as Reader?) + var line: String? + do { + line = br.readLine() + if (line != null) { + labels.add(line) + if (line[0] != '_') { + displayedLabels.add(line.substring(0, 1).toUpperCase() + line.substring(1)) + } + } + } while (line != null) + br.close() + } catch (e: IOException) { + throw RuntimeException("Problem reading label file!", e) + } + + val actualModelFilename = MODEL_FILENAME.split("file:///android_asset/".toRegex()).toTypedArray()[1] + speechInterpreter = SpeechInterpreter(assets, actualModelFilename) + try { + tfLite = speechInterpreter.getTfLite() + } catch (e: Exception) { + throw RuntimeException(e) + } + + tfLite!!.resizeInput(0, intArrayOf(RECORDING_LENGTH, 1)) + tfLite!!.resizeInput(1, intArrayOf(1)) + + // Start the recording and recognition threads. + requestMicrophonePermission() + startRecording() + startRecognition() + + yesTextView = findViewById(R.id.yes) + noTextView = findViewById(R.id.no) + upTextView = findViewById(R.id.up) + downTextView = findViewById(R.id.down) + leftTextView = findViewById(R.id.left) + rightTextView = findViewById(R.id.right) + onTextView = findViewById(R.id.on) + offTextView = findViewById(R.id.off) + stopTextView = findViewById(R.id.stop) + goTextView = findViewById(R.id.go) + + } + + private fun requestMicrophonePermission() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + requestPermissions( + arrayOf(android.Manifest.permission.RECORD_AUDIO), REQUEST_RECORD_AUDIO) + } + } + + override fun onRequestPermissionsResult( + requestCode: Int, permissions: Array, grantResults: IntArray) { + if (requestCode == REQUEST_RECORD_AUDIO + && grantResults.isNotEmpty() + && grantResults[0] == PackageManager.PERMISSION_GRANTED) { + startRecording() + startRecognition() + } + } + + @Synchronized + fun startRecording() { + if (recordingThread != null) { + return + } + shouldContinue = true + recordingThread = Thread( + Runnable { record() }) + recordingThread!!.start() + } + + @Synchronized + fun stopRecording() { + if (recordingThread == null) { + return + } + shouldContinue = false + recordingThread = null + } + + private fun record() { + + Log.e("amlan", "Recording in progress") + android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_AUDIO) + + // Estimate the buffer size we'll need for this device. + var bufferSize = AudioRecord.getMinBufferSize( + SAMPLE_RATE, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT) + if (bufferSize == AudioRecord.ERROR || bufferSize == AudioRecord.ERROR_BAD_VALUE) { + bufferSize = SAMPLE_RATE * 2 + } + val audioBuffer = ShortArray(bufferSize / 2) + + val record = AudioRecord( + MediaRecorder.AudioSource.DEFAULT, + SAMPLE_RATE, + AudioFormat.CHANNEL_IN_MONO, + AudioFormat.ENCODING_PCM_16BIT, + bufferSize) + + if (record.state != AudioRecord.STATE_INITIALIZED) { + Log.e(LOG_TAG, "Audio Record can't initialize!") + return + } + + record.startRecording() + + Log.v(LOG_TAG, "Start recording") + + // Loop, gathering audio data and copying it to a round-robin buffer. + while (shouldContinue) { + val numberRead = record.read(audioBuffer, 0, audioBuffer.size) + val maxLength = recordingBuffer.size + val newRecordingOffset = recordingOffset + numberRead + val secondCopyLength = max(0, newRecordingOffset - maxLength) + val firstCopyLength = numberRead - secondCopyLength + // We store off all the data for the recognition thread to access. The ML + // thread will copy out of this buffer into its own, while holding the + // lock, so this should be thread safe. + recordingBufferLock.lock() + try { + System.arraycopy(audioBuffer, 0, recordingBuffer, recordingOffset, firstCopyLength) + System.arraycopy(audioBuffer, firstCopyLength, recordingBuffer, 0, secondCopyLength) + recordingOffset = newRecordingOffset % maxLength + } finally { + recordingBufferLock.unlock() + } + } + + record.stop() + record.release() + } + + @Synchronized + fun startRecognition() { + if (recognitionThread != null) { + return + } + shouldContinueRecognition = true + recognitionThread = Thread( + Runnable { recognize() }) + recognitionThread!!.start() + } + + private fun recognize() { + + Log.e("amlan", "Start recognition") + + val inputBuffer = ShortArray(RECORDING_LENGTH) + val floatInputBuffer = Array(RECORDING_LENGTH) { FloatArray(1) } + val outputScores = Array(1) { FloatArray(labels.size) } + val sampleRateList = intArrayOf(SAMPLE_RATE) + + // Loop, grabbing recorded data and running the recognition model on it. + while (shouldContinueRecognition) { + val startTime = Date().time + // The recording thread places data in this round-robin buffer, so lock to + // make sure there's no writing happening and then copy it to our own + // local version. + recordingBufferLock.lock() + try { + val maxLength = recordingBuffer.size + val firstCopyLength = maxLength - recordingOffset + val secondCopyLength = recordingOffset + System.arraycopy(recordingBuffer, recordingOffset, inputBuffer, 0, firstCopyLength) + System.arraycopy(recordingBuffer, 0, inputBuffer, firstCopyLength, secondCopyLength) + } finally { + recordingBufferLock.unlock() + } + + // We need to feed in float values between -1.0f and 1.0f, so divide the + // signed 16-bit inputs. + for (i in 0 until RECORDING_LENGTH) { + floatInputBuffer[i][0] = inputBuffer[i] / 32767.0f + } + + val inputArray = arrayOf(floatInputBuffer, sampleRateList) + val outputMap = HashMap() + outputMap[0] = outputScores + + // Run the model. + tfLite!!.runForMultipleInputsOutputs(inputArray, outputMap) + + // Use the smoother to figure out if we've had a real recognition event. + val currentTime = System.currentTimeMillis() + val result: RecognizeCommands.RecognitionResult = + speechInterpreter.getRecognizer().processLatestResults(outputScores[0], currentTime) + lastProcessingTimeMs = Date().time - startTime + + runOnUiThread { updateUI(result) } + + try { + // We don't need to run too frequently, so snooze for a bit. + Thread.sleep(MINIMUM_TIME_BETWEEN_SAMPLES_MS) + } catch (e: InterruptedException) { + // Ignore + } + + } + + Log.v(LOG_TAG, "End recognition") + } + + private fun updateUI(result: RecognizeCommands.RecognitionResult) { + // If we do have a new command, highlight the right list entry. + if (!result.foundCommand.startsWith("_") && result.isNewCommand) { + var labelIndex: Int = -1 + for (i in 0 until labels.size) { + if (labels[i] == result.foundCommand) { + labelIndex = i + } + } + + when (labelIndex - 2) { + 0 -> + selectedTextView = yesTextView + 1 -> + selectedTextView = noTextView + 2 -> + selectedTextView = upTextView + 3 -> + selectedTextView = downTextView + 4 -> + selectedTextView = leftTextView + 5 -> + selectedTextView = rightTextView + 6 -> + selectedTextView = onTextView + 7 -> + selectedTextView = offTextView + 8 -> + selectedTextView = stopTextView + 9 -> + selectedTextView = goTextView + } + highlightRecognizedText(result) + } + } + + private fun highlightRecognizedText(result: RecognizeCommands.RecognitionResult) { + if (selectedTextView != null) { + selectedTextView!!.setBackgroundColor(R.drawable.round_corner_text_bg_selected) + val score = "${(result.score * 100).roundToInt()}%" + selectedTextView!!.text = "${selectedTextView!!.text} \n $score" + selectedTextView!!.setTextColor( + ContextCompat.getColor(selectedTextView!!.context,android.R.color.holo_orange_light)) + selectedTextView!!.postDelayed({ + val origionalString: String = + selectedTextView!!.text.toString().replace(score, "").trim() + selectedTextView!!.text = origionalString + selectedTextView!!.setBackgroundResource( + R.drawable.round_corner_text_bg_unselected) + selectedTextView!!.setTextColor( + ContextCompat.getColor(selectedTextView!!.context,android.R.color.darker_gray)) + }, 700) + } + } + + override fun onStop() { + super.onStop() + stopRecording() + } + + companion object { + private const val LOG_TAG = "MainActivity" + private const val LABEL_FILENAME = "file:///android_asset/conv_actions_labels.txt" + private const val SAMPLE_RATE = 16000 + private const val SAMPLE_DURATION_MS = 1000 + private const val RECORDING_LENGTH = SAMPLE_RATE * SAMPLE_DURATION_MS / 1000 + private const val MINIMUM_TIME_BETWEEN_SAMPLES_MS: Long = 30 + private const val REQUEST_RECORD_AUDIO = 13 + private const val MODEL_FILENAME = "file:///android_asset/conv_actions_frozen.tflite" + } +} diff --git a/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/java/com/google/tflite/speechrecognition/tflite/RecognizeCommands.kt b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/java/com/google/tflite/speechrecognition/tflite/RecognizeCommands.kt new file mode 100755 index 0000000..d5db848 --- /dev/null +++ b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/java/com/google/tflite/speechrecognition/tflite/RecognizeCommands.kt @@ -0,0 +1,162 @@ +/* + * Copyright 2019 The TensorFlow Authors. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.tflite.speechrecognition.tflite + +import android.util.Log +import android.util.Pair +import java.util.* + +/** Reads in results from an instantaneous audio recognition model and smoothes them over time. */ +class RecognizeCommands( + inLabels: List, + private val averageWindowDurationMs: Long, + private val detectionThreshold: Float, + private val suppressionMs: Int, + private val minimumCount: Int, + private val minimumTimeBetweenSamplesMs: Long) { + // Configuration settings. + private var labels = ArrayList() + + // Working variables. + private val previousResults = ArrayDeque>() + private var previousTopLabel: String + private val labelsCount: Int + private var previousTopLabelTime: Long = 0 + private var previousTopLabelScore: Float = 0.toFloat() + + init { + labels = inLabels as ArrayList + labelsCount = inLabels.size + previousTopLabel = SILENCE_LABEL + previousTopLabelTime = java.lang.Long.MIN_VALUE + previousTopLabelScore = 0.0f + } + + /** Holds information about what's been recognized. */ + class RecognitionResult(val foundCommand: String, val score: Float, val isNewCommand: Boolean) + + private class ScoreForSorting(val score: Float, val index: Int) : Comparable { + + override fun compareTo(other: ScoreForSorting): Int { + return when { + this.score > other.score -> -1 + this.score < other.score -> 1 + else -> 0 + } + } + } + + fun processLatestResults(currentResults: FloatArray, currentTimeMS: Long): RecognitionResult { + if (currentResults.size != labelsCount) { + throw RuntimeException( + "The results for recognition should contain " + + labelsCount + + " elements, but there are " + + currentResults.size) + } + + if (!previousResults.isEmpty() && currentTimeMS < previousResults.first.first) { + throw RuntimeException( + "You must feed results in increasing time order, but received a timestamp of " + + currentTimeMS + + " that was earlier than the previous one of " + + previousResults.first.first) + } + + var howManyResults = previousResults.size + // Ignore any results that are coming in too frequently. + if (howManyResults > 1) { + val timeSinceMostRecent = currentTimeMS - previousResults.last.first + if (timeSinceMostRecent < minimumTimeBetweenSamplesMs) { + return RecognitionResult(previousTopLabel, previousTopLabelScore, false) + } + } + + // Add the latest results to the head of the queue. + previousResults.addLast(Pair(currentTimeMS, currentResults)) + + // Prune any earlier results that are too old for the averaging window. + val timeLimit = currentTimeMS - averageWindowDurationMs + while (previousResults.first.first < timeLimit) { + previousResults.removeFirst() + } + + howManyResults = previousResults.size + + // If there are too few results, assume the result will be unreliable and + // bail. + val earliestTime = previousResults.first.first + val samplesDuration = currentTimeMS - earliestTime + + Log.v("Number of Results: ", howManyResults.toString()) + + Log.v( + "Duration < WD/FRAC?", + (samplesDuration < averageWindowDurationMs / MINIMUM_TIME_FRACTION).toString()) + + if (howManyResults < minimumCount) { + Log.v("RecognizeResult", "Too few results") + return RecognitionResult(previousTopLabel, 0.0f, false) + }// || (samplesDuration < (averageWindowDurationMs / MINIMUM_TIME_FRACTION)) + + // Calculate the average score across all the results in the window. + val averageScores = FloatArray(labelsCount) + for (previousResult in previousResults) { + val scoresTensor = previousResult.second + var i = 0 + while (i < scoresTensor.size) { + averageScores[i] += scoresTensor[i] / howManyResults + ++i + } + } + + // Sort the averaged results in descending score order. + val sortedAverageScores = arrayOfNulls(labelsCount) + for (i in 0 until labelsCount) { + sortedAverageScores[i] = ScoreForSorting(averageScores[i], i) + } + Arrays.sort(sortedAverageScores) + + // See if the latest top score is enough to trigger a detection. + val currentTopIndex = sortedAverageScores[0]?.index + val currentTopLabel = labels[currentTopIndex!!] + val currentTopScore = sortedAverageScores[0]!!.score + // If we've recently had another label trigger, assume one that occurs too + // soon afterwards is a bad result. + val timeSinceLastTop: Long = if (previousTopLabel == SILENCE_LABEL || previousTopLabelTime == java.lang.Long.MIN_VALUE) { + java.lang.Long.MAX_VALUE + } else { + currentTimeMS - previousTopLabelTime + } + val isNewCommand: Boolean + if (currentTopScore > detectionThreshold && timeSinceLastTop > suppressionMs) { + previousTopLabel = currentTopLabel + previousTopLabelTime = currentTimeMS + previousTopLabelScore = currentTopScore + isNewCommand = true + } else { + isNewCommand = false + } + return RecognitionResult(currentTopLabel, currentTopScore, isNewCommand) + } + + companion object { + + private const val SILENCE_LABEL = "_silence_" + private const val MINIMUM_TIME_FRACTION: Long = 4 + } +} diff --git a/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/java/com/google/tflite/speechrecognition/tflite/SpeechInterpreter.kt b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/java/com/google/tflite/speechrecognition/tflite/SpeechInterpreter.kt new file mode 100755 index 0000000..a7d715d --- /dev/null +++ b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/java/com/google/tflite/speechrecognition/tflite/SpeechInterpreter.kt @@ -0,0 +1,62 @@ +package com.google.tflite.speechrecognition.tflite + +import android.content.res.AssetManager +import android.util.Log +import org.tensorflow.lite.Interpreter +import java.io.FileInputStream +import java.io.IOException +import java.nio.ByteBuffer +import java.nio.channels.FileChannel + +class SpeechInterpreter//Load TFlite + +//Read Labels +(assets: AssetManager, fileName: String) { + + private var recognizeCommands: RecognizeCommands + private var tflite: Interpreter + private var labels: List + + init { + val byteBuffer = loadModelFile(assets, fileName) + tflite = Interpreter(byteBuffer) + val actualLabelFilename = LABEL_FILENAME.split("file:///android_asset/".toRegex()).toTypedArray()[1] + labels = assets.open(actualLabelFilename).bufferedReader().useLines { it.toList() } + Log.i(LOG_TAG, "Reading labels from: $actualLabelFilename") + recognizeCommands = RecognizeCommands( + labels, + AVERAGE_WINDOW_DURATION_MS, + DETECTION_THRESHOLD, + SUPPRESSION_MS, + MINIMUM_COUNT, + MINIMUM_TIME_BETWEEN_SAMPLES_MS) + } + + @Throws(IOException::class) + private fun loadModelFile(assets: AssetManager, modelFilename: String): ByteBuffer { + val fileDescriptor = assets.openFd(modelFilename) + val inputStream = FileInputStream(fileDescriptor.fileDescriptor) + val fileChannel = inputStream.channel + val startOffset = fileDescriptor.startOffset + val declaredLength = fileDescriptor.declaredLength + return fileChannel.map(FileChannel.MapMode.READ_ONLY, startOffset, declaredLength) + } + + fun getTfLite(): Interpreter { + return tflite + } + + fun getRecognizer(): RecognizeCommands { + return recognizeCommands + } + + companion object { + private const val LABEL_FILENAME = "file:///android_asset/conv_actions_labels.txt" + private const val LOG_TAG: String = "SpeechInterpreter" + private const val MINIMUM_TIME_BETWEEN_SAMPLES_MS: Long = 30 + private const val MINIMUM_COUNT = 3 + private const val SUPPRESSION_MS = 1500 + private const val DETECTION_THRESHOLD = 0.50f + private const val AVERAGE_WINDOW_DURATION_MS: Long = 1000 + } +} \ No newline at end of file diff --git a/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100755 index 0000000..1f6bb29 --- /dev/null +++ b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + diff --git a/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/drawable-xxxhdpi/tfl_logo.png b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/drawable-xxxhdpi/tfl_logo.png new file mode 100755 index 0000000..d709f93 Binary files /dev/null and b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/drawable-xxxhdpi/tfl_logo.png differ diff --git a/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/drawable/border.xml b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/drawable/border.xml new file mode 100755 index 0000000..f36d15c --- /dev/null +++ b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/drawable/border.xml @@ -0,0 +1,19 @@ + + + + + diff --git a/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/drawable/ic_launcher_background.xml b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100755 index 0000000..d5fccc5 --- /dev/null +++ b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/drawable/rectangle.xml b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/drawable/rectangle.xml new file mode 100755 index 0000000..b8f5d35 --- /dev/null +++ b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/drawable/rectangle.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/drawable/round_corner_text_bg_selected.xml b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/drawable/round_corner_text_bg_selected.xml new file mode 100755 index 0000000..81a19e4 --- /dev/null +++ b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/drawable/round_corner_text_bg_selected.xml @@ -0,0 +1,13 @@ + + + + + + + \ No newline at end of file diff --git a/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/drawable/round_corner_text_bg_unselected.xml b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/drawable/round_corner_text_bg_unselected.xml new file mode 100755 index 0000000..2b8f62b --- /dev/null +++ b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/drawable/round_corner_text_bg_unselected.xml @@ -0,0 +1,13 @@ + + + + + + + \ No newline at end of file diff --git a/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/layout/activity_main.xml b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/layout/activity_main.xml new file mode 100755 index 0000000..981f0a7 --- /dev/null +++ b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100755 index 0000000..eca70cf --- /dev/null +++ b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100755 index 0000000..eca70cf --- /dev/null +++ b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/mipmap-hdpi/ic_launcher.png b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100755 index 0000000..898f3ed Binary files /dev/null and b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/mipmap-hdpi/ic_launcher_round.png new file mode 100755 index 0000000..dffca36 Binary files /dev/null and b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/mipmap-hdpi/ic_launcher_round.png differ diff --git a/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/mipmap-mdpi/ic_launcher.png b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100755 index 0000000..64ba76f Binary files /dev/null and b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/mipmap-mdpi/ic_launcher_round.png new file mode 100755 index 0000000..dae5e08 Binary files /dev/null and b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/mipmap-mdpi/ic_launcher_round.png differ diff --git a/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100755 index 0000000..e5ed465 Binary files /dev/null and b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png new file mode 100755 index 0000000..14ed0af Binary files /dev/null and b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ diff --git a/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100755 index 0000000..b0907ca Binary files /dev/null and b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png new file mode 100755 index 0000000..d8ae031 Binary files /dev/null and b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ diff --git a/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100755 index 0000000..2c18de9 Binary files /dev/null and b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100755 index 0000000..beed3cd Binary files /dev/null and b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ diff --git a/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/values/colors.xml b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/values/colors.xml new file mode 100755 index 0000000..705ae92 --- /dev/null +++ b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/values/colors.xml @@ -0,0 +1,10 @@ + + + #008577 + #00574B + #D81B60 + + + #66000000 + #303C42 + diff --git a/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/values/strings.xml b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/values/strings.xml new file mode 100755 index 0000000..6ab11e4 --- /dev/null +++ b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + speechrecognition + diff --git a/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/values/styles.xml b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/values/styles.xml new file mode 100755 index 0000000..5885930 --- /dev/null +++ b/TFLite/SpeechRecognition/aos_speech_commands/app/src/main/res/values/styles.xml @@ -0,0 +1,11 @@ + + + + + + diff --git a/TFLite/SpeechRecognition/aos_speech_commands/app/src/test/java/com/google/tflite/speechrecognition/ExampleUnitTest.java b/TFLite/SpeechRecognition/aos_speech_commands/app/src/test/java/com/google/tflite/speechrecognition/ExampleUnitTest.java new file mode 100755 index 0000000..9b50e67 --- /dev/null +++ b/TFLite/SpeechRecognition/aos_speech_commands/app/src/test/java/com/google/tflite/speechrecognition/ExampleUnitTest.java @@ -0,0 +1,17 @@ +package com.google.tflite.speechrecognition; + +import org.junit.Test; + +import static org.junit.Assert.*; + +/** + * Example local unit test, which will execute on the development machine (host). + * + * @see Testing documentation + */ +public class ExampleUnitTest { + @Test + public void addition_isCorrect() { + assertEquals(4, 2 + 2); + } +} \ No newline at end of file diff --git a/TFLite/SpeechRecognition/aos_speech_commands/build.gradle b/TFLite/SpeechRecognition/aos_speech_commands/build.gradle new file mode 100755 index 0000000..300b294 --- /dev/null +++ b/TFLite/SpeechRecognition/aos_speech_commands/build.gradle @@ -0,0 +1,29 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. + +buildscript { + ext.kotlin_version = '1.3.41' + repositories { + google() + jcenter() + + } + dependencies { + classpath 'com.android.tools.build:gradle:3.4.2' + classpath 'de.undercouch:gradle-download-task:3.4.3' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +allprojects { + repositories { + google() + jcenter() + + } +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/TFLite/SpeechRecognition/aos_speech_commands/gradle.properties b/TFLite/SpeechRecognition/aos_speech_commands/gradle.properties new file mode 100755 index 0000000..82618ce --- /dev/null +++ b/TFLite/SpeechRecognition/aos_speech_commands/gradle.properties @@ -0,0 +1,15 @@ +# Project-wide Gradle settings. +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx1536m +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true + + diff --git a/TFLite/SpeechRecognition/aos_speech_commands/gradle/wrapper/gradle-wrapper.jar b/TFLite/SpeechRecognition/aos_speech_commands/gradle/wrapper/gradle-wrapper.jar new file mode 100755 index 0000000..f6b961f Binary files /dev/null and b/TFLite/SpeechRecognition/aos_speech_commands/gradle/wrapper/gradle-wrapper.jar differ diff --git a/TFLite/SpeechRecognition/aos_speech_commands/gradle/wrapper/gradle-wrapper.properties b/TFLite/SpeechRecognition/aos_speech_commands/gradle/wrapper/gradle-wrapper.properties new file mode 100755 index 0000000..a38979f --- /dev/null +++ b/TFLite/SpeechRecognition/aos_speech_commands/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Tue Jul 02 11:49:19 IST 2019 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip diff --git a/TFLite/SpeechRecognition/aos_speech_commands/gradlew b/TFLite/SpeechRecognition/aos_speech_commands/gradlew new file mode 100755 index 0000000..cccdd3d --- /dev/null +++ b/TFLite/SpeechRecognition/aos_speech_commands/gradlew @@ -0,0 +1,172 @@ +#!/usr/bin/env sh + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/TFLite/SpeechRecognition/aos_speech_commands/gradlew.bat b/TFLite/SpeechRecognition/aos_speech_commands/gradlew.bat new file mode 100755 index 0000000..f955316 --- /dev/null +++ b/TFLite/SpeechRecognition/aos_speech_commands/gradlew.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/TFLite/SpeechRecognition/aos_speech_commands/settings.gradle b/TFLite/SpeechRecognition/aos_speech_commands/settings.gradle new file mode 100755 index 0000000..e7b4def --- /dev/null +++ b/TFLite/SpeechRecognition/aos_speech_commands/settings.gradle @@ -0,0 +1 @@ +include ':app' diff --git a/TFLite/SpeechRecognition/ios_speech_commands/RunScripts/download_models.sh b/TFLite/SpeechRecognition/ios_speech_commands/RunScripts/download_models.sh new file mode 100755 index 0000000..c2682a4 --- /dev/null +++ b/TFLite/SpeechRecognition/ios_speech_commands/RunScripts/download_models.sh @@ -0,0 +1,60 @@ +#!/bin/bash +# Copyright 2019 The TensorFlow Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== + +set -ex + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +MODELS_URL="https://storage.googleapis.com/download.tensorflow.org/models/tflite/conv_actions_tflite.zip" +DOWNLOADS_DIR=$(mktemp -d) + +cd $SCRIPT_DIR + +download_and_extract() { + local usage="Usage: download_and_extract URL DIR" + local url="${1:?${usage}}" + local dir="${2:?${usage}}" + echo "downloading ${url}" >&2 + mkdir -p "${dir}" + tempdir=$(mktemp -d) + tempdir2=$(mktemp -d) + + curl -L ${url} > ${tempdir}/zipped.zip + unzip ${tempdir}/zipped.zip -d ${tempdir2} + + # If the zip file contains nested directories, extract the files from the + # inner directory. + if ls ${tempdir2}/*/* 1> /dev/null 2>&1; then + # unzip has no strip components, so unzip to a temp dir, and move the + # files we want from the tempdir to destination. + cp -R ${tempdir2}/*/* ${dir}/ + else + cp -R ${tempdir2}/* ${dir}/ + fi + rm -rf ${tempdir2} ${tempdir} +} + +if [ -f ../SpeechCommands/Model/conv_actions_frozen.tflite ] +then +echo "File exists. Exiting..." +exit 0 +fi + +download_and_extract "${MODELS_URL}" "${DOWNLOADS_DIR}/models" + +file ${DOWNLOADS_DIR}/models + +cp ${DOWNLOADS_DIR}/models/* ../SpeechCommands/Model + diff --git a/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands.xcodeproj/project.pbxproj b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands.xcodeproj/project.pbxproj new file mode 100644 index 0000000..972d208 --- /dev/null +++ b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands.xcodeproj/project.pbxproj @@ -0,0 +1,503 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + 037B349C2B3AA66DB59469A4 /* Pods_SpeechCommands.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B12583630B31828EED9C0D09 /* Pods_SpeechCommands.framework */; }; + 782D03BD299DE8F80058A182 /* conv_actions_frozen.tflite in Resources */ = {isa = PBXBuildFile; fileRef = 782D03BB299DE8F80058A182 /* conv_actions_frozen.tflite */; }; + 782D03BE299DE8F80058A182 /* conv_actions_labels.txt in Resources */ = {isa = PBXBuildFile; fileRef = 782D03BC299DE8F80058A182 /* conv_actions_labels.txt */; }; + AA1C17622186E2F0006F9564 /* WordCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA1C17612186E2F0006F9564 /* WordCell.swift */; }; + AA1C176C2186FA9E006F9564 /* InfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA1C176B2186FA9E006F9564 /* InfoCell.swift */; }; + AA31546D21612AF7004B2732 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA31546C21612AF7004B2732 /* ViewController.swift */; }; + AA3BF5DD2154CA9F00796012 /* ModelDataHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA3BF5DC2154CA9F00796012 /* ModelDataHandler.swift */; }; + AA7006D021526754003E34C0 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA7006CF21526754003E34C0 /* AppDelegate.swift */; }; + AA7006D721526757003E34C0 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = AA7006D621526757003E34C0 /* Assets.xcassets */; }; + AA7006DA21526757003E34C0 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AA7006D821526757003E34C0 /* LaunchScreen.storyboard */; }; + AA73C15E216120FA0063142C /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AA73C15C216120F90063142C /* Main.storyboard */; }; + AA73C161216126B20063142C /* AudioInputManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA73C160216126B20063142C /* AudioInputManager.swift */; }; + AAE67264215DFA1900C6E344 /* RecognizeCommands.swift in Sources */ = {isa = PBXBuildFile; fileRef = AAE67263215DFA1900C6E344 /* RecognizeCommands.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 782D03BB299DE8F80058A182 /* conv_actions_frozen.tflite */ = {isa = PBXFileReference; lastKnownFileType = file; path = conv_actions_frozen.tflite; sourceTree = ""; }; + 782D03BC299DE8F80058A182 /* conv_actions_labels.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = conv_actions_labels.txt; sourceTree = ""; }; + A0DC5C2A90328FAA7173C341 /* Pods-SpeechCommands.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SpeechCommands.debug.xcconfig"; path = "Target Support Files/Pods-SpeechCommands/Pods-SpeechCommands.debug.xcconfig"; sourceTree = ""; }; + AA1C17612186E2F0006F9564 /* WordCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WordCell.swift; sourceTree = ""; }; + AA1C176B2186FA9E006F9564 /* InfoCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InfoCell.swift; sourceTree = ""; }; + AA31546C21612AF7004B2732 /* ViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ViewController.swift; path = SpeechCommands/ViewControllers/ViewController.swift; sourceTree = SOURCE_ROOT; }; + AA3BF5DC2154CA9F00796012 /* ModelDataHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ModelDataHandler.swift; sourceTree = ""; }; + AA7006CC21526754003E34C0 /* SpeechCommands.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SpeechCommands.app; sourceTree = BUILT_PRODUCTS_DIR; }; + AA7006CF21526754003E34C0 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + AA7006D621526757003E34C0 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + AA7006D921526757003E34C0 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + AA7006DB21526757003E34C0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + AA73C15D216120F90063142C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + AA73C160216126B20063142C /* AudioInputManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioInputManager.swift; sourceTree = ""; }; + AAE67263215DFA1900C6E344 /* RecognizeCommands.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecognizeCommands.swift; sourceTree = ""; }; + ADB2EB587E61B830B53EB5A7 /* Pods-SpeechCommands.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SpeechCommands.release.xcconfig"; path = "Target Support Files/Pods-SpeechCommands/Pods-SpeechCommands.release.xcconfig"; sourceTree = ""; }; + B12583630B31828EED9C0D09 /* Pods_SpeechCommands.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SpeechCommands.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + AA7006C921526754003E34C0 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 037B349C2B3AA66DB59469A4 /* Pods_SpeechCommands.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + AA055D7A2161FC0100B25948 /* ViewControllers */ = { + isa = PBXGroup; + children = ( + AA31546C21612AF7004B2732 /* ViewController.swift */, + ); + path = ViewControllers; + sourceTree = ""; + }; + AA055D83216220E700B25948 /* Model */ = { + isa = PBXGroup; + children = ( + 782D03BB299DE8F80058A182 /* conv_actions_frozen.tflite */, + 782D03BC299DE8F80058A182 /* conv_actions_labels.txt */, + ); + path = Model; + sourceTree = ""; + }; + AA1C175D2186E2A2006F9564 /* Cells */ = { + isa = PBXGroup; + children = ( + AA1C176B2186FA9E006F9564 /* InfoCell.swift */, + AA1C17612186E2F0006F9564 /* WordCell.swift */, + ); + path = Cells; + sourceTree = ""; + }; + AA3BF5DB2154CA9F00796012 /* ModelDataHandler */ = { + isa = PBXGroup; + children = ( + AA3BF5DC2154CA9F00796012 /* ModelDataHandler.swift */, + AAE67263215DFA1900C6E344 /* RecognizeCommands.swift */, + ); + path = ModelDataHandler; + sourceTree = ""; + }; + AA6222D922DDF6D10008F0C0 /* AppDelegate */ = { + isa = PBXGroup; + children = ( + AA7006CF21526754003E34C0 /* AppDelegate.swift */, + ); + path = AppDelegate; + sourceTree = ""; + }; + AA6222DA22DDF7680008F0C0 /* StoryBoards */ = { + isa = PBXGroup; + children = ( + AA73C15C216120F90063142C /* Main.storyboard */, + AA7006D821526757003E34C0 /* LaunchScreen.storyboard */, + ); + path = StoryBoards; + sourceTree = ""; + }; + AA7006C321526754003E34C0 = { + isa = PBXGroup; + children = ( + AA7006CE21526754003E34C0 /* SpeechCommands */, + AA7006CD21526754003E34C0 /* Products */, + E5EAF3575C947D42E6C03BE7 /* Frameworks */, + B704C45B52307BCBAF717C4A /* Pods */, + ); + sourceTree = ""; + }; + AA7006CD21526754003E34C0 /* Products */ = { + isa = PBXGroup; + children = ( + AA7006CC21526754003E34C0 /* SpeechCommands.app */, + ); + name = Products; + sourceTree = ""; + }; + AA7006CE21526754003E34C0 /* SpeechCommands */ = { + isa = PBXGroup; + children = ( + AA6222DA22DDF7680008F0C0 /* StoryBoards */, + AA6222D922DDF6D10008F0C0 /* AppDelegate */, + AA1C175D2186E2A2006F9564 /* Cells */, + AA055D83216220E700B25948 /* Model */, + AA055D7A2161FC0100B25948 /* ViewControllers */, + AA73C15F2161269B0063142C /* AudioInputManager */, + AA3BF5DB2154CA9F00796012 /* ModelDataHandler */, + AA7006D621526757003E34C0 /* Assets.xcassets */, + AA7006DB21526757003E34C0 /* Info.plist */, + ); + path = SpeechCommands; + sourceTree = ""; + }; + AA73C15F2161269B0063142C /* AudioInputManager */ = { + isa = PBXGroup; + children = ( + AA73C160216126B20063142C /* AudioInputManager.swift */, + ); + path = AudioInputManager; + sourceTree = ""; + }; + B704C45B52307BCBAF717C4A /* Pods */ = { + isa = PBXGroup; + children = ( + A0DC5C2A90328FAA7173C341 /* Pods-SpeechCommands.debug.xcconfig */, + ADB2EB587E61B830B53EB5A7 /* Pods-SpeechCommands.release.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; + E5EAF3575C947D42E6C03BE7 /* Frameworks */ = { + isa = PBXGroup; + children = ( + B12583630B31828EED9C0D09 /* Pods_SpeechCommands.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + AA7006CB21526754003E34C0 /* SpeechCommands */ = { + isa = PBXNativeTarget; + buildConfigurationList = AA7006F421526757003E34C0 /* Build configuration list for PBXNativeTarget "SpeechCommands" */; + buildPhases = ( + 330528C4875352C6F35F5F29 /* [CP] Check Pods Manifest.lock */, + AA31546E2161EE1F004B2732 /* ShellScript */, + AA7006C821526754003E34C0 /* Sources */, + AA7006C921526754003E34C0 /* Frameworks */, + AA7006CA21526754003E34C0 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = SpeechCommands; + productName = SpeechCommands; + productReference = AA7006CC21526754003E34C0 /* SpeechCommands.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + AA7006C421526754003E34C0 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0940; + LastUpgradeCheck = 0940; + ORGANIZATIONNAME = "Y Media Labs"; + TargetAttributes = { + AA7006CB21526754003E34C0 = { + CreatedOnToolsVersion = 9.4.1; + LastSwiftMigration = 0940; + }; + }; + }; + buildConfigurationList = AA7006C721526754003E34C0 /* Build configuration list for PBXProject "SpeechCommands" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = AA7006C321526754003E34C0; + productRefGroup = AA7006CD21526754003E34C0 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + AA7006CB21526754003E34C0 /* SpeechCommands */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + AA7006CA21526754003E34C0 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + AA73C15E216120FA0063142C /* Main.storyboard in Resources */, + 782D03BD299DE8F80058A182 /* conv_actions_frozen.tflite in Resources */, + AA7006DA21526757003E34C0 /* LaunchScreen.storyboard in Resources */, + AA7006D721526757003E34C0 /* Assets.xcassets in Resources */, + 782D03BE299DE8F80058A182 /* conv_actions_labels.txt in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 330528C4875352C6F35F5F29 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-SpeechCommands-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + AA31546E2161EE1F004B2732 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 12; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "$SRCROOT/RunScripts/download_models.sh\n"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + AA7006C821526754003E34C0 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + AA7006D021526754003E34C0 /* AppDelegate.swift in Sources */, + AAE67264215DFA1900C6E344 /* RecognizeCommands.swift in Sources */, + AA31546D21612AF7004B2732 /* ViewController.swift in Sources */, + AA3BF5DD2154CA9F00796012 /* ModelDataHandler.swift in Sources */, + AA1C17622186E2F0006F9564 /* WordCell.swift in Sources */, + AA73C161216126B20063142C /* AudioInputManager.swift in Sources */, + AA1C176C2186FA9E006F9564 /* InfoCell.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + AA7006D821526757003E34C0 /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + AA7006D921526757003E34C0 /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; + AA73C15C216120F90063142C /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + AA73C15D216120F90063142C /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + AA7006F221526757003E34C0 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.4; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = ""; + }; + name = Debug; + }; + AA7006F321526757003E34C0 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.4; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = ""; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + AA7006F521526757003E34C0 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = A0DC5C2A90328FAA7173C341 /* Pods-SpeechCommands.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = KYV3CSY2F3; + INFOPLIST_FILE = SpeechCommands/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = org.tensorflow.SpeechCommands; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = ""; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + AA7006F621526757003E34C0 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = ADB2EB587E61B830B53EB5A7 /* Pods-SpeechCommands.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = KYV3CSY2F3; + INFOPLIST_FILE = SpeechCommands/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = org.tensorflow.SpeechCommands; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = ""; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + AA7006C721526754003E34C0 /* Build configuration list for PBXProject "SpeechCommands" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + AA7006F221526757003E34C0 /* Debug */, + AA7006F321526757003E34C0 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + AA7006F421526757003E34C0 /* Build configuration list for PBXNativeTarget "SpeechCommands" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + AA7006F521526757003E34C0 /* Debug */, + AA7006F621526757003E34C0 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = AA7006C421526754003E34C0 /* Project object */; +} diff --git a/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands.xcodeproj/xcuserdata/hangyojeong.xcuserdatad/xcschemes/xcschememanagement.plist b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands.xcodeproj/xcuserdata/hangyojeong.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..d7294ce --- /dev/null +++ b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands.xcodeproj/xcuserdata/hangyojeong.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + SpeechCommands.xcscheme_^#shared#^_ + + orderHint + 3 + + + + diff --git a/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands.xcworkspace/contents.xcworkspacedata b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..401f0ac --- /dev/null +++ b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/AppDelegate/AppDelegate.swift b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/AppDelegate/AppDelegate.swift new file mode 100755 index 0000000..58ca01e --- /dev/null +++ b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/AppDelegate/AppDelegate.swift @@ -0,0 +1,27 @@ +// Copyright 2019 The TensorFlow Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import UIKit + +@UIApplicationMain +class AppDelegate: UIResponder, UIApplicationDelegate { + var window: UIWindow? + + func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil + ) -> Bool { + return true + } +} diff --git a/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/AppIcon.appiconset/Contents.json b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100755 index 0000000..739b7bd --- /dev/null +++ b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,103 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "icn_120x120-1.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "icn_180x180.png", + "scale" : "3x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "icn_76x76.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "icn_152x152.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "icn_167x167.png", + "scale" : "2x" + }, + { + "idiom" : "ios-marketing", + "size" : "1024x1024", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/AppIcon.appiconset/icn_120x120-1.png b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/AppIcon.appiconset/icn_120x120-1.png new file mode 100755 index 0000000..4051695 Binary files /dev/null and b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/AppIcon.appiconset/icn_120x120-1.png differ diff --git a/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/AppIcon.appiconset/icn_152x152.png b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/AppIcon.appiconset/icn_152x152.png new file mode 100755 index 0000000..9da9492 Binary files /dev/null and b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/AppIcon.appiconset/icn_152x152.png differ diff --git a/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/AppIcon.appiconset/icn_167x167.png b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/AppIcon.appiconset/icn_167x167.png new file mode 100755 index 0000000..fce53a6 Binary files /dev/null and b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/AppIcon.appiconset/icn_167x167.png differ diff --git a/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/AppIcon.appiconset/icn_180x180.png b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/AppIcon.appiconset/icn_180x180.png new file mode 100755 index 0000000..e944298 Binary files /dev/null and b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/AppIcon.appiconset/icn_180x180.png differ diff --git a/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/AppIcon.appiconset/icn_76x76.png b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/AppIcon.appiconset/icn_76x76.png new file mode 100755 index 0000000..5ee009e Binary files /dev/null and b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/AppIcon.appiconset/icn_76x76.png differ diff --git a/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/Contents.json b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/Contents.json new file mode 100755 index 0000000..da4a164 --- /dev/null +++ b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/base.imageset/Contents.json b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/base.imageset/Contents.json new file mode 100755 index 0000000..91009c3 --- /dev/null +++ b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/base.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "base.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "base@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "base@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/base.imageset/base.png b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/base.imageset/base.png new file mode 100755 index 0000000..03bb5f3 Binary files /dev/null and b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/base.imageset/base.png differ diff --git a/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/base.imageset/base@2x.png b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/base.imageset/base@2x.png new file mode 100755 index 0000000..e75c8c4 Binary files /dev/null and b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/base.imageset/base@2x.png differ diff --git a/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/base.imageset/base@3x.png b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/base.imageset/base@3x.png new file mode 100755 index 0000000..a5b383b Binary files /dev/null and b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/base.imageset/base@3x.png differ diff --git a/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/border_color.colorset/Contents.json b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/border_color.colorset/Contents.json new file mode 100755 index 0000000..38eeabf --- /dev/null +++ b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/border_color.colorset/Contents.json @@ -0,0 +1,20 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + }, + "colors" : [ + { + "idiom" : "universal", + "color" : { + "color-space" : "srgb", + "components" : { + "red" : "0xC7", + "alpha" : "1.000", + "blue" : "0xD8", + "green" : "0xD0" + } + } + } + ] +} \ No newline at end of file diff --git a/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/inner_shadow_color.colorset/Contents.json b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/inner_shadow_color.colorset/Contents.json new file mode 100755 index 0000000..4f607bf --- /dev/null +++ b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/inner_shadow_color.colorset/Contents.json @@ -0,0 +1,20 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + }, + "colors" : [ + { + "idiom" : "universal", + "color" : { + "color-space" : "srgb", + "components" : { + "red" : "250", + "alpha" : "1.000", + "blue" : "0", + "green" : "141" + } + } + } + ] +} \ No newline at end of file diff --git a/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/tfl_logo.imageset/Contents.json b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/tfl_logo.imageset/Contents.json new file mode 100755 index 0000000..7eb9d1c --- /dev/null +++ b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/tfl_logo.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "tfl_logo.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "tfl_logo@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "tfl_logo@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/tfl_logo.imageset/tfl_logo.png b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/tfl_logo.imageset/tfl_logo.png new file mode 100755 index 0000000..ccd78be Binary files /dev/null and b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/tfl_logo.imageset/tfl_logo.png differ diff --git a/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/tfl_logo.imageset/tfl_logo@2x.png b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/tfl_logo.imageset/tfl_logo@2x.png new file mode 100755 index 0000000..a7b21bb Binary files /dev/null and b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/tfl_logo.imageset/tfl_logo@2x.png differ diff --git a/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/tfl_logo.imageset/tfl_logo@3x.png b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/tfl_logo.imageset/tfl_logo@3x.png new file mode 100755 index 0000000..d709f93 Binary files /dev/null and b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Assets.xcassets/tfl_logo.imageset/tfl_logo@3x.png differ diff --git a/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/AudioInputManager/AudioInputManager.swift b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/AudioInputManager/AudioInputManager.swift new file mode 100755 index 0000000..60c1f98 --- /dev/null +++ b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/AudioInputManager/AudioInputManager.swift @@ -0,0 +1,126 @@ +// Copyright 2019 The TensorFlow Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import UIKit +import AVFoundation + + +protocol AudioInputManagerDelegate { + func showCameraPermissionsDeniedAlert() + func didOutput(channelData: [Int16]) +} + +class AudioInputManager: NSObject { + + // MARK: Constants + let bufferSize: Int + private let sampleRate: Int + + var delegate: AudioInputManagerDelegate? + + // MARK: AVAudioEngine + private var audioEngine: AVAudioEngine = AVAudioEngine() + + // MARK: Instance Variables + private let conversionQueue = DispatchQueue(label: "conversionQueue") + + /** + The initializer initializes the AudioInputManager with the required sample rate for the audio + output. + */ + init(sampleRate: Int) { + self.sampleRate = sampleRate + + // We are setting the buffer size to two times the Sample rate + bufferSize = self.sampleRate * 2 + super.init() + } + + func checkPermissionsAndStartTappingMicrophone() { + switch AVAudioSession.sharedInstance().recordPermission { + + case .granted: + startTappingMicrophone() + case .denied: + delegate?.showCameraPermissionsDeniedAlert() + case .undetermined: + requestPermissions() + } + } + + func requestPermissions() { + AVAudioSession.sharedInstance().requestRecordPermission { (granted) in + if granted { + self.startTappingMicrophone() + } + else { + self.checkPermissionsAndStartTappingMicrophone() + } + } + } + + /** This method starts tapping the microphone input and converts it into the format for which the model is trained and periodically returns it in the block + */ + func startTappingMicrophone() { + let inputNode = audioEngine.inputNode + let inputFormat = inputNode.outputFormat(forBus: 0) + let recordingFormat = AVAudioFormat(commonFormat: .pcmFormatInt16, sampleRate: Double(sampleRate), channels: 1, interleaved: true) + guard let formatConverter = AVAudioConverter(from:inputFormat, to: recordingFormat!) else { + return + } + + // We install a tap on the audio engine and specifying the buffer size and the input format. + audioEngine.inputNode.installTap(onBus: 0, bufferSize: AVAudioFrameCount(bufferSize), format: inputFormat) { (buffer, time) in + + self.conversionQueue.async { + + // An AVAudioConverter is used to convert the microphone input to the format required for the model.(pcm 16) + let pcmBuffer = AVAudioPCMBuffer(pcmFormat: recordingFormat!, frameCapacity: AVAudioFrameCount(recordingFormat!.sampleRate * 2.0)) + var error: NSError? = nil + + let inputBlock: AVAudioConverterInputBlock = {inNumPackets, outStatus in + outStatus.pointee = AVAudioConverterInputStatus.haveData + return buffer + } + + formatConverter.convert(to: pcmBuffer!, error: &error, withInputFrom: inputBlock) + + if error != nil { + print(error!.localizedDescription) + } + else if let channelData = pcmBuffer!.int16ChannelData { + + let channelDataValue = channelData.pointee + let channelDataValueArray = stride(from: 0, + to: Int(pcmBuffer!.frameLength), + by: buffer.stride).map{ channelDataValue[$0] } + + // Converted pcm 16 values are delegated to the controller. + self.delegate?.didOutput(channelData: channelDataValueArray) + // completion(channelDataValueArray) + } + + } + } + + audioEngine.prepare() + do { + try audioEngine.start() + } + catch { + print(error.localizedDescription) + } + } + +} diff --git a/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Cells/InfoCell.swift b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Cells/InfoCell.swift new file mode 100755 index 0000000..5f42618 --- /dev/null +++ b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Cells/InfoCell.swift @@ -0,0 +1,20 @@ +// Copyright 2019 The TensorFlow Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import UIKit + +class InfoCell: UITableViewCell { + @IBOutlet weak var fieldNameLabel: UILabel! + @IBOutlet weak var infoLabel: UILabel! +} diff --git a/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Cells/WordCell.swift b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Cells/WordCell.swift new file mode 100755 index 0000000..e5e34d1 --- /dev/null +++ b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Cells/WordCell.swift @@ -0,0 +1,30 @@ +// Copyright 2019 The TensorFlow Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import UIKit + +class WordCell: UICollectionViewCell { + @IBOutlet weak var nameLabel: UILabel! + @IBOutlet weak var backgroundImageView: UIImageView! + + private let cornerRadius: CGFloat = 8.0 + var borderColor: UIColor = UIColor.clear + + override func draw(_ rect: CGRect) { + borderColor.setStroke() + + let path = UIBezierPath(roundedRect: self.bounds.insetBy(dx: 1.0, dy: 1.0), cornerRadius: cornerRadius) + path.stroke() + } +} diff --git a/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Info.plist b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Info.plist new file mode 100755 index 0000000..5a8cfc6 --- /dev/null +++ b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Info.plist @@ -0,0 +1,46 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + TFL Speech + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + NSMicrophoneUsageDescription + This app will use the microphone to get audio input inorder to detect the commands spoken by user. + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UIRequiresFullScreen + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + + + diff --git a/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Model/.gitignore b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Model/.gitignore new file mode 100755 index 0000000..8427540 --- /dev/null +++ b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/Model/.gitignore @@ -0,0 +1,2 @@ +*.txt +*.tflite \ No newline at end of file diff --git a/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/ModelDataHandler/ModelDataHandler.swift b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/ModelDataHandler/ModelDataHandler.swift new file mode 100755 index 0000000..8b85cfc --- /dev/null +++ b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/ModelDataHandler/ModelDataHandler.swift @@ -0,0 +1,223 @@ +// Copyright 2019 The TensorFlow Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import TensorFlowLite +import UIKit + + +/// Information about a model file or labels file. +typealias FileInfo = (name: String, extension: String) + +/// Information about the ConvActions model. +enum ConvActions { + static let modelInfo: FileInfo = (name: "conv_actions_frozen", extension: "tflite") + static let labelsInfo: FileInfo = (name: "conv_actions_labels", extension: "txt") +} + +/// This class handles all data preprocessing and makes calls to run inference on a given audio +/// buffer by invoking the TensorFlow Lite `Interpreter`. It then formats the inferences obtained +/// and averages the recognized commands by running them through RecognizeCommands. +class ModelDataHandler { + + // MARK: - Internal Properties + + /// The current thread count used by the TensorFlow Lite Interpreter. + let threadCount: Int + + let threadCountLimit = 10 + let sampleRate = 16000 + + // MARK: - Private Properties + + private var buffer:[Int] = [] + private var recognizeCommands: RecognizeCommands? + private let audioBufferInputTensorIndex = 0 + private let sampleRateInputTensorIndex = 1 + private let labelOffset = 2 + private let sampleDuration = 1000 + private let minimumCount = 3 + private let averageWindowDuration = 1000.0 + private let suppressionMs = 1500.0 + private let threshold: Float = 0.3 + private let minTimeBetweenSamples = 30.0 +//https://bskyvision.com/entry/python-int8-float32-bool-numpy-%EC%9E%90%EB%A3%8C%ED%98%95-%EC%A0%95%EB%A6%AC + private let maxInt16AsFloat32: Float32 = 32767.0 // int16 = 2^16 개의 정수표현. -32768 ~ 32767 까지 표현 + + /// List of labels from the given labels file. + private var labels: [String] = [] + + /// TensorFlow Lite `Interpreter` object for performing inference on a given model. + private var interpreter: Interpreter + + private var recordingLength: Int { + return (sampleRate * sampleDuration) / 1000 + } + + // MARK: - Initialization + + /// A failable initializer for `ModelDataHandler`. A new instance is created if the model and + /// labels files are successfully loaded from the app's main bundle. Default `threadCount` is 1. + init?(modelFileInfo: FileInfo, labelsFileInfo: FileInfo, threadCount: Int = 1) { + let modelFilename = modelFileInfo.name + + // Construct the path to the model file. + guard let modelPath = Bundle.main.path( + forResource: modelFilename, + ofType: modelFileInfo.extension + ) else { + print("Failed to load the model file with name: \(modelFilename).") + return nil + } + + // Specify the options for the `Interpreter`. + self.threadCount = threadCount + var options = InterpreterOptions() + options.threadCount = threadCount + do { + // Create the `Interpreter`. + interpreter = try Interpreter(modelPath: modelPath, options: options) + // Allocate memory for the model's input `Tensor`s. + try interpreter.allocateTensors() + } catch let error { + print("Failed to create the interpreter with error: \(error.localizedDescription)") + return nil + } + loadLabels(fileInfo: labelsFileInfo) + recognizeCommands = RecognizeCommands( + averageWindowDuration: averageWindowDuration, + detectionThreshold: threshold, + minimumTimeBetweenSamples: minTimeBetweenSamples, + suppressionTime: suppressionMs, + minimumCount: minimumCount, + classLabels: labels + ) + } + + // MARK: - Internal Methods + + /// Invokes the `Interpreter` and processes and returns the inference results. + func runModel(onBuffer buffer: [Int16]) -> RecognizedCommand? { + let outputTensor: Tensor + do { + // Copy the `[Int16]` buffer data as an array of `Float`s to the audio buffer input `Tensor`'s. + let audioBufferData = Data(copyingBufferOf: buffer.map { Float($0) / maxInt16AsFloat32 }) + try interpreter.copy(audioBufferData, toInputAt: audioBufferInputTensorIndex) + + // Copy the sample rate data to the sample rate input `Tensor`. + var rate = Int32(sampleRate) + let sampleRateData = Data(bytes: &rate, count: MemoryLayout.size(ofValue: rate)) + try interpreter.copy(sampleRateData, toInputAt: sampleRateInputTensorIndex) + + // Run inference by invoking the `Interpreter`. + try interpreter.invoke() + + // Get the output `Tensor` to process the inference results. + outputTensor = try interpreter.output(at: 0) + } catch let error { + print("Failed to invoke the interpreter with error: \(error.localizedDescription)") + return nil + } + + // Gets the formatted and averaged results. + let scores = [Float32](unsafeData: outputTensor.data) ?? [] + let command = getResults(withScores: scores) + + return command + } + + /// Returns the labels other than silence and unknown for display. + func offsetLabelsForDisplay() -> [String] { + return Array(labels[labelOffset.. RecognizedCommand? { + + let results: [Float] = Array(scores[0..= labelOffset + else { + return nil + } + return newCommand + } + + /// Loads the labels from the labels file and stores them in the `labels` property. + private func loadLabels(fileInfo: FileInfo) { + let filename = fileInfo.name + let fileExtension = fileInfo.extension + guard let fileURL = Bundle.main.url(forResource: filename, withExtension: fileExtension) else { + fatalError("Labels file not found in bundle. Please add a labels file with name " + + "\(filename).\(fileExtension) and try again.") + } + do { + let contents = try String(contentsOf: fileURL, encoding: .utf8) + labels = contents.components(separatedBy: .newlines) + } catch { + fatalError("Labels file named \(filename).\(fileExtension) cannot be read. Please add a " + + "valid labels file and try again.") + } + } +} + +// MARK: - Extensions + +extension Data { + /// Creates a new buffer by copying the buffer pointer of the given array. + /// + /// - Warning: The given array's element type `T` must be trivial in that it can be copied bit + /// for bit with no indirection or reference-counting operations; otherwise, reinterpreting + /// data from the resulting buffer has undefined behavior. + /// - Parameter array: An array with elements of type `T`. + init(copyingBufferOf array: [T]) { + self = array.withUnsafeBufferPointer(Data.init) + } +} + +extension Array { + /// Creates a new array from the bytes of the given unsafe data. + /// + /// - Warning: The array's `Element` type must be trivial in that it can be copied bit for bit + /// with no indirection or reference-counting operations; otherwise, copying the raw bytes in + /// the `unsafeData`'s buffer to a new array returns an unsafe copy. + /// - Note: Returns `nil` if `unsafeData.count` is not a multiple of + /// `MemoryLayout.stride`. + /// - Parameter unsafeData: The data containing the bytes to turn into an array. + init?(unsafeData: Data) { + guard unsafeData.count % MemoryLayout.stride == 0 else { return nil } + #if swift(>=5.0) + self = unsafeData.withUnsafeBytes { .init($0.bindMemory(to: Element.self)) } + #else + self = unsafeData.withUnsafeBytes { + .init(UnsafeBufferPointer( + start: $0, + count: unsafeData.count / MemoryLayout.stride + )) + } + #endif // swift(>=5.0) + } +} diff --git a/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/ModelDataHandler/RecognizeCommands.swift b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/ModelDataHandler/RecognizeCommands.swift new file mode 100755 index 0000000..4127abe --- /dev/null +++ b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/ModelDataHandler/RecognizeCommands.swift @@ -0,0 +1,168 @@ +// Copyright 2019 The TensorFlow Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import Foundation + +struct RecognizedCommand { + var score: Float + var name: String + var isNew: Bool +} + +/** + This class smoothes out the results by averaging them over a window duration and making sure the + commands are not duplicated for display. + */ +class RecognizeCommands { + // MARK: Structures that handles results. + private struct Command { + var score: Float + let name: String + } + + private struct ResultsAtTime { + let time: TimeInterval + let scores: [Float] + } + + // MARK: Constants + private let averageWindowDuration: Double + private let suppressionTime: Double + private let minimumCount: Int + private let minimumTimeBetweenSamples: Double + private let detectionThreshold: Float + private let classLabels: [String] + private let silenceLabel = "_silence_" + private var previousTopLabel = "_silence_" + + + private var previousTopScore: Float = 0.0 + private var previousTopLabelTime: TimeInterval = Date.distantPast.timeIntervalSince1970 * 1000 + private var previousResults: [ResultsAtTime] = [] + + /** + Initializes RecognizeCommands with specified parameters. + */ + init(averageWindowDuration: Double, detectionThreshold: Float, minimumTimeBetweenSamples: Double, suppressionTime: Double, minimumCount: Int, classLabels: [String]) { + self.averageWindowDuration = averageWindowDuration + self.detectionThreshold = detectionThreshold + self.minimumTimeBetweenSamples = minimumTimeBetweenSamples + self.suppressionTime = suppressionTime + self.minimumCount = minimumCount + self.classLabels = classLabels + } + + /** + This function averages the results obtained over an average window duration and prunes out any + old results. + */ + func process(latestResults: [Float], currentTime: TimeInterval) -> RecognizedCommand? { + + guard latestResults.count == classLabels.count else { + fatalError("There should be \(classLabels.count) in results. But there are \(latestResults.count) results") + } + + // Checks if the new results were identified at a later time than the currently identified + // results. + if let first = previousResults.first, first.time > currentTime { + fatalError("Results should be provided in increasing time order") + } + + if let lastResult = previousResults.last { + + let timeSinceMostRecent = currentTime - lastResult.time + + // If not enough time has passed after the last inference, we return the previously identified + // result as legitimate one. + if timeSinceMostRecent < minimumTimeBetweenSamples { + return RecognizedCommand(score: previousTopScore, name: previousTopLabel, isNew: false) + } + } + + // Appends the new results to the identified results + let results: ResultsAtTime = ResultsAtTime(time: currentTime, scores: latestResults) + + previousResults.append(results) + + let timeLimit = currentTime - averageWindowDuration + + // Flushes out all the results currently held that less than the average window duration since + // they are considered too old for averaging. + while previousResults[0].time < timeLimit { + previousResults.removeFirst() + + guard previousResults.count > 0 else { + break + } + } + + // If number of results currently held to average is less than a minimum count, return the score + // as zero so that no command is identified. + if previousResults.count < minimumCount { + return RecognizedCommand(score: 0.0, name: previousTopLabel, isNew: false) + } + + // Creates an average of the scores of each classes currently held by this class. + var averageScores:[Command] = [] + for i in 0...classLabels.count - 1 { + + let command = Command(score: 0.0, name: classLabels[i]) + averageScores.append(command) + + } + + for result in previousResults { + + let scores = result.scores + for i in 0...scores.count - 1 { + averageScores[i].score = averageScores[i].score + scores[i] / Float(previousResults.count) + + } + } + + // Sorts scores in descending order of confidence. + averageScores.sort { (first, second) -> Bool in + return first.score > second.score + } + + var timeSinceLastTop: Double = 0.0 + + // If silence was detected previously, consider the current result with the best average as a + // new command to be displayed. + if (previousTopLabel == silenceLabel || + previousTopLabelTime == (Date.distantPast.timeIntervalSince1970 * 1000)) { + + timeSinceLastTop = Date.distantFuture.timeIntervalSince1970 * 1000 + } + else { + timeSinceLastTop = currentTime - previousTopLabelTime + } + + // Return the results + var isNew = false + if (averageScores[0].score > detectionThreshold && timeSinceLastTop > suppressionTime) { + + previousTopScore = averageScores[0].score + previousTopLabel = averageScores[0].name + previousTopLabelTime = currentTime + isNew = true + } + else { + isNew = false + } + + return RecognizedCommand( + score: previousTopScore, name: previousTopLabel, isNew: isNew) + } +} diff --git a/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/StoryBoards/Base.lproj/LaunchScreen.storyboard b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/StoryBoards/Base.lproj/LaunchScreen.storyboard new file mode 100755 index 0000000..f83f6fd --- /dev/null +++ b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/StoryBoards/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/StoryBoards/Base.lproj/Main.storyboard b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/StoryBoards/Base.lproj/Main.storyboard new file mode 100755 index 0000000..55e5c57 --- /dev/null +++ b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/StoryBoards/Base.lproj/Main.storyboard @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/ViewControllers/ViewController.swift b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/ViewControllers/ViewController.swift new file mode 100755 index 0000000..b79b4dc --- /dev/null +++ b/TFLite/SpeechRecognition/ios_speech_commands/SpeechCommands/ViewControllers/ViewController.swift @@ -0,0 +1,218 @@ +// Copyright 2019 The TensorFlow Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import UIKit + +class ViewController: UIViewController { + + // MARK: Storyboard Outlets + @IBOutlet weak var collectionView: UICollectionView! + + // MARK: Constants + private let unselectedFontColor = UIColor( + displayP3Red: 124.0/255.0, green: 136.0/255.0, blue: 144.0/255.0, alpha: 1.0) + private let selectedFontColor = UIColor( + displayP3Red: 250.0/255.0, green: 141.0/255.0, blue: 0.0/255.0, alpha: 1.0) + private let unselectedBorderColor = UIColor( + displayP3Red: 199.0/255.0, green: 208.0/255.0, blue: 216.0/255.0, alpha: 1.0) + private let collectionViewPadding: CGFloat = 15.0 + private let highlightTime: Double = 0.5 + private let imageInset: CGFloat = 8.0 + + // MARK: Objects Handling Core Functionality + private var modelDataHandler: ModelDataHandler? = + ModelDataHandler(modelFileInfo: ConvActions.modelInfo, labelsFileInfo: ConvActions.labelsInfo) + private var audioInputManager: AudioInputManager? + + // MARK: Instance Variables + private var words: [String] = [] + private var highlightedCommand: RecognizedCommand? + private var bufferSize: Int = 0 + + // MARK: View Handling Methods + override func viewDidLoad() { + super.viewDidLoad() + + guard let handler = modelDataHandler else { + return + } + + // Displays lables + words = handler.offsetLabelsForDisplay() + self.collectionView.reloadData() + + startAudioRecognition() + + } + + override var preferredStatusBarStyle : UIStatusBarStyle { + return .lightContent + } + + /** + Initializes the AudioInputManager and starts recognizing on the output buffers. + */ + private func startAudioRecognition() { + + guard let handler = modelDataHandler else { + return + } + + audioInputManager = AudioInputManager(sampleRate: handler.sampleRate) + audioInputManager?.delegate = self + + guard let workingAudioInputManager = audioInputManager else { + return + } + + bufferSize = workingAudioInputManager.bufferSize + + workingAudioInputManager.checkPermissionsAndStartTappingMicrophone() + + } + + /** + This method runs hands off inference to the ModelDataHandler by passing the audio buffer. + */ + private func runModel(onBuffer buffer: [Int16]) { + + // Updates the results on the screen. + guard let recognizedCommand = self.modelDataHandler?.runModel(onBuffer: buffer) else { + return + } + DispatchQueue.main.async { + self.highlightedCommand = recognizedCommand + self.highlightResult() + } + } + + /** + Highlights the recognized command in the UICollectionView for the specified time. + */ + private func highlightResult() { + + DispatchQueue.main.async { + + self.collectionView.reloadData() + self.perform(#selector(ViewController.unhighlightResult), with: nil, afterDelay: self.highlightTime) + } + } + + /** + Unhighlights the recognized command in the UICollectionView. + */ + @objc func unhighlightResult() { + highlightedCommand = nil + + collectionView.reloadData() + } + + +} + +// MARK: UICollectionView DataSource and Delegate +extension ViewController: UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout { + + // Get item size of the collection view with respect to it's current width and height. + private func itemSize() -> CGSize { + let width = (self.collectionView.bounds.size.width - collectionViewPadding) / 2.0 + let rows: CGFloat = CGFloat(words.count / 2) + let height = (self.collectionView.bounds.size.height - ((CGFloat(rows - 1) * collectionViewPadding))) / rows + + return CGSize(width: width, height: height) + } + + func numberOfSections(in collectionView: UICollectionView) -> Int { + return 1 + } + + func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { + return words.count + } + + func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) { + + var borderColor = UIColor.clear + let wordCell = cell as? WordCell + + let word = words[indexPath.item] + + if let recognizedCommand = highlightedCommand, recognizedCommand.name == word { + borderColor = UIColor.clear + } + else { + borderColor = unselectedBorderColor + } + + wordCell?.borderColor = borderColor + wordCell?.setNeedsDisplay() + } + + func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { + + return itemSize() + } + + func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { + + let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "WORD_CELL", for: indexPath) as! WordCell + + let word = words[indexPath.item] + + var backgroundImage: UIImage? + var fontColor = unselectedFontColor + var name = word.capitalized + + if let recognizedCommand = highlightedCommand, recognizedCommand.name == word { + backgroundImage = UIImage(named: "base")?.resizableImage(withCapInsets: UIEdgeInsets(top: imageInset, left: imageInset, bottom: imageInset, right: imageInset), resizingMode: .stretch) + fontColor = selectedFontColor + name = word.capitalized + " (\(Int(recognizedCommand.score * 100.0))%)" + } + + cell.backgroundImageView.image = backgroundImage + cell.nameLabel.textColor = fontColor + cell.nameLabel.text = name + + return cell + } + +} + +extension ViewController: AudioInputManagerDelegate { + + func didOutput(channelData: [Int16]) { + + guard let handler = modelDataHandler else { + return + } + + self.runModel(onBuffer: Array(channelData[0.. + +## Reference +- Python으로 역전파 구현 : [Python으로 역전파 구현](../../Python/01_Backpropagation_Theory/README.md) \ No newline at end of file diff --git a/Theory/05_CNN/CNN_Structure.png b/Theory/05_CNN/CNN_Structure.png new file mode 100644 index 0000000..e69af19 Binary files /dev/null and b/Theory/05_CNN/CNN_Structure.png differ diff --git a/Theory/05_CNN/Convolution_FilterMap.png b/Theory/05_CNN/Convolution_FilterMap.png new file mode 100644 index 0000000..5120d40 Binary files /dev/null and b/Theory/05_CNN/Convolution_FilterMap.png differ diff --git a/Theory/05_CNN/Convolution_mathexp.png b/Theory/05_CNN/Convolution_mathexp.png new file mode 100644 index 0000000..3e7cada Binary files /dev/null and b/Theory/05_CNN/Convolution_mathexp.png differ diff --git a/Theory/05_CNN/README.md b/Theory/05_CNN/README.md new file mode 100644 index 0000000..15f7d52 --- /dev/null +++ b/Theory/05_CNN/README.md @@ -0,0 +1,88 @@ +# CNN +합성곱 신경망의 특징은 **국소 감수 영역(local receptive field)** 및 **가중치 공유** 라 불리는 특별한 층간 결합을 가짐 + +## 단순 세포와 복잡 세포 +- 합성곱 신경망은 인접한 층과 층 사이에 특정한 유닛만이 결합을 갖는 특별한 층 +- 층 에서는 합성곱과 폴링이라는 이미지 처리의 기본 연산이 일어남 + +## 전체적인 구조 +- 입력 쪽에서 출력 쪽을 향해 **합성곱층** 과 **폴링층** 이, 합성곱층이 먼저 나오고 뒤이어 폴링층이 나오는 형태로 쌍을 이루며 이 쌍이 다시 여러 번 반복됨 +- 합성곱층만으로 여러 층이 반복된 후, 그 뒤에 폴링층이 한층 붙는 경우 존재 +- 합성곱층과 폴링층 뒤에 **국소 콘트라스트 정규화(Local Contrast Normalization, LCN)** 층을 배치 +- 합성곱층과 폴링층이 반복되는 구조 뒤에는 인접한 층 사이의 유닛이 전결합한 층이 배치 + + +
+ +## 합성곱 +- 그레이 스케일 이미지를 예로 이미지 사이즈를 (W x W), 픽셀 인덱스를 (i, j)로 나타낸다 했을 때 픽셀 값을 x(i,j) +- 필터(filter)라는 작은 크기의 이미지를 상정하고 크기를 (H x H), 필터의 픽셀은 인덱스 (p, q)로 나타내고 픽셀 값은 h(p,q) +- 이미지의 합성곱이란 이미지와 필터 사이 아래와 같은 연산 + + +
+ +### 합성곱의 작용 +이미지의 합성곱(또는 상관)은 필터의 명암 패턴과 유사한 명암 패턴이 입력된 이미지 어디에 있는지를 검출하는 작용을 함 + +### 패딩 +- 합성곱은 이미지에 필터를 겹쳤을 때 이미지와 필터가 겹쳐지는 픽셀끼리 곱을 구하여 필터 전체에 그 값을 합하는 연산 + - 이미지로부터 필터가 벗어나는 위치에 적용하는 것은 불가능 +- 합성곱 계산의 결과 이미지 크기는 입력 이미지의 크기보다 작아지게 됨 + - (W - 2[H/2]) x (W - 2[H/2]) + - [.] : 소수점은 버림 + - ex] 8x8 입력이미지, 3x3 필터 : 8-2[3/2] = 6 +- 합성곱한 결과 이미지가 입력 이미지와 크기가 같으면 좋음 + - 입력 이미지의 바깥쪽 테두리를 만들어 크기를 늘려서 출력 이미지의 크기가 원래 입력 이미지와 같은 크기가 되도록 함 + - 이 태두리 부분은 픽셀값을 0으로 설정하는 방법으로 제로 패딩(zero-padding)이라 부르는 방법을 사용 + - CNN에서 제로 패딩이 널리 쓰이나 이미지 처리라는 관점에서 보면 좋지 않음 + - 제로 패딩 처리로 인해 출력 이미지의 주변부가 어둡게 되기 때문 + - 테두리 부분의 픽셀값을 0이 아닌 더 그럴듯한 값으로 채우는 기법이 존재 + +### 스트라이드 +- 필터가 적용되는 위치를 1픽셀이 아닌 여러 픽셀씩 움직이며 계산할 수도 있음 +- 이 필터의 적용 위치 간격을 **스트라이드(stride)** 라 함 +- 출력 이미지의 크기 + - ([(W-1/s)] + 1) x ([(W-1/s)] + 1) +- 크기가 큰 입력 이미지를 다룰 때 합성곱층의 출력쪽 유닛 수가 너무 많아지는 것을 막기 위해 2 이상의 스트라이드 값을 적용하는 경우가 존재 + - But, 스트라이드 값을 크게 잡는 것은 이미지의 특징을 놓칠 가능성을 의미 일반적으로 성능이 좋아지지 않음 + +## 합성곱층 +- 합성곱 연산을 하는 단층 신경망 +- 채널 수가 K인 이미지의 각 픽셀은 K개의 값을 가짐 + - RGB 3가지 색으로 구성된 이미지의 채널 수는 3 +- CNN은 이런 이미지를 입력으로 받지만 대개 중간층(합성곱층과 폴링층)에서 그 이상의 채널 수(K=16, 256 등)을 다룸 +- 이러한 중간층의 출력을 이미지라 부르지 않고 **맵(map)** 이라 부르기도 함 + + +
+ +- 각 필터는 입력 이미지와 같은 채널 수 K를 가짐 +- m = 0, 1, 2의 각 필터 m에 대하여 병렬로 계산이 실행 각각 한 개 채널이 출력 +- 입력 이미지의 채널 수와 상관없이 하나의 필터로부터 나오는 출력은 항상 1채널이 됨 +- 합성곱층의 최종 출력은 필터 수 M과 같은 수의 채널 수를 갖는 다 채널 이미지가 됨 + - 입력의 크기가 W x W x K 일 때 (합성곱층의 필터수는 M) 출력의 크기는 W x W x M이 됨 +- 가중치는 출력층의 같은 채널에 속하는 모든 유닛에서 같음(**가중치 공유**) +- 합성곱층의 가중치는 필터 그 자체이므로 최적화의 대상이 필터가 됨, 역전파법에 의해 합성곱층의 델타와 필터의 오차 기울기가 계산 + +## 폴링층 +- 폴링층은 보통 합성곱층의 바로 뒤에 배치 +- W x W x K인 입력 이미지의 픽셀을 중심으로 H x H 크기의 정사각형 영역을 잡아 채널 k마다 독립적으로 H^2개 있는 픽셀값을 사용하여 하나의 픽셀값을 구함. 이 값을 구하는 방법으로 아래의 2가지 방법이 있음 + - 최대폴링 + - 평균폴링 +- 폴링의 계산은 입력 이미지의 각 채널마다 병렬로 실행됨 보통 폴링층의 출력 채널 수는 입력 이미지의 채널 수와 일치 +- 합성곱층과 마찬가지로 폴링층에도 2 이상의 스트라이드를 설정할 수 있음 +- 폴링층의 유닛에 활성화 함수를 적용하는 것은 가능은 하나 보통은 적용하지 않음 +- 폴링층에는 학습에 따라 변화할 수 있는 파라미터가 존재하지 않음 + +## 정규화층 +### 국소 콘트라스트 정규화 +- 자연물 이미지를 입력으로 하는 이미지 인식 문제에서 입력 이미지의 전체적인 밝기나 대비의 차이를 잘 흡수해야 함 +- 주변의 조명에 따라 이미지 전체의 밝기나 대비가 크게 변하게됨 +- 이러한 변화에도 불구하고 이미지를 잘 인식하기 위해 이미지의 명암을 보종의 방법으로 정규화하는 방법이 필요 +- 정규화 방법 + - 이미지의 집합(훈련 데이터)에 대한 통계치를 이용하는 처리 + - 국소 콘트라스트 정규화(local contrast normalization) + - 감산 정규화(subtractive normalization) + - 제산 정규화(divisive normalization) +- 국소 콘트라스트 정규화 또한 가중치는 고정값이어서 폴링층과 마찬가지로 학습이 가능한 파라미터는 존재하지 않음 \ No newline at end of file diff --git a/Theory/06_RNN/README.md b/Theory/06_RNN/README.md new file mode 100644 index 0000000..9e5851c --- /dev/null +++ b/Theory/06_RNN/README.md @@ -0,0 +1,63 @@ +# RNN +재귀 신경망(RNN)은 음성이나 언어, 동영상과 같은 연속열 데이터를 다루는 신경망 + +- 데이터는 일반적으로 그 길이가 샘플마다 무척 다르며 연속열 내의 요소의 순서(문맥)에 의미가 있는 것이 특징 + +## 연속열 데이터의 분류 +- 연속열 데이터란 각각의 요소에 순서가 있는 모임으로 음성, 동영상, 텍스트 등이 있음 + +## RNN의 구조 +- 재귀 신경망(RNN)은 내부에 (방향이 있는) 순환경로를 가진 신경망을 통틀어 부르는 말로 그러한 구조 덕에 정보를 일시적으로 기억하고 그에 따라 반응을 동적으로 변화 가능 +- 그로 인해 연속열 데이터 안에 존재하는 '문맥'을 포착하고 분류 문제도 잘 처리 가능 +- RNN의 동작은 각각의 시각 t마다 하나의 입력 X^t를 입력받아 또 동시에 하나의 출력 y^t를 출력하는 것 +- 신경망 내부에 있는 귀환로에 의해 출력을 계산할 때 RNN이 이전에 입력받은 모든 입력(입력의 히스토리)이 관여 +- RNN은 이론상 과거의 모든 입력에 대해 하나의 출력을 내놓는 매핑을 모형화 + + +
+ +- 연속열 데이터 전체가 일괄로 주어진 경우 그 연속열 데이터를 역순으로 RNN에 입력하는 것도 가능 +- 원래 순서대로 연속열을 입력받는 RNN과 역순으로 연속열을 입력받는 RNN을 만들어 양쪽의 출력층을 통합해 구성한 신경망을 **양방향 RNN(bidirectional RNN)** 이라 함 + - 양방향 RNN이 정방향 입력만 주어지는 RNN보다 성능이 더 좋다고 알려짐 + +## 순전파 계산 +- RNN의 귀환로는 중간층의 출력을 스스로의 입력으로 되돌리는 것으로 이 사이의 모든 유닛 간에 결합이 존재 +- 이 귀환로로 들어오는 입력이 한 시각 전의 신호로 시각 t에 대한 중간층 각 유닛의 입력은 같은 시각에 입력층으로부터 전해지는 것과 시각 t - 1 에 중간층에서 나온 출력이 피드백된 것의 합 + +## 역전파 계산 +- RNN을 학습하는 데는 앞먹임 신경망과 같이 SGD를 사용, 어떤 경우든 각 층의 가중치에 대한 오차의 미분을 계산 + - **RTRL(RealTime Recurrent Learning)** + - 메모리 효율이 좋음 + - **BPTT(BackPropagation Through Time)** + - 계산속도가 빠르며 간단 + +- BPTT는 RNN을 시간 방향으로 펼쳐 앞먹임 신경망과 같은 형태로 만든 후 역전파 계산을 수행 + - 시간 방향으로 펼친다는 것은 매 시각마다의 RNN의 각 층이 별개인 것처럼 간주 + + +
+ +## 장단기기억 +### RNN의 기울기 소실 문제 +- RNN의 경우 포착할 수 있는 문맥의 길이, 즉 현재 시각으로부터 얼마나 먼 과거의 입력까지 반영할 수 있는지가 중요 + - 이론상으론 과거의 모든 입력 이력이 고려되어야 할테지만 실제 RNN의 출력에 반영시킬 수 있는 것은 기껏해야 과거 10시각 정도로 알려져 있음 +- 이러한 한계는 앞먹임 신경망의 기울기 소실 문제와 같은 원인에서 비롯 +- 층수가 많은 신경망에는 역전파법으로 기울기를 계산시 층을 거슬러 올라감에 따라 기울기 값이 폭발적으로 커지거나 0으로 소멸해 버리기 쉬운 성질 존재 + - RNN의 역전파 계산은 시간 방향으로 전개되므로 층수가 매우 많은 앞먹임 신경망의 역전파 계산으로 바꿔 생각할 수 있음 ==> RNN의 본래 층수가 적다 해도 역전파 계산 시에는 많은 층수를 다루는 것과 마찬가지 그에 따라 기울기 값도 발산하거나 소멸하거나 둘 중 하나가 되기 쉬움 +- RNN으로는 단기적 기억은 실현할 수 있지만 더 장기적 기억을 실현하는 것은 어려움 + +## LSTM의 개요 +RNN으론 장기적 기억 실현이 어려워 장기적 기억을 실현하기 위해 제안된 방법 중 가장 성공적 시도가 장단기기억(Long Short-Term Memory) +- LSTM은 RNN에 비해 중간층의 각 유닛이 메모리 유닛이라 불리는 요소로 구성된 구조로 그 외의 구조는 기존 RNN과 같음 + +## 입력과 출력의 연속열 길이가 다른 경우 +### 은닉 마르코프 모델 +- RNN(LSTM 포함)은 각 시각 t마다 하나의 입력 x^t를 받아 하나의 출력 y^t를 내놓음 + - 이 동작은 입력 연속열과 다른 길이를 가진 연속열을 추정해야 하는 경우엔 적합하지 않음 +- **은닉 마르코프 모델(Hidden Markov Model, HMM)** 은 이러한 문제를 다루는 가장 일반적 방법 +- HMM은 내부 상태를 숨겨진 변수로 가지고 이 변수가 시각과 함께 확률적으로 변화 동시에 HMM은 현재의 내부 상태에 기ㅗ한 확률적 관측을 생성 + +## 커넥셔니스트 시계열 분류(CTC) +- Connectionist Temporal Classification +- 입력과 출력 사이에 연속열의 길이가 서로 다른 경우의 분류 문제를 HMM을 쓰지 않고 신경망만을 사용해 해결하려는 방법 +- CTC는 RNN의 출력에 대한 해석을 바꾸어 입력 연속열과 길이가 다른 출력 연속열을 다룰 수 있도록 해줌 \ No newline at end of file diff --git a/Theory/06_RNN/RNNBasic.png b/Theory/06_RNN/RNNBasic.png new file mode 100644 index 0000000..f7a421a Binary files /dev/null and b/Theory/06_RNN/RNNBasic.png differ diff --git a/Theory/06_RNN/RNN_Backpropagation.png b/Theory/06_RNN/RNN_Backpropagation.png new file mode 100644 index 0000000..11a4856 Binary files /dev/null and b/Theory/06_RNN/RNN_Backpropagation.png differ diff --git a/Transformer/01_TextClassification/README.md b/Transformer/01_TextClassification/README.md new file mode 100644 index 0000000..c95579c --- /dev/null +++ b/Transformer/01_TextClassification/README.md @@ -0,0 +1,213 @@ +# Text Classification using DistilBERT +Huggingface의 DistilBERT(BERT와 비교해 성능은 비슷하지만 훨씬 작고 효율적) 모델을 사용해 6개의 감정 모델을 분류
+Huggingface 생태계의 핵심 라이브러리 사용 +- **데이터셋(Dataset)** +- **토크나이저(Tokenizer)** +- **트랜스포머스(Transformers)** + +## 1. 데이터셋 +### 허깅페이스 데이터셋 사용 +- **list_datasets()** 함수를 사용하면 허브에서 제공하는 데이터셋 목록이 출력됨 +- **load_dataset()** 함수로 데이터셋 로드 + +### Huggingface hub에 데이터셋이 없는 경우 +- 데이터셋은 로컬 데이터셋이나 원격 데이터셋에 사용 가능한 로딩 스크립트를 제공해줌 +- 포멧에 따른 데이터셋 로딩 방법 + - CSV: load_dataset("csv", data_files="my_file.csv") + - text: load_dataset("text", data_files="my_file.txt") + - JSON: load_dataset("json", data_files="my_file.jsonl") +- 원격 데이터 로딩 방법 +``` +dataset_url = "https://www.~/train.txt" +!wget {dataset_url} +emotions_local = load_dataset("csv", data_files="train.txt", sep=";", names=["text", "label"]) +``` +구분자(sep)와 열 이름(names)을 지정 +``` +dataset_url = "https://www.~/train.txt" +emotions_local = load_dataset("csv", data_files=dataset_url, sep=";", names=["text", "label"]) +``` + +### 데이터셋 to 데이터프레임 +- Dataset 객체를 판다스 DataFrame으로 변환하게 되면 고수준 데이터 시각화 API 등 편리한 API를 사용할 수 있음 +- 데이터셋은 Dataset의 출력 포맷을 변경하는 **set_format()** 메서드를 제공 + +### 클래스 분포 확인 +- 텍스트 분류 문제를 다룰땐 샘플의 클래스 분포 조사를 해야 함 +- 클래스 분포가 편향된 데이터 셋은 훈련 손실과 평가 지표 측면에서 균형 잡힌 데이터셋과 다른 처리법이 필요 +- pandas와 matplot을 이용하면 클래스 분포를 시각화할 수 있음 + +- 데이터셋이 불균형 한 경우 처리방법 + - 소수 클래스를 랜덤하게 오버샘플링(oversampling) + - 다수 클래스를 랜덤하게 언더샘플링(undersampling) + - 클래스의 대표성이 부족하다면 레이블된 데이터를 더 많이 수집 + +- 훈련/테스트 분할을 만들기 전에는 샘플링 전략을 사용하면 안됨 그렇지 않으면 분할 사이에 많은 정보가 새어나감 + - 일반적으로 훈련 세트에만 샘플링 전략을 사용 +- 불균형한 클래스 분포에서의 샘플링 기법: https://imbalanced-learn.org/stable/ + +### 길이 확인 +- 트랜스포머 모델은 **최대 문맥 크기(maximum context size)** 라는 최대 입력 시퀀스 길이가 존재 + - DistilBERT를 사용하는 애플리케이션에서 최대 문맥 크기는 512 토큰 + +## 2. 토큰나이저 +- 토큰화란 문자열을 모델이 사용하는 기본 단위로 분할하는 단계 + +### 문자 토큰화 +- 가장 간단한 토큰화 방법으로 각 문자를 개별로 모델에 주입하는 것 +- 텍스트를 숫치 데이터로 변환한 후 one-hot vector의 2D 텐서로 변경 +- one-hot vector는 machine learning에서 순서형(ordinal) 또는 명목형(nominal) 범주 데이터를 인코딩 하기 위해 자주 사용 + - 텍스트를 단순히 숫자로만 변경할시 이름 사이에 가상의 순서 또는 상관없는 관계가 생길수 있음 +- 문자 토큰화는 철자 오류, 희귀단어 처리 등 장점이 있지만 단어 같은 언어 구조를 이 데이터에서 학습해야 한다는 큰 단점이 존재 + - 문자 수준의 토큰화는 거의 사용되지 않음 + +### 단어 토큰화 +- 텍스트를 문자가 아닌 단어로 분할, 단어를 정수로 매핑 +- 처음부터 단어를 사용하면 모델이 문자에서 단어를 학습하는 단계가 생략되어 훈련 과정의 복잡도가 감소함 +- 단어 토큰화는 단어에 곡용, 활용형, 철자 오류가 포함되어 어휘사전이 금세 수백만 개까지 늘어나는 단점이 존재 + - 어휘 사전이 크면 신경망의 파라미터 역시 많이 필요해짐 + - 어휘사전의 크기를 제한하는 일반적 방법은 드물게 등장하는 단어는 무시 + - ex)말뭉치에서 자주 등장하는 10만개 단어만 사용 + - but, 그렇게 되면 단어 토큰화 과정에서 중요 정보를 일부 잃게 됨 + +### 부분단어 토큰화 +- 부분단어 토큰화는 문자 토큰화와 단어 토큰화의 장점을 결합 +- 드물게 등장하는 단어를 더 작은 단위로 나누면 모델이 복잡한 단어나 철자 오류를 처리하기 용이 +- 입력 길이를 적절한 크기로 유지하기 위해 자주 등장하는 단어를 고유 항목으로 유지 +- NLP 에서 많이 사용되는 부분단어 토큰화는 BERT와 DistilBERT의 토큰나이저인 **WordPiece** +- 트랜스포머스는 사전 훈련된 모델에 연관된 토크나이저를 빠르게 로드하는 **AutoTokenizer** 클래스 제공 + - 이 클래스의 **from_pretrained()** 메서드를 허브의 모델ID나 로컬 파일 경로와 함께 호출 +- AutoTokenizer 클래스는 체크포인트 이름을 사용해 모델의 설정, 사전 훈련 가중치, 어휘 사전을 자동으로 추출하는 자동 클래스 + +## 3. 텍스트 분류 모델 훈련 +- DistilBERT 모델은 텍스트 시퀀스에 있는 마스킹된 단어를 예측하도록 사전 훈련, 이 모델을 바로 텍스트 분류에 사용하지는 못함 + + +
+ + - 토큰 인코딩(Token Encoding) + - 텍스트를 토큰화 하여 Token-Encoding이라 부르는 one-hot 벡터로 나타냄 + - Tokenizer 어휘 사전의 크기(2만 ~ 2백만)가 토큰 인코딩의 차원을 결정 + - 토큰 임베딩(Token Embedding) + - 토큰 인코딩을 저차원 공간의 벡터인 토큰 임베딩으로 변환 + - 토큰 임베딩을 Encoder 블록 층에 통과시켜 각 입력 토큰에 대한 은닉 상태를 생성 + - 각 은닉 상태는 언어 모델링의 사전 훈련 목표(DistilBERT의 경우 마스킹된 토큰)을 달성하기 위해 마스킹된 입력 토큰을 예측하는 층으로 보냄 + +- 텍스트 분류 모델 훈련 방법 + - 특성 추출 + - 사전 훈련된 모델을 수정하지 않고 은닉 상태를 특성(feature)으로 사용해 분류 모델을 훈련 + - 미세 튜닝 + - 사전 훈련된 모델의 파라미터도 업데이트하기 위해 전체 모델을 엔드-투-엔드로 훈련 + +### 트랜스포머를 특성 추출기로 사용 +- 바디의 가중치를 동결하고 은닉 상태를 분류 모델의 특성으로 사용 +- 이 방식은 작거나 얕은 모델을 빠르게 훈련한다는 장점이 존재 + +### 사전 훈련된 모델 사용 +- 트랜스포머스의 자동 클래스인 **AutoModel**을 사용 +- AutoModel 클래스 또한 사전 훈련된 모델의 가중치를 로드하는 **from_pretrained()** 메서드 존재 +- AutoModel은 토큰 인코딩을 임베딩으로 변환한 다음 인코더 스택에 통과시켜 은닉 상태를 반환 +- 은닉 상태 텐서의 크기는 [batch_size, n_tokens, hidden_dim] + - ex) [1, 6, 768]: 6개의 입력 토큰마다 768차원의 벡터가 반환 +- 분류 작업에선 보통 [CLS] 토큰에 연관된 은닉 상태를 입력 특성으로 사용 + - BERT모델에 있는 [CLS]토큰은 분류 작업에서 전체 시퀀스의 정보가 담긴 특수 토큰 + +### 훈련 세트 시각화 +- UMAP 알고리즘을 사용해 벡터를 2D로 투영 + - UMAP은 특성이 [0,1] 범위에 놓일 때 잘 동작함 + - Scikit-learn의 MinMaxScaler를 적용 + +## 트랜스포머 미세 튜닝 +- 미세튜닝방식에서는 은닉 상태를 고정된 특성으로 사용하지 않고 전체 모델을 훈련 +- 그렇기에 분류 헤드는 미분 가능해야 함(미분이 가능해야 역전파법으로 weight를 구할 수 있기 때문) +- 트랜스포머스의 **Trainer** API를 사용 +- AutoModel 클래스 대신 AutoModelForSequenceClassification을 사용 + - 사전 훈련된 모델 출력위에 베이스 모델과 함께 쉽게 훈련할 수 있는 분류헤드가 존재 +- 훈련 파라미터를 정의하기 위해 **TrainingArguments** 클래스를 사용 + - 많은 정보를 저장하며 훈련과 평가를 상세히 제어 가능 + - TrainingArguments Parameter + - output_dir: Output Directory, 모델의 예측과 체크포인트를 저장해두는 장소 + - num_train_epochs: epochs 횟수 + - learning_rate: 학습률 + per_device_train_batch_size/ per_device_eval_batch_size: 배치크기 + - weight_decay: 가중치 감쇠 정도 + - evaluation_strategy: Training중 채택할 평가 전략 + - "no" : 학습하는 동안 평가 하지 않음 + - "steps" : eval_steps 마다 평가 + - "epoch" : epoch 당 평가 + - logging_steps: 업데이트 단계 수 + - save_strategy: 체크 포인트 저장 전략 + - "no": 저장하지 않음 + - "epoch": epoch 마다 저장 + - "steps": save_step마다 저장 + - load_best_model_at_end: 학습이 끝났을때 가장 best model을 load + - 참고: https://huggingface.co/docs/transformers/v4.24.0/en/main_classes/trainer#transformers.TrainingArguments + +## 오류 분석 +- 모델의 손실 기준으로 검증 샘플을 정렬 +- 정방향 패스의 결과와 레이블을 사용하면 손실을 자동 계산 가능 + +## CODE +colab을 사용해 실행 +- colab/MotionClassifier.ipynb + +## Reference +1. 아파치 애로우(Apache Arrow) + - 서로 다른 데이터 인프라가 서로 간의 데이터 공유를 위해 API를 이용할때 발생하는 문제점 중 하나는 직렬화와 역직렬화의 오버헤드가 너무 높다는 것 + - Arrow는 언어, 플랫폼과 상관없이 메모리 상에서 컬럼 구조로 데이터를 정의하여 CPU, GPU에서 메모리를 빠르게 읽고 쓸 수 있도록 해줌 + +
+ +2. 박스 플롯(Box Plot) + - 많은 데이터를 눈으로 확인하기 어려울 때 그림을 이용해 데이터 집합의 범위와 중앙값을 빠르게 확인하는 목적으로 사용 + +
+ +3. WordPiece + - https://wikidocs.net/166826 + +4. Embedding Layer + - 문자 입력에 대해 학습을 요할 때 필요 Layer + - 단어를 의미론적 기하공간에 매핑할 수 있도록 벡터화 시킴 + +5. UMAP + - 차원 축소 기술로 머신러닝 개발자들이 고차원 데이터셋을 이해하고 시각화하기 위해 사용하는 툴 + - umap 동작 원리: https://m.blog.naver.com/myohyun/222421460444 + - umap github: https://github.com/lmcinnes/umap + - UMAP 생성자 파라미터 + + +
+ +6. 오차행렬(confused matrix) + - 학습된 분류 모델이 예측을 수행하며 얼마나 햇갈리고(confused) 있는지도 함께 보여주는 지표 + + +
+ + - True: 예측 클래스 값과 실제 클래스 값이 같음을 의미 + - False: 예측 클래스 값과 실제 클래스 값이 다름을 의미 + - Accuracy = (TN + TP) / (TN + FP + FN + TP) + - 다중 클래스의 경우 자기 클래스는 Positive, 나머지는 모두 Negative로 처리 + +7. f1 점수 + - Precision(정밀도) + - 모델이 True라고 분류한 것 중에 실제 True인 것의 비율 + - Precision = (TP) / (TP + FP) + - Recall(재현율) + - 실제 True인 것중에 모델이 True라고 예측한 것의 비율 + - Recall = (TP) / (TP + FN) + - Ex] 날씨가 맑다/아니다를 예측 + - Precision: 날씨 예측 모델이 맑다로 예측했는데 실제 날씨가 맑았는지를 살펴보는 지표 + - Recall: 실제 날씨가 맑은 날중에서 모델이 맑다고 예측한 비율을 나타내는 지표 + - Precision, Recall은 모두 실제 True인 정답을 모델이 True라고 예측한 경우에 관심이 있으나 보는 관점이 다른 것 + - Accuracy(정확도) + - True를 True로 False를 False라고 예측한 지표(Precision과 Recall은 True만 고려) + - 그러나 Accuracy의 경우 데이터가 한쪽으로 편중될시 문제가 발생 + - 데이터가 한쪽으로 많이 쏠려 있을시 그 Data만 예측해도 정확도가 올라가게 됨 + - F1 Score + - Precision과 Recall의 조화 평균 + - F1 Score = 2 * 1 / ((1/Precision) + (1/Recall)) + - F1 Score는 데이터 Label이 불균형 구조일 때 모델의 성능을 정확히 평가, 성능을 하나의 숫자로 표현이 가능 + + - https://sumniya.tistory.com/26 \ No newline at end of file diff --git a/Transformer/01_TextClassification/colab/MotionClassifier.ipynb b/Transformer/01_TextClassification/colab/MotionClassifier.ipynb new file mode 100644 index 0000000..48760e7 --- /dev/null +++ b/Transformer/01_TextClassification/colab/MotionClassifier.ipynb @@ -0,0 +1 @@ +{"cells":[{"cell_type":"code","source":["!pip3 install torch\n","!pip3 install torchvision"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"POAqZe4M6UNm","executionInfo":{"status":"ok","timestamp":1673341816630,"user_tz":-540,"elapsed":6922,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"9ffa3f0b-6599-4dca-e154-cbfc98daaee1"},"id":"POAqZe4M6UNm","execution_count":1,"outputs":[{"output_type":"stream","name":"stdout","text":["Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n","Requirement already satisfied: torch in /usr/local/lib/python3.8/dist-packages (1.13.0+cu116)\n","Requirement already satisfied: typing-extensions in /usr/local/lib/python3.8/dist-packages (from torch) (4.4.0)\n","Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n","Requirement already satisfied: torchvision in /usr/local/lib/python3.8/dist-packages (0.14.0+cu116)\n","Requirement already satisfied: typing-extensions in /usr/local/lib/python3.8/dist-packages (from torchvision) (4.4.0)\n","Requirement already satisfied: requests in /usr/local/lib/python3.8/dist-packages (from torchvision) (2.25.1)\n","Requirement already satisfied: numpy in /usr/local/lib/python3.8/dist-packages (from torchvision) (1.21.6)\n","Requirement already satisfied: torch==1.13.0 in /usr/local/lib/python3.8/dist-packages (from torchvision) (1.13.0+cu116)\n","Requirement already satisfied: pillow!=8.3.*,>=5.3.0 in /usr/local/lib/python3.8/dist-packages (from torchvision) (7.1.2)\n","Requirement already satisfied: chardet<5,>=3.0.2 in /usr/local/lib/python3.8/dist-packages (from requests->torchvision) (4.0.0)\n","Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.8/dist-packages (from requests->torchvision) (2.10)\n","Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.8/dist-packages (from requests->torchvision) (2022.12.7)\n","Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.8/dist-packages (from requests->torchvision) (1.24.3)\n"]}]},{"cell_type":"code","source":["!pip install datasets"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"68m-GDr66fxa","executionInfo":{"status":"ok","timestamp":1673341825377,"user_tz":-540,"elapsed":8766,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"fcdb4575-faf7-4211-c4b6-5528526a5df3"},"id":"68m-GDr66fxa","execution_count":2,"outputs":[{"output_type":"stream","name":"stdout","text":["Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n","Collecting datasets\n"," Downloading datasets-2.8.0-py3-none-any.whl (452 kB)\n","\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m452.9/452.9 KB\u001b[0m \u001b[31m23.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[?25hRequirement already satisfied: aiohttp in /usr/local/lib/python3.8/dist-packages (from datasets) (3.8.3)\n","Collecting huggingface-hub<1.0.0,>=0.2.0\n"," Downloading huggingface_hub-0.11.1-py3-none-any.whl (182 kB)\n","\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m182.4/182.4 KB\u001b[0m \u001b[31m22.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[?25hCollecting xxhash\n"," Downloading xxhash-3.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (213 kB)\n","\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m213.0/213.0 KB\u001b[0m \u001b[31m15.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[?25hCollecting responses<0.19\n"," Downloading responses-0.18.0-py3-none-any.whl (38 kB)\n","Requirement already satisfied: pyarrow>=6.0.0 in /usr/local/lib/python3.8/dist-packages (from datasets) (9.0.0)\n","Requirement already satisfied: dill<0.3.7 in /usr/local/lib/python3.8/dist-packages (from datasets) (0.3.6)\n","Requirement already satisfied: pandas in /usr/local/lib/python3.8/dist-packages (from datasets) (1.3.5)\n","Requirement already satisfied: tqdm>=4.62.1 in /usr/local/lib/python3.8/dist-packages (from datasets) (4.64.1)\n","Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.8/dist-packages (from datasets) (1.21.6)\n","Collecting multiprocess\n"," Downloading multiprocess-0.70.14-py38-none-any.whl (132 kB)\n","\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m132.0/132.0 KB\u001b[0m \u001b[31m17.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[?25hRequirement already satisfied: packaging in /usr/local/lib/python3.8/dist-packages (from datasets) (21.3)\n","Requirement already satisfied: fsspec[http]>=2021.11.1 in /usr/local/lib/python3.8/dist-packages (from datasets) (2022.11.0)\n","Requirement already satisfied: requests>=2.19.0 in /usr/local/lib/python3.8/dist-packages (from datasets) (2.25.1)\n","Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.8/dist-packages (from datasets) (6.0)\n","Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (1.3.3)\n","Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (6.0.3)\n","Requirement already satisfied: yarl<2.0,>=1.0 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (1.8.2)\n","Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (22.2.0)\n","Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (1.3.1)\n","Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (4.0.2)\n","Requirement already satisfied: charset-normalizer<3.0,>=2.0 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (2.1.1)\n","Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.8/dist-packages (from huggingface-hub<1.0.0,>=0.2.0->datasets) (4.4.0)\n","Requirement already satisfied: filelock in /usr/local/lib/python3.8/dist-packages (from huggingface-hub<1.0.0,>=0.2.0->datasets) (3.8.2)\n","Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /usr/local/lib/python3.8/dist-packages (from packaging->datasets) (3.0.9)\n","Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.8/dist-packages (from requests>=2.19.0->datasets) (2.10)\n","Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.8/dist-packages (from requests>=2.19.0->datasets) (1.24.3)\n","Requirement already satisfied: chardet<5,>=3.0.2 in /usr/local/lib/python3.8/dist-packages (from requests>=2.19.0->datasets) (4.0.0)\n","Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.8/dist-packages (from requests>=2.19.0->datasets) (2022.12.7)\n","Collecting urllib3<1.27,>=1.21.1\n"," Downloading urllib3-1.26.13-py2.py3-none-any.whl (140 kB)\n","\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m140.6/140.6 KB\u001b[0m \u001b[31m17.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[?25hRequirement already satisfied: pytz>=2017.3 in /usr/local/lib/python3.8/dist-packages (from pandas->datasets) (2022.7)\n","Requirement already satisfied: python-dateutil>=2.7.3 in /usr/local/lib/python3.8/dist-packages (from pandas->datasets) (2.8.2)\n","Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.8/dist-packages (from python-dateutil>=2.7.3->pandas->datasets) (1.15.0)\n","Installing collected packages: xxhash, urllib3, multiprocess, responses, huggingface-hub, datasets\n"," Attempting uninstall: urllib3\n"," Found existing installation: urllib3 1.24.3\n"," Uninstalling urllib3-1.24.3:\n"," Successfully uninstalled urllib3-1.24.3\n","Successfully installed datasets-2.8.0 huggingface-hub-0.11.1 multiprocess-0.70.14 responses-0.18.0 urllib3-1.26.13 xxhash-3.2.0\n"]}]},{"cell_type":"code","execution_count":3,"id":"2f3c6918","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"2f3c6918","executionInfo":{"status":"ok","timestamp":1673341831251,"user_tz":-540,"elapsed":5877,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"9827fa97-0000-4b0b-ea1c-245aa2e3b8f6"},"outputs":[{"output_type":"stream","name":"stdout","text":["현재 허브에는 18224개의 데이터셋이 존재\n","처음 10개 데이터셋: ['acronym_identification', 'ade_corpus_v2', 'adversarial_qa', 'aeslc', 'afrikaans_ner_corpus', 'ag_news', 'ai2_arc', 'air_dialogue', 'ajgt_twitter_ar', 'allegro_reviews']\n"]}],"source":["from datasets import list_datasets\n","\n","all_datasets = list_datasets()\n","print(f\"현재 허브에는 {len(all_datasets)}개의 데이터셋이 존재\")\n","print(f\"처음 10개 데이터셋: {all_datasets[:10]}\")"]},{"cell_type":"code","execution_count":4,"id":"feed8efa","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":377,"referenced_widgets":["15be0db60e7447b39d8a3efb0178f99d","6c2a216ef9454384a48332dfcd11e854","321df68850b64edbb4bf68f3efc4666c","2f251ea5146e42c8a10e3e1299d20ee7","e6f31047df2b410d91620c2f04f8714c","48d26eaa385347bb8f1df071dbb3fcf5","37e087967b954cf39bbed8efc00f8910","affcdf3100514e08ae78b45fdff62bb7","d4dbe15a78104e4080f3168d27a28f2f","17d39ba9ceb74e4a971c9d7fe0a388e5","ad9e1452c5a44231a749edefc88ec559","8596765b76d8475687f9a68471baa8c2","245cdb335127490eb54f0b211711187c","ee552a6f31454b0eba764bed5304c447","3ccae33d0f704dd4ab20ed71ad34629d","3e85d7ab6dc9402ea32346d736445024","ca67643c59934657987dbe05ff1f6a79","19ce3569029c443abcd029d7b1e5434f","ec09ef01f31b4c63b70a4f8686084da9","fff4ffa55682415d9f2964ed56978877","67591dd5ed2b4cd4aa72809954922e4e","41a7de832edd405cb11f56b9d7b5ce4b","4d4e5bdc8d534162ba27f70bd5e1f082","16d9f032b1d14503971178f91ccd9957","61e5561b9f374d0baf8d5f73094798fc","1a8d91a9ac674e41a6e0bf62c5b35477","a5addd4c0f114525acde2000dc504386","bbd6396309394aebac8c614a6a93bab6","8da6d9afaae94419b6580759f2760247","c0b1272b05d94b6d803882a8067d6afb","9c4da2a7141f4df88ffc59d3d63c694a","a980d9bda04444ed94d1519d7d628a49","f4a2e61b61d645629758014940686e07","204278e03cfa4697804abf20ff225813","1a82751128d443f4ac5b5303c1b73153","6c8c86abf14d44c5b4efdb368da1a513","bd9de3f5b9574ac3bf3a45d05196e734","e9c04430c58b45518f4e663d4732ebbe","740a2671e40842f79f715ba2d258440b","bc4307eb644e4a6ebfaa308ec79b5911","1f7ab1db7a5c43a386c4097d8469d4a2","e3e4baf588234e2a80af2e8e9858ed5f","31985c31745a4dfebf496417e9b46f3a","d0e5f1132e754fe59287c20f4b94f96b","7c2a5fe9cff34e31ac794deb1e788d8d","acb980cf775e44299b861e54a2eff750","62c0ff2b19c84cdfad5a83ff8720983f","7303d71c059d4066942330e3e70bede0","ac5e2af54b694df5983d1418332e7636","d4a4259ce3c14993af19a12affd34eb8","6f2500756b6f42c391298eeaed5f8854","c98890a867614a26920d4bb067bee304","85754c374f0d43e0bad78444da647c61","fcca2b9f79e0446f9e2f91e0270e9b4b","dd50d5fb200746ccaecb690921ec2c42","7bfe63d5a7c54b4ea7bc6221105d0cbb","e6d52c04d9644613b040bf53957eb46f","97c67c9ea7d9422581abe4a21e091b4b","7fcb248425894c77bef4326f479c1926","36258d1c281a4d2eb26f92513288726d","c0fa09c25d334099899a963c3bc36c00","2da35527796b47eb9ab3cb1cbcaccaf8","3820bb7924a14e27b2b23d83f63d6606","ca8c43945b2a4ec391c00c7b10b48504","1abe53ac1c564bb58c8b7c06ff097d11","b7828189ea0c4d7792da50b67e748efd","bed71be988084af68c0628bcbcfe63f6","17c3146d7a6449f4ad08ea1d3052add1","66ef552e0f0e4591bb39fb6f0fc034d6","5df6a4f46d82455488419dd8e7df3470","07a62cdc075c4e56a4e68189564ac136","c5d0ec37d3cd40558754aa9480eb2a6b","6084c39bce3c4b5ab13d7586c4431a3c","a71d88aedade49038831bc24d2281e3a","562cf26a240949c787ff51dc1f3ef4a2","df95194ca38e43fb83250fa86d096613","bf1dc66bb9164730b4fe171c24604125","c545f017ed8e4a3e8add6a23e7e37314","418167aad1554edea1dc5d1d6b879ccd","812d351083b24a9db1f535b1c6ef5e61","61cfdd6ec9664df98ad6fa2a202318f8","ec5517f772c648f8839125acc7163bd2","bf2332fb0c2c440b9b71f00818936a53","f12f2f547a7e417db26df14ef00c6c80","79be6dfa4f8145d09f072ed6f5cb4d3a","6cfca50926a04bf0b7455de53ed39e07","ede97313536a4a1882e0363a28d771fc","77b2d4741f58419c87725f88409fa34d","774d58af423e4d559b55fb7ca867b73e","2249c0ee4a6c4a12b5c1b004ef0f7bea","8c6a709ec66f4bf89d7dc1d99ebfcd85","b203c5ac560b4c0b91da8d3936c9701e","a56c46fb64984a99acf33eaf1d0749e2","654e5a1bf15944139a8af596fea472ad","57f07b09eaff4e2cbb2baf0f55aa6f56","2f78b83bf6ab4e309657919870f72914","7619571658cd4fa2841a04d78dc1fbe0","cc4c766ab3cd4d31a6a1c2bd62fd1ac1","d546cdab698241b593f2a4668cbbe718","1dcfb16f3b99497fab648fbc508622af","0edf7b00d74e4aa08a2a3dde6f9377d9","68663f8ab1464294ad24fe1550746272","62dec3a2e87744a8accf7e17bdfc4fe1","7e386e08bdd34471b5be7c5b578e3fe8","e0da041ea0a34884a3ac413a0632c05a","dc452bd507d04875922b12d79a12be8c","cdd8485752434ebabbc37d1e4f268e5d","131e10a0bb814925b81350ee521d10ec","9d0a2f1b16554acc8ee8fa798b3d80d5","4e22f63e5af146279cdafa6e14fa0235","3ac8646d66e9466cb19ca475d5c35319","4e20703456eb4983bfd220202193f770","ff1ff119aa864603bc9e179ad039db1c","79c0f1e2dedf459fad9d99c9da23921f","f4536072a0f245ce955bf17c4e69fff7","62e068731b004692b62bfbe3d6a7d4bd","21401b5db07742ccbd904349816513b8","12d18e67c09045aa95cb9e59a9b6e2a8","fca1857b9a8f48d28b74fc06d6986bd5","826dafb23b96401b854502fd7faff689","0f6f60d107854832ab63a53fbfbd079c","d7190fe0ffbe44ed88183863b01ae154","37f0d2cf136240c9a05d09530134731b","4b00f1b6b9a44812ace3d76be6eddc93","43a0ec11689f4195871427b3518a564d","a67d6cc425c94c4a8a114da132392197","46df938913904dff8d9d6ac483529a5c","140e7085dabc494d89eeeeb30d5f8a19","a2f713bb502644fd93663239d7af8c4d","aa0bb486843e4663952242eed3ba1261","1bb5c0a141984ad39f5fb3ce2be79552","f38775a718884ecdbaf317b2369550da"]},"id":"feed8efa","executionInfo":{"status":"ok","timestamp":1673341846622,"user_tz":-540,"elapsed":15373,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"6f88ae9d-a345-410c-e429-2153da87dd9b"},"outputs":[{"output_type":"display_data","data":{"text/plain":["Downloading builder script: 0%| | 0.00/3.97k [00:00\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
textlabel
0i didnt feel humiliated0
1i can go from feeling so hopeless to so damned...0
2im grabbing a minute to post i feel greedy wrong3
3i am ever feeling nostalgic about the fireplac...2
4i am feeling grouchy3
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n"," \n"," "]},"metadata":{},"execution_count":12}],"source":["import pandas as pd\n","\n","emotions.set_format(type=\"pandas\")\n","df = emotions[\"train\"][:]\n","df.head()"]},{"cell_type":"code","execution_count":13,"id":"44b1fd35","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":206},"id":"44b1fd35","executionInfo":{"status":"ok","timestamp":1673341847308,"user_tz":-540,"elapsed":689,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"517a6d8a-9827-43d8-e204-7256ac6bee8a"},"outputs":[{"output_type":"execute_result","data":{"text/plain":[" text label label_name\n","0 i didnt feel humiliated 0 sadness\n","1 i can go from feeling so hopeless to so damned... 0 sadness\n","2 im grabbing a minute to post i feel greedy wrong 3 anger\n","3 i am ever feeling nostalgic about the fireplac... 2 love\n","4 i am feeling grouchy 3 anger"],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
textlabellabel_name
0i didnt feel humiliated0sadness
1i can go from feeling so hopeless to so damned...0sadness
2im grabbing a minute to post i feel greedy wrong3anger
3i am ever feeling nostalgic about the fireplac...2love
4i am feeling grouchy3anger
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":13}],"source":["def label_int2str(row):\n"," return emotions[\"train\"].features[\"label\"].int2str(row)\n","\n","df[\"label_name\"] = df[\"label\"].apply(label_int2str)\n","df.head()"]},{"cell_type":"code","execution_count":14,"id":"b96c7176","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":281},"id":"b96c7176","executionInfo":{"status":"ok","timestamp":1673341847309,"user_tz":-540,"elapsed":18,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"087030f8-fada-40fc-e3d9-8996591ebc5b"},"outputs":[{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"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\n"},"metadata":{"needs_background":"light"}}],"source":["import matplotlib.pyplot as plt\n","\n","# plot.barh() : Make a horizontal bar plot\n","df[\"label_name\"].value_counts(ascending=True).plot.barh()\n","plt.title(\"Frequency of Classes\")\n","plt.show()"]},{"cell_type":"code","execution_count":15,"id":"50520dc3","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":335},"id":"50520dc3","executionInfo":{"status":"ok","timestamp":1673341847309,"user_tz":-540,"elapsed":16,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"14c364fc-f39d-4c5e-9176-a52d437fcb66"},"outputs":[{"output_type":"stream","name":"stderr","text":["/usr/local/lib/python3.8/dist-packages/matplotlib/cbook/__init__.py:1376: VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray.\n"," X = np.atleast_1d(X.T if isinstance(X, np.ndarray) else np.asarray(X))\n"]},{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"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\n"},"metadata":{"needs_background":"light"}}],"source":["df[\"Words Per Tweet\"] = df[\"text\"].str.split().apply(len)\n","df.boxplot(\"Words Per Tweet\", by=\"label_name\", grid=False, showfliers=False, color=\"black\")\n","plt.suptitle(\"\")\n","plt.xlabel(\"\")\n","plt.show()"]},{"cell_type":"code","execution_count":16,"id":"bae0a4c8","metadata":{"id":"bae0a4c8","executionInfo":{"status":"ok","timestamp":1673341847309,"user_tz":-540,"elapsed":11,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}}},"outputs":[],"source":["# 데이터셋의 출력 포맷 초기화\n","emotions.reset_format()"]},{"cell_type":"markdown","id":"530d7e4a","metadata":{"id":"530d7e4a"},"source":["# 토큰화"]},{"cell_type":"markdown","id":"b397f12b","metadata":{"id":"b397f12b"},"source":["## 문자 토큰화\n","각 문자를 개별로 모델에 주입
\n","파이썬의 str 객체 내부는 사실 배열이므로 문자 수준의 토큰화가 손쉽게 가능"]},{"cell_type":"code","execution_count":17,"id":"9b5c18a4","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"9b5c18a4","executionInfo":{"status":"ok","timestamp":1673341847310,"user_tz":-540,"elapsed":12,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"81675c55-2892-4542-fd6d-d6fbf120999b"},"outputs":[{"output_type":"stream","name":"stdout","text":["['T', 'o', 'k', 'e', 'n', 'i', 'z', 'i', 'n', 'g', ' ', 't', 'e', 'x', 't', ' ', 'i', 's', ' ', 'a', ' ', 'c', 'o', 'r', 'e', ' ', 't', 'a', 's', 'k', ' ', 'o', 'f', ' ', 'N', 'L', 'P', '.']\n"]}],"source":["text = \"Tokenizing text is a core task of NLP.\"\n","tokenized_text = list(text)\n","print(tokenized_text)"]},{"cell_type":"code","execution_count":18,"id":"acf0acdd","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"acf0acdd","executionInfo":{"status":"ok","timestamp":1673341847310,"user_tz":-540,"elapsed":10,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"88f785d3-4cc2-4635-c044-e7368fb02582"},"outputs":[{"output_type":"stream","name":"stdout","text":["{' ': 0, '.': 1, 'L': 2, 'N': 3, 'P': 4, 'T': 5, 'a': 6, 'c': 7, 'e': 8, 'f': 9, 'g': 10, 'i': 11, 'k': 12, 'n': 13, 'o': 14, 'r': 15, 's': 16, 't': 17, 'x': 18, 'z': 19}\n"]}],"source":["token2idx = {ch: idx for idx, ch in enumerate(sorted(set(tokenized_text)))}\n","print(token2idx)"]},{"cell_type":"code","execution_count":19,"id":"ff118c22","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"ff118c22","executionInfo":{"status":"ok","timestamp":1673341847310,"user_tz":-540,"elapsed":9,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"d86f3c49-412b-43fa-e063-431158532361"},"outputs":[{"output_type":"stream","name":"stdout","text":["[5, 14, 12, 8, 13, 11, 19, 11, 13, 10, 0, 17, 8, 18, 17, 0, 11, 16, 0, 6, 0, 7, 14, 15, 8, 0, 17, 6, 16, 12, 0, 14, 9, 0, 3, 2, 4, 1]\n"]}],"source":["input_ids = [token2idx[token] for token in tokenized_text]\n","print(input_ids)"]},{"cell_type":"code","execution_count":20,"id":"8508c09d","metadata":{"id":"8508c09d","executionInfo":{"status":"ok","timestamp":1673341851106,"user_tz":-540,"elapsed":3803,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}}},"outputs":[],"source":["import torch\n","import torch.nn.functional as F"]},{"cell_type":"code","execution_count":21,"id":"4ce2e4e1","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"4ce2e4e1","executionInfo":{"status":"ok","timestamp":1673341851106,"user_tz":-540,"elapsed":31,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"f93c10f1-a432-4141-c108-e40acb976646"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["torch.Size([38, 20])"]},"metadata":{},"execution_count":21}],"source":["input_ids = torch.tensor(input_ids)\n","one_hot_encodings = F.one_hot(input_ids, num_classes=len(token2idx))\n","one_hot_encodings.shape"]},{"cell_type":"markdown","id":"8b8449c2","metadata":{"id":"8b8449c2"},"source":["38개의 입력 토큰 각각에 20차원의 원-핫 벡터가 만들어짐\n","\n","5 .....len(20)
\n","14.....len(20)
\n","12.....len(20)
\n",".\n",".\n",". .....len(20)
\n","2 .....len(20)
\n","4 .....len(20)
\n","1 .....len(20)
\n","\n","각 토큰별 20개의 원소를 가진 벡터가 만들어짐"]},{"cell_type":"code","execution_count":22,"id":"58874e4b","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"58874e4b","executionInfo":{"status":"ok","timestamp":1673341851107,"user_tz":-540,"elapsed":28,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"e5ff92cb-cc63-455c-f447-8ed4e1b8846c"},"outputs":[{"output_type":"stream","name":"stdout","text":["토큰: T\n","텐서 인덱스: 5\n","원-핫 인코딩: tensor([0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])\n"]}],"source":["print(f\"토큰: {tokenized_text[0]}\")\n","print(f\"텐서 인덱스: {input_ids[0]}\")\n","print(f\"원-핫 인코딩: {one_hot_encodings[0]}\")"]},{"cell_type":"markdown","id":"5729671a","metadata":{"id":"5729671a"},"source":["## 단어 토큰화\n","텍스트를 문자가 아닌 단어로 분할하고 각 단어를 정수로 매핑"]},{"cell_type":"code","execution_count":23,"id":"6fbe209f","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"6fbe209f","executionInfo":{"status":"ok","timestamp":1673341851107,"user_tz":-540,"elapsed":23,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"d3cd0fbe-5a53-411d-f084-ac04b70efff5"},"outputs":[{"output_type":"stream","name":"stdout","text":["['Tokenizing', 'text', 'is', 'a', 'core', 'task', 'of', 'NLP.']\n"]}],"source":["tokenized_text = text.split()\n","print(tokenized_text)"]},{"cell_type":"markdown","id":"f8988f71","metadata":{"id":"f8988f71"},"source":["단어 토큰화는 단어에 곡용, 활용형, 철자 오류가 포함되어 어휘 사전이 금세 수백만 개까지 늘어나게 됨"]},{"cell_type":"markdown","id":"bfb042f0","metadata":{"id":"bfb042f0"},"source":["단어를 토큰화 하게 되면 어휘사전이 커지게 되고 이러면 신경망의 파라미터 역시 많이 필요하게 됨\n","
\n","- 어휘 사전의 크기를 제한하는 일반적인 방법은 드물게 등장하는 단어는 무시하는 것. 이러한 단어는 'UNK' 토큰으로 매핑\n","- 하지만 이렇게 되면 토큰화 과정에서 중요 정보 일부를 잃게 됨\n","- 모든 입력 정보와 일부 입력 구조를 유지하는 문자 토큰화와 단어 토큰화를 절충하는 방법으로 **부분단어 토큰화(subword tokenization)** 라는 방법"]},{"cell_type":"markdown","id":"95a96577","metadata":{"id":"95a96577"},"source":["## 부분단어 토큰화\n","- 부분단어 토큰화는 문자 단어 토큰화 + 단어 토큰화 의 장점을 결합\n","- 드물게 등장하는 단어를 더 작은 단위로 나누면 모델이 복잡한 단어나 철자 오류를 처리하기 용이\n","- 다른 방법으론 입력 길이를 적절한 크기로 유지하기 위해 자주 등장하는 단어를 고유한 항목으로 유지\n","

\n","- NLP 분야에서 널리 사용되는 부분단어 토큰화 중 먼저 BERT와 DistilBERT의 토크나이저 **WordPiece**"]},{"cell_type":"code","source":["!pip install transformers"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"NmnMUChO63ZZ","executionInfo":{"status":"ok","timestamp":1673341860819,"user_tz":-540,"elapsed":9733,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"c0b8dfaa-3526-445d-db30-cdf01b04fed8"},"id":"NmnMUChO63ZZ","execution_count":24,"outputs":[{"output_type":"stream","name":"stdout","text":["Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n","Collecting transformers\n"," Downloading transformers-4.25.1-py3-none-any.whl (5.8 MB)\n","\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m5.8/5.8 MB\u001b[0m \u001b[31m79.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[?25hRequirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.8/dist-packages (from transformers) (6.0)\n","Requirement already satisfied: tqdm>=4.27 in /usr/local/lib/python3.8/dist-packages (from transformers) (4.64.1)\n","Collecting tokenizers!=0.11.3,<0.14,>=0.11.1\n"," Downloading tokenizers-0.13.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.6 MB)\n","\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m7.6/7.6 MB\u001b[0m \u001b[31m69.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[?25hRequirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.8/dist-packages (from transformers) (1.21.6)\n","Requirement already satisfied: huggingface-hub<1.0,>=0.10.0 in /usr/local/lib/python3.8/dist-packages (from transformers) (0.11.1)\n","Requirement already satisfied: filelock in /usr/local/lib/python3.8/dist-packages (from transformers) (3.8.2)\n","Requirement already satisfied: requests in /usr/local/lib/python3.8/dist-packages (from transformers) (2.25.1)\n","Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.8/dist-packages (from transformers) (2022.6.2)\n","Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.8/dist-packages (from transformers) (21.3)\n","Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.8/dist-packages (from huggingface-hub<1.0,>=0.10.0->transformers) (4.4.0)\n","Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /usr/local/lib/python3.8/dist-packages (from packaging>=20.0->transformers) (3.0.9)\n","Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.8/dist-packages (from requests->transformers) (2022.12.7)\n","Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.8/dist-packages (from requests->transformers) (1.26.13)\n","Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.8/dist-packages (from requests->transformers) (2.10)\n","Requirement already satisfied: chardet<5,>=3.0.2 in /usr/local/lib/python3.8/dist-packages (from requests->transformers) (4.0.0)\n","Installing collected packages: tokenizers, transformers\n","Successfully installed tokenizers-0.13.2 transformers-4.25.1\n"]}]},{"cell_type":"code","execution_count":25,"id":"2379be10","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":145,"referenced_widgets":["2cbf56d11bd84bd39a2e8f00be50ab98","fa29a3affda84dc38e53a7ec02e4a1f2","1886290ec37f4f7eb7dced6d494cbe6a","b37bdca77d064cf2b7ef2bf21edc554b","14709700a96448cda2f036f9886463f9","e9230e8b794f433e9ed48f62a244c1f3","16ab6bdfe98a44dcb15fb374ffdd7dcb","f9ac65f7c12b4c70b1481fd0052ebcab","a49d46601b5d4395bd61aa89b3c4f261","fa363e3b514f47909eb1caf3bda7d4ac","4c2ddc339f2948cda9331332583f71ef","815b635b8e2d429ab30cc56170508f2b","2783f2b3b469440e829ecf06ce441e24","740089b7671147a8b2aa5334dbe299a1","a55dbf76cedf4c51a80127d1368f00fa","fcc0299f56d54e069e252951755dd8d9","5a16a657767448af9953262cbe566fda","279728f2f8e842af9b078cdd58d71af0","a3452d2825e040f9aad5667274d1d9d9","c8b548fcf7e14265ade8eb891b4717bf","3ef5ff5cb4c54628bb3bc720a65f93a2","eb8260186835427ab020dbdf4d484794","5f67cfa6f99c4045a77ef8f221ed8a72","b07045b7f68944aeb2c8bd0e41994b93","137fcc68aefc48179ababf622aad0776","96b98cd1ec9946d58e510739cf43324e","c6eb6b1626314623b55ad235895da2f9","72cad00b563945b6b5c9c43f8eb34172","2971a235130f4f72b0b8486364d63ad5","c70eb58ccb2347d38c8cde483c47191f","b7b7225c7d7943e280b421c760b72caa","147c8d4a28d146a792e7c8a037bcb011","823d188f499e47f6a8d87503c4ad77f7","029fdd7a3b0842229d7b0a93c5867fa1","438bcf79e8694464ad3a846a0643be03","a8baed453dd9425fb3d788033508119d","375bd083c65b4bf882f21c29c858890c","149d349aa3cb46c588d164bd37b84117","a12bce3f9ff841f683b19a6b581c587f","4d864c90cd41415e9e610edf9fba526b","323fcf7620f04d9da487b8628e229e5b","c8259c53289d4100a9fab111d220bea3","7ac6ebbf3dc040ae9a9b3614557da598","6d19cf0811e64cd7b29cb63458060fad"]},"id":"2379be10","executionInfo":{"status":"ok","timestamp":1673341874956,"user_tz":-540,"elapsed":14138,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"8f74a0e1-dd3f-43e8-f284-26c904b9be1d"},"outputs":[{"output_type":"display_data","data":{"text/plain":["Downloading: 0%| | 0.00/28.0 [00:00\n","- padding=True: 배치에 있는 가장 긴 샘플 크기에 맞춰 샘플을 0으로 패딩\n","- truncation=True: 모델의 최대 문맥 크기에 맞춰 샘플을 잘라냄"]},{"cell_type":"code","execution_count":33,"id":"9658e034","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"9658e034","executionInfo":{"status":"ok","timestamp":1673341874958,"user_tz":-540,"elapsed":8,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"edf35851-8dfa-49ae-e48a-4c7e85ecabef"},"outputs":[{"output_type":"stream","name":"stdout","text":["{'input_ids': [[101, 1045, 2134, 2102, 2514, 26608, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [101, 1045, 2064, 2175, 2013, 3110, 2061, 20625, 2000, 2061, 9636, 17772, 2074, 2013, 2108, 2105, 2619, 2040, 14977, 1998, 2003, 8300, 102]], 'attention_mask': [[1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]}\n"]}],"source":["print(tokenize(emotions[\"train\"][:2]))"]},{"cell_type":"code","execution_count":34,"id":"03458041","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":113,"referenced_widgets":["69c863e980624e10bb6afad72fed6cd1","3c160b0fb3d7466aa0f79c6233d16001","8b26dd18f285460296a17d6b856f30aa","d795813bd1e447ec8ca874a4eb58c806","8b9b4713c05e402491fa537414d0bd0b","d49fc731f3634038b245ed8b19fec175","ac1f10abc80449b3b570f462332de626","834b4dee42f84269801adc0f5517a89f","6c363fc2f9bd454f86bd477dada30a71","17d0256a8547455fbe4e4f6935cea7a4","f622e7b698bf47bcb1233230e6771772","048922deeb3141b1805c22f41a880ecc","6148410294ec48c3804ed15e7034cb4f","70773097ffad4c9b85b6a739a514e1b3","3da5ccb880f848dcaef28bb694c4bb70","c9dcf555150b4ecd80addf1c1bb33824","5ab0a87049344e46929a316bc2a2e3e9","deb4b8225c6d4fdba6f2efbb33b17000","a7953cfec05a4585b366d3d8e4b2123b","b912f40f4cc247f3a782da9507ef3e09","1a2e990827f248e7bc47da5ef7f17826","31014192818d46ff8b3671e3c5d180de","0177ae63703f4b01889c07ad4cf86e29","02a9d73f776e431198ace480d231d10b","3036423ebe6a49ad91f0de6e728d0ad8","85c41307b3c84b5a86a24f8a2463a939","9a097fa5b27749c7aa379a4ca349bf5b","e21e33b65f604a56b7ee6c3839362574","41bd67ce77564fa5be2527f800620262","48ba903b498a4dbe82b77dd7df3b28c5","4d0d3d035fc6444fa43b487ce81bb981","5ad971ef99af4d379967cf291d13ab74","a8c5dfa23d0f46d5a2b03350abb62c07"]},"id":"03458041","executionInfo":{"status":"ok","timestamp":1673341875660,"user_tz":-540,"elapsed":709,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"f24f9a52-ed17-4b4d-e482-e2a83330c933"},"outputs":[{"output_type":"display_data","data":{"text/plain":[" 0%| | 0/1 [00:00\n","\n","- batched=True: 트윗을 배치로 인코딩\n","- batch_size=None: 전체 데이터셋이 하나의 배치로 tokenize() 함수에 적용, 입력 텐서와 어텐션 마스크는 전역적으로 동일한 크기로 생성"]},{"cell_type":"code","execution_count":35,"id":"3de1ab5c","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"3de1ab5c","executionInfo":{"status":"ok","timestamp":1673341875660,"user_tz":-540,"elapsed":4,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"b30e5c75-b3d2-4e6a-e93c-35a19694756f"},"outputs":[{"output_type":"stream","name":"stdout","text":["['text', 'label', 'input_ids', 'attention_mask']\n"]}],"source":["print(emotions_encoded[\"train\"].column_names)"]},{"cell_type":"markdown","id":"c3d9224c","metadata":{"id":"c3d9224c"},"source":["# 텍스트 분류 모델 훈련\n","\n","### 특성 추출\n","사전 훈련된 모델을 수정하지 않고 은닉 상태를 특성(feature)으로 사용해 분류 모델을 훈련\n","\n","### 미세 튜닝\n","사전 훈련된 모델의 파라미터도 업데이트하기 위해 전체 모델을 엔드-투-엔드로 훈련"]},{"cell_type":"markdown","id":"2b923107","metadata":{"id":"2b923107"},"source":["## 1. 텍스트 분류 모델 훈련 - 특성 추출 방법\n"]},{"cell_type":"markdown","id":"c6560f7f","metadata":{"id":"c6560f7f"},"source":["사전 훈련된 모델 사용하기"]},{"cell_type":"code","execution_count":36,"id":"e6f48da5","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":121,"referenced_widgets":["6d20ccf8cbfc434d83d29cf94d66fa2f","563f6e63d6334ffdb92b824ca4543e26","3a3663e4ccf447178e720efe74226eb2","bd5032bb6bd04505a16d6aaeb344a411","843844a0068c4252931450f24da6b86e","bcd73e1f781c4d1d950ae79b4f6787bf","3490bc468f2e4bbeb57e76aaf9706308","2b8f7b15d44346e8a86b7414be26c8f3","e3bad1e7fa8142ce9d618d0c8b1a2225","402cabec74604cc09d0fff59dd529621","4882a7357dd3468491f3bf78eec1909c"]},"id":"e6f48da5","executionInfo":{"status":"ok","timestamp":1673341889298,"user_tz":-540,"elapsed":13640,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"495b6d23-a7ac-4d6a-931f-95091aa040ab"},"outputs":[{"output_type":"display_data","data":{"text/plain":["Downloading: 0%| | 0.00/268M [00:00\n","-> 6개의 입력 토큰마다 768차원의 벡터가 반환"]},{"cell_type":"code","execution_count":42,"id":"9a5b950a","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"9a5b950a","executionInfo":{"status":"ok","timestamp":1673341892897,"user_tz":-540,"elapsed":9,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"f0fc13d5-071e-429f-ee2b-2513a406595e"},"outputs":[{"output_type":"execute_result","data":{"text/plain":["torch.Size([1, 768])"]},"metadata":{},"execution_count":42}],"source":["outputs.last_hidden_state[:,0].size()"]},{"cell_type":"code","execution_count":43,"id":"c6eb5006","metadata":{"id":"c6eb5006","executionInfo":{"status":"ok","timestamp":1673341892897,"user_tz":-540,"elapsed":4,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}}},"outputs":[],"source":["def extract_hidden_states(batch):\n"," inputs = {k:v.to(device) for k,v in batch.items() if k in tokenizer.model_input_names}\n"," \n"," # 마지막 은닉 상태를 추출\n"," with torch.no_grad():\n"," last_hidden_state = model(**inputs).last_hidden_state\n"," \n"," # [CLS] 토큰에 대한 벡터를 반환\n"," return {\"hidden_state\": last_hidden_state[:,0].cpu().numpy()}"]},{"cell_type":"code","execution_count":44,"id":"1faae4d9","metadata":{"id":"1faae4d9","executionInfo":{"status":"ok","timestamp":1673341892897,"user_tz":-540,"elapsed":4,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}}},"outputs":[],"source":["emotions_encoded.set_format(type=\"torch\", columns=[\"input_ids\", \"attention_mask\", \"label\"])"]},{"cell_type":"code","execution_count":45,"id":"49cf0fca","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":113,"referenced_widgets":["101a4116f12b44f6b426fc2814944eb8","9edbf9a8ba5d4142a0a12e5ea696da5c","8af71848005147cfaedd0c9ec9d4fd49","44dbd17197c64b538c63a610f7f31617","c7fbfa047d884faeb5969ae896515fc1","84928d15dbe2497baa439cb5721b83a1","ba72138f0e604758b4490c754875af78","b0e164b8f84946f88721e0c0069120a1","6e54fca8c14542cabb8b8a4b33e2dbf8","0bf2839bc8d64d2e94ad85881c74bf92","6ef1bc813fcd44e88a28492317397f9a","ec33154d5df8415098870a8cfa336916","b1611173b99e4e7e887289ec11b22549","b2b36893a8404cbeb820029a11f026c1","1026b11d38b64ec88111620d4e6496b5","a40d5fc95a36471d90292263ecbf3a9a","1f92f00548c1492bb9d5fe9a827c1465","b8fc14d3ad2e493cab95946f99eaa22d","8674806cef2647afa397d1a1a67aeb9c","1afb862c628b422788c23230a7c33263","456d3d915eab4f77b0bf0f2e0326d818","92f5f4755e724e12a59fe33e372e84e4","2fd74fded781498f86d9b097b7bebd2d","b3f0a364d8db417e95971d9bc93cd894","ba119c289d864b8ab108e9cf52a49820","01aa5eadc6a946528e32244d30383ed7","c51fa6e6e9864a7bb0be5bfb9f71c637","1fd5b81af51d4b30b17f630586339560","f0cc4fc15d62434499f1e0fefe2f03b3","3d10c62f029449bcbc574169ac502748","ecb19ac1b1664734a661aa34c037e9b8","73c4003f63bc4da1bffd26ba93218857","e869dea153bf4883ba3e883359e4ba99"]},"id":"49cf0fca","executionInfo":{"status":"ok","timestamp":1673341936842,"user_tz":-540,"elapsed":43949,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"ad796a8e-2d7c-4be6-8df2-03eae34e0955"},"outputs":[{"output_type":"display_data","data":{"text/plain":[" 0%| | 0/16 [00:00\n","은닉 상태를 입력 특성으로 사용하고 레이블을 타깃으로 사용"],"metadata":{"id":"pIOakwuJ9K3v"},"id":"pIOakwuJ9K3v"},{"cell_type":"code","source":["import numpy as np\n","\n","X_train = np.array(emotions_hidden[\"train\"][\"hidden_state\"])\n","X_valid = np.array(emotions_hidden[\"validation\"][\"hidden_state\"])\n","Y_train = np.array(emotions_hidden[\"train\"][\"label\"])\n","Y_valid = np.array(emotions_hidden[\"validation\"][\"label\"])\n","\n","X_train.shape, X_valid.shape"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"fmVDUYhH9gWa","executionInfo":{"status":"ok","timestamp":1673342197640,"user_tz":-540,"elapsed":7,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"e2af6fb0-be6c-4965-f794-201abf2e5bc7"},"id":"fmVDUYhH9gWa","execution_count":47,"outputs":[{"output_type":"execute_result","data":{"text/plain":["((16000, 768), (2000, 768))"]},"metadata":{},"execution_count":47}]},{"cell_type":"markdown","source":["## 훈련 세트 시각화\n","은닉 상태로 모델을 훈련하기 전에 분류하려는 감정에 대한 유용한 표현을 제공하는지 확인이 필요
\n","\n","768차원의 은닉 상태를 시각화하기 어렵기에 UMAP 알고리즘을 사용해 이 벡터를 2D로 투영
\n","UMAP은 특성이 [0,1] 범위에 놓일 때 잘 작동. 사이킷런의 MinMaxScaler를 적용한 후 umap-learn 라이브러리의 UMAP 구현으로 은닉 상태의 차원을 축소"],"metadata":{"id":"dWkueZ3m-FFb"},"id":"dWkueZ3m-FFb"},{"cell_type":"code","source":["!pip uninstall umap"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"bYDxENRtADzq","executionInfo":{"status":"ok","timestamp":1673342785584,"user_tz":-540,"elapsed":12206,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"4f259645-7939-440c-9ab1-efcc711e55c3"},"id":"bYDxENRtADzq","execution_count":53,"outputs":[{"output_type":"stream","name":"stdout","text":["Found existing installation: umap 0.1.1\n","Uninstalling umap-0.1.1:\n"," Would remove:\n"," /usr/local/lib/python3.8/dist-packages/umap-0.1.1.dist-info/*\n"," /usr/local/lib/python3.8/dist-packages/umap/*\n"," Would not remove (might be manually added):\n"," /usr/local/lib/python3.8/dist-packages/umap/aligned_umap.py\n"," /usr/local/lib/python3.8/dist-packages/umap/distances.py\n"," /usr/local/lib/python3.8/dist-packages/umap/layouts.py\n"," /usr/local/lib/python3.8/dist-packages/umap/parametric_umap.py\n"," /usr/local/lib/python3.8/dist-packages/umap/plot.py\n"," /usr/local/lib/python3.8/dist-packages/umap/sparse.py\n"," /usr/local/lib/python3.8/dist-packages/umap/spectral.py\n"," /usr/local/lib/python3.8/dist-packages/umap/umap_.py\n"," /usr/local/lib/python3.8/dist-packages/umap/utils.py\n"," /usr/local/lib/python3.8/dist-packages/umap/validation.py\n","Proceed (Y/n)? Y\n"," Successfully uninstalled umap-0.1.1\n"]}]},{"cell_type":"code","source":["!pip install umap-learn"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"xybNOFKY_mcB","executionInfo":{"status":"ok","timestamp":1673342794193,"user_tz":-540,"elapsed":4302,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"8ea84a9f-5555-4bf6-f408-d6c810321e0f"},"id":"xybNOFKY_mcB","execution_count":54,"outputs":[{"output_type":"stream","name":"stdout","text":["Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n","Requirement already satisfied: umap-learn in /usr/local/lib/python3.8/dist-packages (0.5.3)\n","Requirement already satisfied: scikit-learn>=0.22 in /usr/local/lib/python3.8/dist-packages (from umap-learn) (1.0.2)\n","Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.8/dist-packages (from umap-learn) (1.21.6)\n","Requirement already satisfied: numba>=0.49 in /usr/local/lib/python3.8/dist-packages (from umap-learn) (0.56.4)\n","Requirement already satisfied: tqdm in /usr/local/lib/python3.8/dist-packages (from umap-learn) (4.64.1)\n","Requirement already satisfied: scipy>=1.0 in /usr/local/lib/python3.8/dist-packages (from umap-learn) (1.7.3)\n","Requirement already satisfied: pynndescent>=0.5 in /usr/local/lib/python3.8/dist-packages (from umap-learn) (0.5.8)\n","Requirement already satisfied: setuptools in /usr/local/lib/python3.8/dist-packages (from numba>=0.49->umap-learn) (57.4.0)\n","Requirement already satisfied: importlib-metadata in /usr/local/lib/python3.8/dist-packages (from numba>=0.49->umap-learn) (5.2.0)\n","Requirement already satisfied: llvmlite<0.40,>=0.39.0dev0 in /usr/local/lib/python3.8/dist-packages (from numba>=0.49->umap-learn) (0.39.1)\n","Requirement already satisfied: joblib>=0.11 in /usr/local/lib/python3.8/dist-packages (from pynndescent>=0.5->umap-learn) (1.2.0)\n","Requirement already satisfied: threadpoolctl>=2.0.0 in /usr/local/lib/python3.8/dist-packages (from scikit-learn>=0.22->umap-learn) (3.1.0)\n","Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.8/dist-packages (from importlib-metadata->numba>=0.49->umap-learn) (3.11.0)\n"]}]},{"cell_type":"code","source":["# from umap import UMAP\n","import umap.umap_ as umap\n","from sklearn.preprocessing import MinMaxScaler\n","\n","# 특성 스케일을 [0,1] 범위로 조정\n","X_scaled = MinMaxScaler().fit_transform(X_train)\n","# UMAP 객체를 생성하고 훈련\n","mapper = umap.UMAP(n_components=2, metric=\"cosine\").fit(X_scaled)\n","\n","# 2D 임베딩의 데이터프레임을 생성\n","df_emb = pd.DataFrame(mapper.embedding_, columns=[\"X\", \"Y\"])\n","df_emb[\"label\"] = Y_train\n","df_emb.head()"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":206},"id":"Sx0BapUg-xoq","executionInfo":{"status":"ok","timestamp":1673343223945,"user_tz":-540,"elapsed":42777,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"56c1711b-2f35-4d77-9bb2-51bc2fa92f77"},"id":"Sx0BapUg-xoq","execution_count":61,"outputs":[{"output_type":"execute_result","data":{"text/plain":[" X Y label\n","0 4.256140 7.099303 0\n","1 -2.679181 6.564047 0\n","2 5.314543 3.535637 3\n","3 -2.102647 4.541106 2\n","4 -3.089052 4.619032 3"],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
XYlabel
04.2561407.0993030
1-2.6791816.5640470
25.3145433.5356373
3-2.1026474.5411062
4-3.0890524.6190323
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":61}]},{"cell_type":"markdown","source":["출력 결과는 훈련 샘플과 개수가 동일한 배열. 하지만 특성은 768개가 아닌 겨우 2개"],"metadata":{"id":"HeXYNDn7B99N"},"id":"HeXYNDn7B99N"},{"cell_type":"code","source":["fig, axes = plt.subplots(2, 3, figsize=(7,5))\n","axes = axes.flatten()\n","cmaps = [\"Greys\", \"Blues\", \"Oranges\", \"Reds\", \"Purples\", \"Greens\"]\n","labels = emotions[\"train\"].features[\"label\"].names\n","\n","for i, (label, cmap) in enumerate(zip(labels, cmaps)):\n"," df_emb_sub = df_emb.query(f\"label == {i}\")\n"," axes[i].hexbin(df_emb_sub[\"X\"], df_emb_sub[\"Y\"], cmap=cmap, gridsize=20, linewidths=(0,))\n"," axes[i].set_title(label)\n"," axes[i].set_xticks([]), axes[i].set_yticks([])\n","\n","plt.tight_layout()\n","plt.show()"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":369},"id":"Pj8-Ath4CD3i","executionInfo":{"status":"ok","timestamp":1673343641150,"user_tz":-540,"elapsed":1097,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"d71499db-64a3-449a-e912-fcc63aec0459"},"id":"Pj8-Ath4CD3i","execution_count":63,"outputs":[{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"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\n"},"metadata":{}}]},{"cell_type":"markdown","source":["### 간단한 분류 모델 훈련\n","은닉 상태가 감정별로 조금씩 다르지만 일부 감정 사이에는 명확한 경계가 없기도 함
\n","이 은닉 상태를 사용해 사이킷런의 로지스틱 회귀(logistic regression) 모델을 훈련"],"metadata":{"id":"G9UX5LkODxbZ"},"id":"G9UX5LkODxbZ"},{"cell_type":"code","source":["from sklearn.linear_model import LogisticRegression\n","\n","# 수렴을 보장하기 위해 'max_iter'를 증가\n","lr_clf = LogisticRegression(max_iter=3000)\n","lr_clf.fit(X_train, Y_train)\n","lr_clf.score(X_valid, Y_valid)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"7wRPfAEDD8Kn","executionInfo":{"status":"ok","timestamp":1673344183711,"user_tz":-540,"elapsed":224801,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"18062b77-087e-4fce-d6c0-95e1c0b063dd"},"id":"7wRPfAEDD8Kn","execution_count":64,"outputs":[{"output_type":"execute_result","data":{"text/plain":["0.633"]},"metadata":{},"execution_count":64}]},{"cell_type":"markdown","source":["오차 행렬(confusion matrix)\n","\n","
\n","오차 행렬은 진짜 레이블과 예측 레이블의 관계를 보여줌"],"metadata":{"id":"Bm3KZUPZFtj5"},"id":"Bm3KZUPZFtj5"},{"cell_type":"code","source":["from sklearn.metrics import ConfusionMatrixDisplay, confusion_matrix\n","\n","def plot_confusion_matrix(y_preds, y_true, labels):\n"," cm = confusion_matrix(y_true, y_preds, normalize=\"true\")\n"," fig, ax = plt.subplots(figsize=(6,6))\n"," disp = ConfusionMatrixDisplay(confusion_matrix=cm, display_labels=labels)\n"," disp.plot(cmap=\"Blues\", values_format=\".2f\", ax=ax, colorbar=False)\n"," plt.title(\"Normalized confusion matrix\")\n"," plt.show()\n","\n","y_preds = lr_clf.predict(X_valid)\n","plot_confusion_matrix(y_preds, Y_valid, labels)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":404},"id":"8ykaFc2WFq_3","executionInfo":{"status":"ok","timestamp":1673344451707,"user_tz":-540,"elapsed":650,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"cfa77d1c-4e0f-4902-b5a8-3e60a17e3460"},"id":"8ykaFc2WFq_3","execution_count":65,"outputs":[{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"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\n"},"metadata":{"needs_background":"light"}}]},{"cell_type":"markdown","source":["- anger, fear는 sadness와 가장 많이 혼동\n","- love, surprise는 joy로 많이 오인"],"metadata":{"id":"uMQIrPVEGw_0"},"id":"uMQIrPVEGw_0"},{"cell_type":"markdown","source":["## 2. 텍스트 분류 모델 훈련 - 미세 튜닝\n","\n","트랜스포머를 엔드-투-엔드로 미세 튜닝하는 방법
\n","미세 튜닝 방식에서는 은닉 상태를 고정된 특성으로 사용하지 않고 전체 모델을 훈련 (분류 헤드는 미분 가능 해야 함)\n"],"metadata":{"id":"5KZ4dG9dHIVB"},"id":"5KZ4dG9dHIVB"},{"cell_type":"markdown","source":["분류 모델에 입력으로 사용하는 은닉 상태를 훈련하면 분류 작업에 적합하지 않은 데이터를 다룬다는 문제를 회피 할 수 있음"],"metadata":{"id":"0wmNDecZHroJ"},"id":"0wmNDecZHroJ"},{"cell_type":"markdown","source":["### 사전 훈련된 모델 로드\n","\n","특성 기반 방식에서 사용한 것과 같은 사전 훈련된 DistilBERT 모델을 사용
\n","\n","But, AutoModel 대신 AutoModelForSequenceClassification을 사용, 이 모델은 사전 훈련된 모델 출력위에 베이스 모델과 함께 쉽게 훈련할 수 있는 분류 헤드가 있음
\n","\n","분류 헤드의 출력 크기를 설정하기 위해 모델이 예측할 레이블 개수(여기서는 6)을 지정"],"metadata":{"id":"N642fZjSH0YQ"},"id":"N642fZjSH0YQ"},{"cell_type":"code","source":["from transformers import AutoModelForSequenceClassification\n","\n","num_labels = 6\n","model = (AutoModelForSequenceClassification.from_pretrained(model_ckpt, num_labels=num_labels).to(device))"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"1qo-aIBbG9jc","executionInfo":{"status":"ok","timestamp":1673345010467,"user_tz":-540,"elapsed":3708,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"abbffc8d-f3b7-4f04-9e27-bbb9d1c1358d"},"id":"1qo-aIBbG9jc","execution_count":66,"outputs":[{"output_type":"stream","name":"stderr","text":["Some weights of the model checkpoint at distilbert-base-uncased were not used when initializing DistilBertForSequenceClassification: ['vocab_layer_norm.bias', 'vocab_transform.bias', 'vocab_layer_norm.weight', 'vocab_projector.weight', 'vocab_projector.bias', 'vocab_transform.weight']\n","- This IS expected if you are initializing DistilBertForSequenceClassification from the checkpoint of a model trained on another task or with another architecture (e.g. initializing a BertForSequenceClassification model from a BertForPreTraining model).\n","- This IS NOT expected if you are initializing DistilBertForSequenceClassification from the checkpoint of a model that you expect to be exactly identical (initializing a BertForSequenceClassification model from a BertForSequenceClassification model).\n","Some weights of DistilBertForSequenceClassification were not initialized from the model checkpoint at distilbert-base-uncased and are newly initialized: ['pre_classifier.bias', 'pre_classifier.weight', 'classifier.bias', 'classifier.weight']\n","You should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference.\n"]}]},{"cell_type":"markdown","source":["모델 일부가 랜덤하게 초기화된다는 경고를 보냄. (분류 헤드가 아직 훈련되지 않아 발생)"],"metadata":{"id":"R_Ik1FnzIy1c"},"id":"R_Ik1FnzIy1c"},{"cell_type":"markdown","source":["#### 성공 지표 정의\n","\n","미세 튜닝 과정에서 모델 성능을 평가할 때 사용할 측정 지표를 정의
\n","훈련하는 동안 성능을 모니터링하기 위해 Trainer에 사용할 compute_metrics() 함수를 정의"],"metadata":{"id":"YQ1rmWVjI5p4"},"id":"YQ1rmWVjI5p4"},{"cell_type":"code","source":["from sklearn.metrics import accuracy_score, f1_score\n","\n","def compute_metrics(pred):\n"," labels = pred.label_ids\n"," preds = pred.predictions.argmax(-1)\n"," f1 = f1_score(labels, preds, average=\"weighted\")\n"," acc = accuracy_score(labels, preds)\n"," return {\"accuracy\":acc, \"f1\":f1}"],"metadata":{"id":"lYfMGf2gJQNJ","executionInfo":{"status":"ok","timestamp":1673345269650,"user_tz":-540,"elapsed":923,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}}},"id":"lYfMGf2gJQNJ","execution_count":67,"outputs":[]},{"cell_type":"code","source":["from transformers import Trainer, TrainingArguments\n","\n","batch_size=64\n","logging_steps = len(emotions_encoded[\"train\"]) // batch_size\n","model_name = f\"{model_ckpt}-finetuned-emotion\"\n","training_args = TrainingArguments(output_dir=model_name,\n"," num_train_epochs=2,\n"," learning_rate=2e-5,\n"," per_device_train_batch_size=batch_size,\n"," per_device_eval_batch_size=batch_size,\n"," weight_decay=0.01,\n"," evaluation_strategy=\"epoch\",\n"," disable_tqdm=False,\n"," logging_steps=logging_steps,\n"," push_to_hub=False,\n"," save_strategy=\"epoch\",\n"," load_best_model_at_end=True,\n"," log_level=\"error\")"],"metadata":{"id":"TzQOKwCXJ9M0","executionInfo":{"status":"ok","timestamp":1673345650008,"user_tz":-540,"elapsed":459,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}}},"id":"TzQOKwCXJ9M0","execution_count":69,"outputs":[]},{"cell_type":"code","source":["from transformers import Trainer\n","\n","trainer = Trainer(model=model, args=training_args, compute_metrics=compute_metrics, train_dataset=emotions_encoded[\"train\"], eval_dataset=emotions_encoded[\"validation\"], tokenizer=tokenizer)\n","trainer.train()"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":228},"id":"zX24iuGHLF0u","executionInfo":{"status":"ok","timestamp":1673345986689,"user_tz":-540,"elapsed":237842,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"d77ec0a6-0847-4e4b-bef8-41044907f25d"},"id":"zX24iuGHLF0u","execution_count":70,"outputs":[{"output_type":"stream","name":"stderr","text":["/usr/local/lib/python3.8/dist-packages/transformers/optimization.py:306: FutureWarning: This implementation of AdamW is deprecated and will be removed in a future version. Use the PyTorch implementation torch.optim.AdamW instead, or set `no_deprecation_warning=True` to disable this warning\n"," warnings.warn(\n"]},{"output_type":"display_data","data":{"text/plain":[""],"text/html":["\n","
\n"," \n"," \n"," [500/500 03:56, Epoch 2/2]\n","
\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
EpochTraining LossValidation LossAccuracyF1
10.8283000.3080170.9110000.908939
20.2448000.2130430.9210000.920982

"]},"metadata":{}},{"output_type":"execute_result","data":{"text/plain":["TrainOutput(global_step=500, training_loss=0.5365411682128907, metrics={'train_runtime': 237.4156, 'train_samples_per_second': 134.785, 'train_steps_per_second': 2.106, 'total_flos': 720342861696000.0, 'train_loss': 0.5365411682128907, 'epoch': 2.0})"]},"metadata":{},"execution_count":70}]},{"cell_type":"code","source":["preds_output = trainer.predict(emotions_encoded[\"validation\"])"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":17},"id":"A58G56dvMZX3","executionInfo":{"status":"ok","timestamp":1673346023963,"user_tz":-540,"elapsed":6167,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"fee6f7b4-4b89-48f1-fc63-aaa6cea1ac73"},"id":"A58G56dvMZX3","execution_count":71,"outputs":[{"output_type":"display_data","data":{"text/plain":[""],"text/html":[]},"metadata":{}}]},{"cell_type":"code","source":["preds_output.metrics"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"XBUSiYPlMheE","executionInfo":{"status":"ok","timestamp":1673346045245,"user_tz":-540,"elapsed":1141,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"cbca25ec-1eff-435d-f9c7-32b0403dbddf"},"id":"XBUSiYPlMheE","execution_count":72,"outputs":[{"output_type":"execute_result","data":{"text/plain":["{'test_loss': 0.21304255723953247,\n"," 'test_accuracy': 0.921,\n"," 'test_f1': 0.9209815490643459,\n"," 'test_runtime': 5.5724,\n"," 'test_samples_per_second': 358.913,\n"," 'test_steps_per_second': 5.743}"]},"metadata":{},"execution_count":72}]},{"cell_type":"code","source":["y_preds = np.argmax(preds_output.predictions, axis=1)"],"metadata":{"id":"MAQvfKvVMuaq","executionInfo":{"status":"ok","timestamp":1673346102420,"user_tz":-540,"elapsed":2,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}}},"id":"MAQvfKvVMuaq","execution_count":73,"outputs":[]},{"cell_type":"code","source":["plot_confusion_matrix(y_preds, Y_valid, labels)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":404},"id":"0MtdrVCAMzxy","executionInfo":{"status":"ok","timestamp":1673346130828,"user_tz":-540,"elapsed":7,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"ac56f53b-7b3e-4e68-9a27-29424de927c9"},"id":"0MtdrVCAMzxy","execution_count":75,"outputs":[{"output_type":"display_data","data":{"text/plain":["

"],"image/png":"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\n"},"metadata":{"needs_background":"light"}}]},{"cell_type":"markdown","source":["#### 오류 분석\n","\n","모델의 손실 기준으로 검증 샘플을 정렬
\n","정방향 패스의 결과와 레이블을 사용하면 손실은 자동으로 계산 가능."],"metadata":{"id":"HD_r8G7GNKu8"},"id":"HD_r8G7GNKu8"},{"cell_type":"code","source":["# 손실과 예측 레이블을 반환\n","from torch.nn.functional import cross_entropy\n","\n","def forward_pass_with_label(batch):\n"," # 모든 입력 텐서를 모델과 같은 장치로 이동\n"," inputs = {k:v.to(device) for k,v in batch.items() if k in tokenizer.model_input_names}\n","\n"," with torch.no_grad():\n"," output = model(**inputs)\n"," pred_label = torch.argmax(output.logits, axis=-1)\n"," loss = cross_entropy(output.logits, batch[\"label\"].to(device), reduction=\"none\")\n","\n"," # 다른 데이터셋 열과 호환되도력 출력을 CPU로 옮김\n"," return {\"loss\":loss.cpu().numpy(), \"predicted_label\":pred_label.cpu().numpy()}"],"metadata":{"id":"_vElx2WqNeIE","executionInfo":{"status":"ok","timestamp":1673346476379,"user_tz":-540,"elapsed":4,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}}},"id":"_vElx2WqNeIE","execution_count":76,"outputs":[]},{"cell_type":"markdown","source":["map 메서드로 이 함수를 적용해 모든 샘플의 손실을 구함"],"metadata":{"id":"R1pbWEwvOQls"},"id":"R1pbWEwvOQls"},{"cell_type":"code","source":["# 데이터셋을 다시 파이토치 텐서로 변환\n","emotions_encoded.set_format(\"torch\", columns=[\"input_ids\", \"attention_mask\", \"label\"])\n","\n","# 손실 값을 계산\n","emotions_encoded[\"validation\"] = emotions_encoded[\"validation\"].map(forward_pass_with_label, batched=True, batch_size=16)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":49,"referenced_widgets":["80aa883b3cf649ceb6e5b85ed5ea5509","313593925c2a4141a64864e53e122063","0b9065b551c8412f80340a506e6c685b","2c451fd1646d400d8d24adef4c5edaab","44040ea5691b408a8f206b0acc3b9ea7","838fadbc513045ce9492e00a834433af","aeb48bd095004b65b3eccd405c997500","d94d1a4d44ad4a4594f1008be77cfe51","0bdcc5fd663c45d79e31442b9abb40e5","8e0cd84d88f0431eb265ecf5114b2288","7a4511d0bb9143569319cf5ae8c7836f"]},"id":"9BUPB6pkOPJh","executionInfo":{"status":"ok","timestamp":1673346600282,"user_tz":-540,"elapsed":13943,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"4d3981b7-b2b5-44ed-be79-fabb1adf30f7"},"id":"9BUPB6pkOPJh","execution_count":77,"outputs":[{"output_type":"display_data","data":{"text/plain":[" 0%| | 0/125 [00:00 데이터에 레이블을 부여하는 프로세스는 모두 완벽하지 않음
\n","잘못 레이블링된 샘플이 존재 할 수 있음 앞의 방식을 사용하면 이런 레이블을 빠르게 찾아 수정이 가능"],"metadata":{"id":"KWR1b4ztPZhW"},"id":"KWR1b4ztPZhW"},{"cell_type":"markdown","source":["#### 데이터셋의 특이사항\n","텍스트 데이터에서는 입력에 포함된 특수 문자나 문자열이 모델 예측에 큰 영향을 미치기도 함
\n","모델의 가장 나쁜 예측을 들여다보게 되면 이런 특성을 찾게 되고, 데이터를 정제하거나 비슷한 샘플을 추가하면 모델이 안정됨"],"metadata":{"id":"hHxQvP99P4g5"},"id":"hHxQvP99P4g5"},{"cell_type":"code","source":["df_test.sort_values(\"loss\", ascending=False).head(10)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":363},"id":"YBLpveUHQDXr","executionInfo":{"status":"ok","timestamp":1673346975822,"user_tz":-540,"elapsed":1126,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"f57ccba6-0b46-4b98-83c5-aed7b0c160a6"},"id":"YBLpveUHQDXr","execution_count":79,"outputs":[{"output_type":"execute_result","data":{"text/plain":[" text label \\\n","1963 i called myself pro life and voted for perry w... joy \n","1950 i as representative of everything thats wrong ... surprise \n","1274 i am going to several holiday parties and i ca... joy \n","1111 im lazy my characters fall into categories of ... joy \n","1509 i guess this is a memoir so it feels like that... joy \n","1870 i guess i feel betrayed because i admired him ... joy \n","1801 i feel that he was being overshadowed by the s... love \n","318 i felt ashamed of these feelings and was scare... fear \n","1500 i guess we would naturally feel a sense of lon... anger \n","882 i feel badly about reneging on my commitment t... love \n","\n"," predicted_label loss \n","1963 sadness 5.367970 \n","1950 sadness 5.284013 \n","1274 sadness 5.276999 \n","1111 fear 5.139698 \n","1509 fear 5.066939 \n","1870 sadness 5.032856 \n","1801 sadness 4.932096 \n","318 sadness 4.787760 \n","1500 sadness 4.679534 \n","882 sadness 4.383337 "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
textlabelpredicted_labelloss
1963i called myself pro life and voted for perry w...joysadness5.367970
1950i as representative of everything thats wrong ...surprisesadness5.284013
1274i am going to several holiday parties and i ca...joysadness5.276999
1111im lazy my characters fall into categories of ...joyfear5.139698
1509i guess this is a memoir so it feels like that...joyfear5.066939
1870i guess i feel betrayed because i admired him ...joysadness5.032856
1801i feel that he was being overshadowed by the s...lovesadness4.932096
318i felt ashamed of these feelings and was scare...fearsadness4.787760
1500i guess we would naturally feel a sense of lon...angersadness4.679534
882i feel badly about reneging on my commitment t...lovesadness4.383337
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":79}]},{"cell_type":"code","source":["df_test.sort_values(\"loss\", ascending=True).head(10)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":363},"id":"6W_Q-8VsQlQJ","executionInfo":{"status":"ok","timestamp":1673347106997,"user_tz":-540,"elapsed":1032,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"39dd8dca-4bd1-460f-9979-9aac61f53aa7"},"id":"6W_Q-8VsQlQJ","execution_count":80,"outputs":[{"output_type":"execute_result","data":{"text/plain":[" text label predicted_label \\\n","19 i had lunch with an old friend and it was nice... joy joy \n","205 i cannot wait for school to end so i can chang... joy joy \n","669 i am not feeling very joyful today its been a ... joy joy \n","604 i don t like to use the h word recklessly but ... joy joy \n","11 i was dribbling on mums coffee table looking o... joy joy \n","1513 i have also been getting back into my gym rout... joy joy \n","578 i got to christmas feeling positive about the ... joy joy \n","1320 im feeling positive but its impossible to desc... joy joy \n","329 i have had my treasury selection on the front ... joy joy \n","1263 i feel this way about blake lively joy joy \n","\n"," loss \n","19 0.015154 \n","205 0.015296 \n","669 0.015381 \n","604 0.015426 \n","11 0.015474 \n","1513 0.015520 \n","578 0.015627 \n","1320 0.015640 \n","329 0.015814 \n","1263 0.015964 "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
textlabelpredicted_labelloss
19i had lunch with an old friend and it was nice...joyjoy0.015154
205i cannot wait for school to end so i can chang...joyjoy0.015296
669i am not feeling very joyful today its been a ...joyjoy0.015381
604i don t like to use the h word recklessly but ...joyjoy0.015426
11i was dribbling on mums coffee table looking o...joyjoy0.015474
1513i have also been getting back into my gym rout...joyjoy0.015520
578i got to christmas feeling positive about the ...joyjoy0.015627
1320im feeling positive but its impossible to desc...joyjoy0.015640
329i have had my treasury selection on the front ...joyjoy0.015814
1263i feel this way about blake livelyjoyjoy0.015964
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":80}]}],"metadata":{"kernelspec":{"display_name":"Python 3 (ipykernel)","language":"python","name":"python3"},"language_info":{"codemirror_mode":{"name":"ipython","version":3},"file_extension":".py","mimetype":"text/x-python","name":"python","nbconvert_exporter":"python","pygments_lexer":"ipython3","version":"3.9.15"},"colab":{"provenance":[]},"accelerator":"GPU","gpuClass":"standard","widgets":{"application/vnd.jupyter.widget-state+json":{"15be0db60e7447b39d8a3efb0178f99d":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_6c2a216ef9454384a48332dfcd11e854","IPY_MODEL_321df68850b64edbb4bf68f3efc4666c","IPY_MODEL_2f251ea5146e42c8a10e3e1299d20ee7"],"layout":"IPY_MODEL_e6f31047df2b410d91620c2f04f8714c"}},"6c2a216ef9454384a48332dfcd11e854":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_48d26eaa385347bb8f1df071dbb3fcf5","placeholder":"​","style":"IPY_MODEL_37e087967b954cf39bbed8efc00f8910","value":"Downloading builder script: 100%"}},"321df68850b64edbb4bf68f3efc4666c":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_affcdf3100514e08ae78b45fdff62bb7","max":3968,"min":0,"orientation":"horizontal","style":"IPY_MODEL_d4dbe15a78104e4080f3168d27a28f2f","value":3968}},"2f251ea5146e42c8a10e3e1299d20ee7":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_17d39ba9ceb74e4a971c9d7fe0a388e5","placeholder":"​","style":"IPY_MODEL_ad9e1452c5a44231a749edefc88ec559","value":" 3.97k/3.97k [00:00<00:00, 223kB/s]"}},"e6f31047df2b410d91620c2f04f8714c":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"48d26eaa385347bb8f1df071dbb3fcf5":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"37e087967b954cf39bbed8efc00f8910":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"affcdf3100514e08ae78b45fdff62bb7":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"d4dbe15a78104e4080f3168d27a28f2f":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"17d39ba9ceb74e4a971c9d7fe0a388e5":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"ad9e1452c5a44231a749edefc88ec559":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"8596765b76d8475687f9a68471baa8c2":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_245cdb335127490eb54f0b211711187c","IPY_MODEL_ee552a6f31454b0eba764bed5304c447","IPY_MODEL_3ccae33d0f704dd4ab20ed71ad34629d"],"layout":"IPY_MODEL_3e85d7ab6dc9402ea32346d736445024"}},"245cdb335127490eb54f0b211711187c":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_ca67643c59934657987dbe05ff1f6a79","placeholder":"​","style":"IPY_MODEL_19ce3569029c443abcd029d7b1e5434f","value":"Downloading metadata: 100%"}},"ee552a6f31454b0eba764bed5304c447":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_ec09ef01f31b4c63b70a4f8686084da9","max":3280,"min":0,"orientation":"horizontal","style":"IPY_MODEL_fff4ffa55682415d9f2964ed56978877","value":3280}},"3ccae33d0f704dd4ab20ed71ad34629d":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_67591dd5ed2b4cd4aa72809954922e4e","placeholder":"​","style":"IPY_MODEL_41a7de832edd405cb11f56b9d7b5ce4b","value":" 3.28k/3.28k [00:00<00:00, 214kB/s]"}},"3e85d7ab6dc9402ea32346d736445024":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"ca67643c59934657987dbe05ff1f6a79":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"19ce3569029c443abcd029d7b1e5434f":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"ec09ef01f31b4c63b70a4f8686084da9":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"fff4ffa55682415d9f2964ed56978877":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"67591dd5ed2b4cd4aa72809954922e4e":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"41a7de832edd405cb11f56b9d7b5ce4b":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"4d4e5bdc8d534162ba27f70bd5e1f082":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_16d9f032b1d14503971178f91ccd9957","IPY_MODEL_61e5561b9f374d0baf8d5f73094798fc","IPY_MODEL_1a8d91a9ac674e41a6e0bf62c5b35477"],"layout":"IPY_MODEL_a5addd4c0f114525acde2000dc504386"}},"16d9f032b1d14503971178f91ccd9957":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_bbd6396309394aebac8c614a6a93bab6","placeholder":"​","style":"IPY_MODEL_8da6d9afaae94419b6580759f2760247","value":"Downloading readme: 100%"}},"61e5561b9f374d0baf8d5f73094798fc":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_c0b1272b05d94b6d803882a8067d6afb","max":8777,"min":0,"orientation":"horizontal","style":"IPY_MODEL_9c4da2a7141f4df88ffc59d3d63c694a","value":8777}},"1a8d91a9ac674e41a6e0bf62c5b35477":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_a980d9bda04444ed94d1519d7d628a49","placeholder":"​","style":"IPY_MODEL_f4a2e61b61d645629758014940686e07","value":" 8.78k/8.78k [00:00<00:00, 601kB/s]"}},"a5addd4c0f114525acde2000dc504386":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"bbd6396309394aebac8c614a6a93bab6":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"8da6d9afaae94419b6580759f2760247":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"c0b1272b05d94b6d803882a8067d6afb":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"9c4da2a7141f4df88ffc59d3d63c694a":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"a980d9bda04444ed94d1519d7d628a49":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"f4a2e61b61d645629758014940686e07":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"204278e03cfa4697804abf20ff225813":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_1a82751128d443f4ac5b5303c1b73153","IPY_MODEL_6c8c86abf14d44c5b4efdb368da1a513","IPY_MODEL_bd9de3f5b9574ac3bf3a45d05196e734"],"layout":"IPY_MODEL_e9c04430c58b45518f4e663d4732ebbe"}},"1a82751128d443f4ac5b5303c1b73153":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_740a2671e40842f79f715ba2d258440b","placeholder":"​","style":"IPY_MODEL_bc4307eb644e4a6ebfaa308ec79b5911","value":"Downloading data files: 100%"}},"6c8c86abf14d44c5b4efdb368da1a513":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_1f7ab1db7a5c43a386c4097d8469d4a2","max":3,"min":0,"orientation":"horizontal","style":"IPY_MODEL_e3e4baf588234e2a80af2e8e9858ed5f","value":3}},"bd9de3f5b9574ac3bf3a45d05196e734":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_31985c31745a4dfebf496417e9b46f3a","placeholder":"​","style":"IPY_MODEL_d0e5f1132e754fe59287c20f4b94f96b","value":" 3/3 [00:05<00:00, 1.88s/it]"}},"e9c04430c58b45518f4e663d4732ebbe":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"740a2671e40842f79f715ba2d258440b":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"bc4307eb644e4a6ebfaa308ec79b5911":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"1f7ab1db7a5c43a386c4097d8469d4a2":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"e3e4baf588234e2a80af2e8e9858ed5f":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"31985c31745a4dfebf496417e9b46f3a":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"d0e5f1132e754fe59287c20f4b94f96b":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"7c2a5fe9cff34e31ac794deb1e788d8d":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_acb980cf775e44299b861e54a2eff750","IPY_MODEL_62c0ff2b19c84cdfad5a83ff8720983f","IPY_MODEL_7303d71c059d4066942330e3e70bede0"],"layout":"IPY_MODEL_ac5e2af54b694df5983d1418332e7636"}},"acb980cf775e44299b861e54a2eff750":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_d4a4259ce3c14993af19a12affd34eb8","placeholder":"​","style":"IPY_MODEL_6f2500756b6f42c391298eeaed5f8854","value":"Downloading data: 100%"}},"62c0ff2b19c84cdfad5a83ff8720983f":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_c98890a867614a26920d4bb067bee304","max":591930,"min":0,"orientation":"horizontal","style":"IPY_MODEL_85754c374f0d43e0bad78444da647c61","value":591930}},"7303d71c059d4066942330e3e70bede0":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_fcca2b9f79e0446f9e2f91e0270e9b4b","placeholder":"​","style":"IPY_MODEL_dd50d5fb200746ccaecb690921ec2c42","value":" 592k/592k [00:00<00:00, 18.3MB/s]"}},"ac5e2af54b694df5983d1418332e7636":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"d4a4259ce3c14993af19a12affd34eb8":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"6f2500756b6f42c391298eeaed5f8854":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"c98890a867614a26920d4bb067bee304":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"85754c374f0d43e0bad78444da647c61":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"fcca2b9f79e0446f9e2f91e0270e9b4b":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"dd50d5fb200746ccaecb690921ec2c42":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"7bfe63d5a7c54b4ea7bc6221105d0cbb":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_e6d52c04d9644613b040bf53957eb46f","IPY_MODEL_97c67c9ea7d9422581abe4a21e091b4b","IPY_MODEL_7fcb248425894c77bef4326f479c1926"],"layout":"IPY_MODEL_36258d1c281a4d2eb26f92513288726d"}},"e6d52c04d9644613b040bf53957eb46f":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_c0fa09c25d334099899a963c3bc36c00","placeholder":"​","style":"IPY_MODEL_2da35527796b47eb9ab3cb1cbcaccaf8","value":"Downloading data: 100%"}},"97c67c9ea7d9422581abe4a21e091b4b":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_3820bb7924a14e27b2b23d83f63d6606","max":74018,"min":0,"orientation":"horizontal","style":"IPY_MODEL_ca8c43945b2a4ec391c00c7b10b48504","value":74018}},"7fcb248425894c77bef4326f479c1926":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_1abe53ac1c564bb58c8b7c06ff097d11","placeholder":"​","style":"IPY_MODEL_b7828189ea0c4d7792da50b67e748efd","value":" 74.0k/74.0k [00:00<00:00, 3.75MB/s]"}},"36258d1c281a4d2eb26f92513288726d":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"c0fa09c25d334099899a963c3bc36c00":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"2da35527796b47eb9ab3cb1cbcaccaf8":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"3820bb7924a14e27b2b23d83f63d6606":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"ca8c43945b2a4ec391c00c7b10b48504":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"1abe53ac1c564bb58c8b7c06ff097d11":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"b7828189ea0c4d7792da50b67e748efd":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"bed71be988084af68c0628bcbcfe63f6":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_17c3146d7a6449f4ad08ea1d3052add1","IPY_MODEL_66ef552e0f0e4591bb39fb6f0fc034d6","IPY_MODEL_5df6a4f46d82455488419dd8e7df3470"],"layout":"IPY_MODEL_07a62cdc075c4e56a4e68189564ac136"}},"17c3146d7a6449f4ad08ea1d3052add1":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_c5d0ec37d3cd40558754aa9480eb2a6b","placeholder":"​","style":"IPY_MODEL_6084c39bce3c4b5ab13d7586c4431a3c","value":"Downloading data: 100%"}},"66ef552e0f0e4591bb39fb6f0fc034d6":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_a71d88aedade49038831bc24d2281e3a","max":74935,"min":0,"orientation":"horizontal","style":"IPY_MODEL_562cf26a240949c787ff51dc1f3ef4a2","value":74935}},"5df6a4f46d82455488419dd8e7df3470":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_df95194ca38e43fb83250fa86d096613","placeholder":"​","style":"IPY_MODEL_bf1dc66bb9164730b4fe171c24604125","value":" 74.9k/74.9k [00:00<00:00, 3.56MB/s]"}},"07a62cdc075c4e56a4e68189564ac136":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"c5d0ec37d3cd40558754aa9480eb2a6b":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"6084c39bce3c4b5ab13d7586c4431a3c":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"a71d88aedade49038831bc24d2281e3a":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"562cf26a240949c787ff51dc1f3ef4a2":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"df95194ca38e43fb83250fa86d096613":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"bf1dc66bb9164730b4fe171c24604125":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"c545f017ed8e4a3e8add6a23e7e37314":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_418167aad1554edea1dc5d1d6b879ccd","IPY_MODEL_812d351083b24a9db1f535b1c6ef5e61","IPY_MODEL_61cfdd6ec9664df98ad6fa2a202318f8"],"layout":"IPY_MODEL_ec5517f772c648f8839125acc7163bd2"}},"418167aad1554edea1dc5d1d6b879ccd":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_bf2332fb0c2c440b9b71f00818936a53","placeholder":"​","style":"IPY_MODEL_f12f2f547a7e417db26df14ef00c6c80","value":"Extracting data files: 100%"}},"812d351083b24a9db1f535b1c6ef5e61":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_79be6dfa4f8145d09f072ed6f5cb4d3a","max":3,"min":0,"orientation":"horizontal","style":"IPY_MODEL_6cfca50926a04bf0b7455de53ed39e07","value":3}},"61cfdd6ec9664df98ad6fa2a202318f8":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_ede97313536a4a1882e0363a28d771fc","placeholder":"​","style":"IPY_MODEL_77b2d4741f58419c87725f88409fa34d","value":" 3/3 [00:00<00:00, 67.08it/s]"}},"ec5517f772c648f8839125acc7163bd2":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"bf2332fb0c2c440b9b71f00818936a53":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"f12f2f547a7e417db26df14ef00c6c80":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"79be6dfa4f8145d09f072ed6f5cb4d3a":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"6cfca50926a04bf0b7455de53ed39e07":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"ede97313536a4a1882e0363a28d771fc":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"77b2d4741f58419c87725f88409fa34d":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"774d58af423e4d559b55fb7ca867b73e":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_2249c0ee4a6c4a12b5c1b004ef0f7bea","IPY_MODEL_8c6a709ec66f4bf89d7dc1d99ebfcd85","IPY_MODEL_b203c5ac560b4c0b91da8d3936c9701e"],"layout":"IPY_MODEL_a56c46fb64984a99acf33eaf1d0749e2"}},"2249c0ee4a6c4a12b5c1b004ef0f7bea":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_654e5a1bf15944139a8af596fea472ad","placeholder":"​","style":"IPY_MODEL_57f07b09eaff4e2cbb2baf0f55aa6f56","value":"Generating train split: 95%"}},"8c6a709ec66f4bf89d7dc1d99ebfcd85":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"","description":"","description_tooltip":null,"layout":"IPY_MODEL_2f78b83bf6ab4e309657919870f72914","max":16000,"min":0,"orientation":"horizontal","style":"IPY_MODEL_7619571658cd4fa2841a04d78dc1fbe0","value":16000}},"b203c5ac560b4c0b91da8d3936c9701e":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_cc4c766ab3cd4d31a6a1c2bd62fd1ac1","placeholder":"​","style":"IPY_MODEL_d546cdab698241b593f2a4668cbbe718","value":" 15201/16000 [00:00<00:00, 38204.96 examples/s]"}},"a56c46fb64984a99acf33eaf1d0749e2":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":"hidden","width":null}},"654e5a1bf15944139a8af596fea472ad":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"57f07b09eaff4e2cbb2baf0f55aa6f56":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"2f78b83bf6ab4e309657919870f72914":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"7619571658cd4fa2841a04d78dc1fbe0":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"cc4c766ab3cd4d31a6a1c2bd62fd1ac1":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"d546cdab698241b593f2a4668cbbe718":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"1dcfb16f3b99497fab648fbc508622af":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_0edf7b00d74e4aa08a2a3dde6f9377d9","IPY_MODEL_68663f8ab1464294ad24fe1550746272","IPY_MODEL_62dec3a2e87744a8accf7e17bdfc4fe1"],"layout":"IPY_MODEL_7e386e08bdd34471b5be7c5b578e3fe8"}},"0edf7b00d74e4aa08a2a3dde6f9377d9":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_e0da041ea0a34884a3ac413a0632c05a","placeholder":"​","style":"IPY_MODEL_dc452bd507d04875922b12d79a12be8c","value":"Generating validation split: 0%"}},"68663f8ab1464294ad24fe1550746272":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"","description":"","description_tooltip":null,"layout":"IPY_MODEL_cdd8485752434ebabbc37d1e4f268e5d","max":2000,"min":0,"orientation":"horizontal","style":"IPY_MODEL_131e10a0bb814925b81350ee521d10ec","value":2000}},"62dec3a2e87744a8accf7e17bdfc4fe1":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_9d0a2f1b16554acc8ee8fa798b3d80d5","placeholder":"​","style":"IPY_MODEL_4e22f63e5af146279cdafa6e14fa0235","value":" 0/2000 [00:00<?, ? examples/s]"}},"7e386e08bdd34471b5be7c5b578e3fe8":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":"hidden","width":null}},"e0da041ea0a34884a3ac413a0632c05a":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"dc452bd507d04875922b12d79a12be8c":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"cdd8485752434ebabbc37d1e4f268e5d":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"131e10a0bb814925b81350ee521d10ec":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"9d0a2f1b16554acc8ee8fa798b3d80d5":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"4e22f63e5af146279cdafa6e14fa0235":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"3ac8646d66e9466cb19ca475d5c35319":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_4e20703456eb4983bfd220202193f770","IPY_MODEL_ff1ff119aa864603bc9e179ad039db1c","IPY_MODEL_79c0f1e2dedf459fad9d99c9da23921f"],"layout":"IPY_MODEL_f4536072a0f245ce955bf17c4e69fff7"}},"4e20703456eb4983bfd220202193f770":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_62e068731b004692b62bfbe3d6a7d4bd","placeholder":"​","style":"IPY_MODEL_21401b5db07742ccbd904349816513b8","value":"Generating test split: 0%"}},"ff1ff119aa864603bc9e179ad039db1c":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"","description":"","description_tooltip":null,"layout":"IPY_MODEL_12d18e67c09045aa95cb9e59a9b6e2a8","max":2000,"min":0,"orientation":"horizontal","style":"IPY_MODEL_fca1857b9a8f48d28b74fc06d6986bd5","value":2000}},"79c0f1e2dedf459fad9d99c9da23921f":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_826dafb23b96401b854502fd7faff689","placeholder":"​","style":"IPY_MODEL_0f6f60d107854832ab63a53fbfbd079c","value":" 0/2000 [00:00<?, ? examples/s]"}},"f4536072a0f245ce955bf17c4e69fff7":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":"hidden","width":null}},"62e068731b004692b62bfbe3d6a7d4bd":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"21401b5db07742ccbd904349816513b8":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"12d18e67c09045aa95cb9e59a9b6e2a8":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"fca1857b9a8f48d28b74fc06d6986bd5":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"826dafb23b96401b854502fd7faff689":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"0f6f60d107854832ab63a53fbfbd079c":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"d7190fe0ffbe44ed88183863b01ae154":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_37f0d2cf136240c9a05d09530134731b","IPY_MODEL_4b00f1b6b9a44812ace3d76be6eddc93","IPY_MODEL_43a0ec11689f4195871427b3518a564d"],"layout":"IPY_MODEL_a67d6cc425c94c4a8a114da132392197"}},"37f0d2cf136240c9a05d09530134731b":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_46df938913904dff8d9d6ac483529a5c","placeholder":"​","style":"IPY_MODEL_140e7085dabc494d89eeeeb30d5f8a19","value":"100%"}},"4b00f1b6b9a44812ace3d76be6eddc93":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_a2f713bb502644fd93663239d7af8c4d","max":3,"min":0,"orientation":"horizontal","style":"IPY_MODEL_aa0bb486843e4663952242eed3ba1261","value":3}},"43a0ec11689f4195871427b3518a564d":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_1bb5c0a141984ad39f5fb3ce2be79552","placeholder":"​","style":"IPY_MODEL_f38775a718884ecdbaf317b2369550da","value":" 3/3 [00:00<00:00, 134.39it/s]"}},"a67d6cc425c94c4a8a114da132392197":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"46df938913904dff8d9d6ac483529a5c":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"140e7085dabc494d89eeeeb30d5f8a19":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"a2f713bb502644fd93663239d7af8c4d":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"aa0bb486843e4663952242eed3ba1261":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"1bb5c0a141984ad39f5fb3ce2be79552":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"f38775a718884ecdbaf317b2369550da":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"2cbf56d11bd84bd39a2e8f00be50ab98":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_fa29a3affda84dc38e53a7ec02e4a1f2","IPY_MODEL_1886290ec37f4f7eb7dced6d494cbe6a","IPY_MODEL_b37bdca77d064cf2b7ef2bf21edc554b"],"layout":"IPY_MODEL_14709700a96448cda2f036f9886463f9"}},"fa29a3affda84dc38e53a7ec02e4a1f2":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_e9230e8b794f433e9ed48f62a244c1f3","placeholder":"​","style":"IPY_MODEL_16ab6bdfe98a44dcb15fb374ffdd7dcb","value":"Downloading: 100%"}},"1886290ec37f4f7eb7dced6d494cbe6a":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_f9ac65f7c12b4c70b1481fd0052ebcab","max":28,"min":0,"orientation":"horizontal","style":"IPY_MODEL_a49d46601b5d4395bd61aa89b3c4f261","value":28}},"b37bdca77d064cf2b7ef2bf21edc554b":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_fa363e3b514f47909eb1caf3bda7d4ac","placeholder":"​","style":"IPY_MODEL_4c2ddc339f2948cda9331332583f71ef","value":" 28.0/28.0 [00:00<00:00, 1.77kB/s]"}},"14709700a96448cda2f036f9886463f9":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"e9230e8b794f433e9ed48f62a244c1f3":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"16ab6bdfe98a44dcb15fb374ffdd7dcb":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"f9ac65f7c12b4c70b1481fd0052ebcab":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"a49d46601b5d4395bd61aa89b3c4f261":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"fa363e3b514f47909eb1caf3bda7d4ac":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"4c2ddc339f2948cda9331332583f71ef":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"815b635b8e2d429ab30cc56170508f2b":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_2783f2b3b469440e829ecf06ce441e24","IPY_MODEL_740089b7671147a8b2aa5334dbe299a1","IPY_MODEL_a55dbf76cedf4c51a80127d1368f00fa"],"layout":"IPY_MODEL_fcc0299f56d54e069e252951755dd8d9"}},"2783f2b3b469440e829ecf06ce441e24":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_5a16a657767448af9953262cbe566fda","placeholder":"​","style":"IPY_MODEL_279728f2f8e842af9b078cdd58d71af0","value":"Downloading: 100%"}},"740089b7671147a8b2aa5334dbe299a1":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_a3452d2825e040f9aad5667274d1d9d9","max":483,"min":0,"orientation":"horizontal","style":"IPY_MODEL_c8b548fcf7e14265ade8eb891b4717bf","value":483}},"a55dbf76cedf4c51a80127d1368f00fa":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_3ef5ff5cb4c54628bb3bc720a65f93a2","placeholder":"​","style":"IPY_MODEL_eb8260186835427ab020dbdf4d484794","value":" 483/483 [00:00<00:00, 34.3kB/s]"}},"fcc0299f56d54e069e252951755dd8d9":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"5a16a657767448af9953262cbe566fda":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"279728f2f8e842af9b078cdd58d71af0":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"a3452d2825e040f9aad5667274d1d9d9":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"c8b548fcf7e14265ade8eb891b4717bf":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"3ef5ff5cb4c54628bb3bc720a65f93a2":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"eb8260186835427ab020dbdf4d484794":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"5f67cfa6f99c4045a77ef8f221ed8a72":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_b07045b7f68944aeb2c8bd0e41994b93","IPY_MODEL_137fcc68aefc48179ababf622aad0776","IPY_MODEL_96b98cd1ec9946d58e510739cf43324e"],"layout":"IPY_MODEL_c6eb6b1626314623b55ad235895da2f9"}},"b07045b7f68944aeb2c8bd0e41994b93":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_72cad00b563945b6b5c9c43f8eb34172","placeholder":"​","style":"IPY_MODEL_2971a235130f4f72b0b8486364d63ad5","value":"Downloading: 100%"}},"137fcc68aefc48179ababf622aad0776":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_c70eb58ccb2347d38c8cde483c47191f","max":231508,"min":0,"orientation":"horizontal","style":"IPY_MODEL_b7b7225c7d7943e280b421c760b72caa","value":231508}},"96b98cd1ec9946d58e510739cf43324e":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_147c8d4a28d146a792e7c8a037bcb011","placeholder":"​","style":"IPY_MODEL_823d188f499e47f6a8d87503c4ad77f7","value":" 232k/232k [00:00<00:00, 324kB/s]"}},"c6eb6b1626314623b55ad235895da2f9":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"72cad00b563945b6b5c9c43f8eb34172":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"2971a235130f4f72b0b8486364d63ad5":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"c70eb58ccb2347d38c8cde483c47191f":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"b7b7225c7d7943e280b421c760b72caa":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"147c8d4a28d146a792e7c8a037bcb011":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"823d188f499e47f6a8d87503c4ad77f7":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"029fdd7a3b0842229d7b0a93c5867fa1":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_438bcf79e8694464ad3a846a0643be03","IPY_MODEL_a8baed453dd9425fb3d788033508119d","IPY_MODEL_375bd083c65b4bf882f21c29c858890c"],"layout":"IPY_MODEL_149d349aa3cb46c588d164bd37b84117"}},"438bcf79e8694464ad3a846a0643be03":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_a12bce3f9ff841f683b19a6b581c587f","placeholder":"​","style":"IPY_MODEL_4d864c90cd41415e9e610edf9fba526b","value":"Downloading: 100%"}},"a8baed453dd9425fb3d788033508119d":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_323fcf7620f04d9da487b8628e229e5b","max":466062,"min":0,"orientation":"horizontal","style":"IPY_MODEL_c8259c53289d4100a9fab111d220bea3","value":466062}},"375bd083c65b4bf882f21c29c858890c":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_7ac6ebbf3dc040ae9a9b3614557da598","placeholder":"​","style":"IPY_MODEL_6d19cf0811e64cd7b29cb63458060fad","value":" 466k/466k [00:01<00:00, 542kB/s]"}},"149d349aa3cb46c588d164bd37b84117":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"a12bce3f9ff841f683b19a6b581c587f":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"4d864c90cd41415e9e610edf9fba526b":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"323fcf7620f04d9da487b8628e229e5b":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"c8259c53289d4100a9fab111d220bea3":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"7ac6ebbf3dc040ae9a9b3614557da598":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"6d19cf0811e64cd7b29cb63458060fad":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"69c863e980624e10bb6afad72fed6cd1":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_3c160b0fb3d7466aa0f79c6233d16001","IPY_MODEL_8b26dd18f285460296a17d6b856f30aa","IPY_MODEL_d795813bd1e447ec8ca874a4eb58c806"],"layout":"IPY_MODEL_8b9b4713c05e402491fa537414d0bd0b"}},"3c160b0fb3d7466aa0f79c6233d16001":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_d49fc731f3634038b245ed8b19fec175","placeholder":"​","style":"IPY_MODEL_ac1f10abc80449b3b570f462332de626","value":"100%"}},"8b26dd18f285460296a17d6b856f30aa":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_834b4dee42f84269801adc0f5517a89f","max":1,"min":0,"orientation":"horizontal","style":"IPY_MODEL_6c363fc2f9bd454f86bd477dada30a71","value":1}},"d795813bd1e447ec8ca874a4eb58c806":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_17d0256a8547455fbe4e4f6935cea7a4","placeholder":"​","style":"IPY_MODEL_f622e7b698bf47bcb1233230e6771772","value":" 1/1 [00:01<00:00, 1.50s/ba]"}},"8b9b4713c05e402491fa537414d0bd0b":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"d49fc731f3634038b245ed8b19fec175":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"ac1f10abc80449b3b570f462332de626":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"834b4dee42f84269801adc0f5517a89f":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"6c363fc2f9bd454f86bd477dada30a71":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"17d0256a8547455fbe4e4f6935cea7a4":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"f622e7b698bf47bcb1233230e6771772":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"048922deeb3141b1805c22f41a880ecc":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_6148410294ec48c3804ed15e7034cb4f","IPY_MODEL_70773097ffad4c9b85b6a739a514e1b3","IPY_MODEL_3da5ccb880f848dcaef28bb694c4bb70"],"layout":"IPY_MODEL_c9dcf555150b4ecd80addf1c1bb33824"}},"6148410294ec48c3804ed15e7034cb4f":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_5ab0a87049344e46929a316bc2a2e3e9","placeholder":"​","style":"IPY_MODEL_deb4b8225c6d4fdba6f2efbb33b17000","value":"100%"}},"70773097ffad4c9b85b6a739a514e1b3":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_a7953cfec05a4585b366d3d8e4b2123b","max":1,"min":0,"orientation":"horizontal","style":"IPY_MODEL_b912f40f4cc247f3a782da9507ef3e09","value":1}},"3da5ccb880f848dcaef28bb694c4bb70":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_1a2e990827f248e7bc47da5ef7f17826","placeholder":"​","style":"IPY_MODEL_31014192818d46ff8b3671e3c5d180de","value":" 1/1 [00:00<00:00, 6.17ba/s]"}},"c9dcf555150b4ecd80addf1c1bb33824":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"5ab0a87049344e46929a316bc2a2e3e9":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"deb4b8225c6d4fdba6f2efbb33b17000":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"a7953cfec05a4585b366d3d8e4b2123b":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"b912f40f4cc247f3a782da9507ef3e09":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"1a2e990827f248e7bc47da5ef7f17826":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"31014192818d46ff8b3671e3c5d180de":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"0177ae63703f4b01889c07ad4cf86e29":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_02a9d73f776e431198ace480d231d10b","IPY_MODEL_3036423ebe6a49ad91f0de6e728d0ad8","IPY_MODEL_85c41307b3c84b5a86a24f8a2463a939"],"layout":"IPY_MODEL_9a097fa5b27749c7aa379a4ca349bf5b"}},"02a9d73f776e431198ace480d231d10b":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_e21e33b65f604a56b7ee6c3839362574","placeholder":"​","style":"IPY_MODEL_41bd67ce77564fa5be2527f800620262","value":"100%"}},"3036423ebe6a49ad91f0de6e728d0ad8":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_48ba903b498a4dbe82b77dd7df3b28c5","max":1,"min":0,"orientation":"horizontal","style":"IPY_MODEL_4d0d3d035fc6444fa43b487ce81bb981","value":1}},"85c41307b3c84b5a86a24f8a2463a939":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_5ad971ef99af4d379967cf291d13ab74","placeholder":"​","style":"IPY_MODEL_a8c5dfa23d0f46d5a2b03350abb62c07","value":" 1/1 [00:00<00:00, 6.18ba/s]"}},"9a097fa5b27749c7aa379a4ca349bf5b":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"e21e33b65f604a56b7ee6c3839362574":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"41bd67ce77564fa5be2527f800620262":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"48ba903b498a4dbe82b77dd7df3b28c5":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"4d0d3d035fc6444fa43b487ce81bb981":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"5ad971ef99af4d379967cf291d13ab74":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"a8c5dfa23d0f46d5a2b03350abb62c07":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"6d20ccf8cbfc434d83d29cf94d66fa2f":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_563f6e63d6334ffdb92b824ca4543e26","IPY_MODEL_3a3663e4ccf447178e720efe74226eb2","IPY_MODEL_bd5032bb6bd04505a16d6aaeb344a411"],"layout":"IPY_MODEL_843844a0068c4252931450f24da6b86e"}},"563f6e63d6334ffdb92b824ca4543e26":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_bcd73e1f781c4d1d950ae79b4f6787bf","placeholder":"​","style":"IPY_MODEL_3490bc468f2e4bbeb57e76aaf9706308","value":"Downloading: 100%"}},"3a3663e4ccf447178e720efe74226eb2":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_2b8f7b15d44346e8a86b7414be26c8f3","max":267967963,"min":0,"orientation":"horizontal","style":"IPY_MODEL_e3bad1e7fa8142ce9d618d0c8b1a2225","value":267967963}},"bd5032bb6bd04505a16d6aaeb344a411":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_402cabec74604cc09d0fff59dd529621","placeholder":"​","style":"IPY_MODEL_4882a7357dd3468491f3bf78eec1909c","value":" 268M/268M [00:03<00:00, 84.4MB/s]"}},"843844a0068c4252931450f24da6b86e":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"bcd73e1f781c4d1d950ae79b4f6787bf":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"3490bc468f2e4bbeb57e76aaf9706308":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"2b8f7b15d44346e8a86b7414be26c8f3":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"e3bad1e7fa8142ce9d618d0c8b1a2225":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"402cabec74604cc09d0fff59dd529621":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"4882a7357dd3468491f3bf78eec1909c":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"101a4116f12b44f6b426fc2814944eb8":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_9edbf9a8ba5d4142a0a12e5ea696da5c","IPY_MODEL_8af71848005147cfaedd0c9ec9d4fd49","IPY_MODEL_44dbd17197c64b538c63a610f7f31617"],"layout":"IPY_MODEL_c7fbfa047d884faeb5969ae896515fc1"}},"9edbf9a8ba5d4142a0a12e5ea696da5c":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_84928d15dbe2497baa439cb5721b83a1","placeholder":"​","style":"IPY_MODEL_ba72138f0e604758b4490c754875af78","value":"100%"}},"8af71848005147cfaedd0c9ec9d4fd49":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_b0e164b8f84946f88721e0c0069120a1","max":16,"min":0,"orientation":"horizontal","style":"IPY_MODEL_6e54fca8c14542cabb8b8a4b33e2dbf8","value":16}},"44dbd17197c64b538c63a610f7f31617":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_0bf2839bc8d64d2e94ad85881c74bf92","placeholder":"​","style":"IPY_MODEL_6ef1bc813fcd44e88a28492317397f9a","value":" 16/16 [00:33<00:00, 2.11s/ba]"}},"c7fbfa047d884faeb5969ae896515fc1":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"84928d15dbe2497baa439cb5721b83a1":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"ba72138f0e604758b4490c754875af78":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"b0e164b8f84946f88721e0c0069120a1":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"6e54fca8c14542cabb8b8a4b33e2dbf8":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"0bf2839bc8d64d2e94ad85881c74bf92":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"6ef1bc813fcd44e88a28492317397f9a":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"ec33154d5df8415098870a8cfa336916":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_b1611173b99e4e7e887289ec11b22549","IPY_MODEL_b2b36893a8404cbeb820029a11f026c1","IPY_MODEL_1026b11d38b64ec88111620d4e6496b5"],"layout":"IPY_MODEL_a40d5fc95a36471d90292263ecbf3a9a"}},"b1611173b99e4e7e887289ec11b22549":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_1f92f00548c1492bb9d5fe9a827c1465","placeholder":"​","style":"IPY_MODEL_b8fc14d3ad2e493cab95946f99eaa22d","value":"100%"}},"b2b36893a8404cbeb820029a11f026c1":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_8674806cef2647afa397d1a1a67aeb9c","max":2,"min":0,"orientation":"horizontal","style":"IPY_MODEL_1afb862c628b422788c23230a7c33263","value":2}},"1026b11d38b64ec88111620d4e6496b5":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_456d3d915eab4f77b0bf0f2e0326d818","placeholder":"​","style":"IPY_MODEL_92f5f4755e724e12a59fe33e372e84e4","value":" 2/2 [00:03<00:00, 1.70s/ba]"}},"a40d5fc95a36471d90292263ecbf3a9a":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"1f92f00548c1492bb9d5fe9a827c1465":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"b8fc14d3ad2e493cab95946f99eaa22d":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"8674806cef2647afa397d1a1a67aeb9c":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"1afb862c628b422788c23230a7c33263":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"456d3d915eab4f77b0bf0f2e0326d818":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"92f5f4755e724e12a59fe33e372e84e4":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"2fd74fded781498f86d9b097b7bebd2d":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_b3f0a364d8db417e95971d9bc93cd894","IPY_MODEL_ba119c289d864b8ab108e9cf52a49820","IPY_MODEL_01aa5eadc6a946528e32244d30383ed7"],"layout":"IPY_MODEL_c51fa6e6e9864a7bb0be5bfb9f71c637"}},"b3f0a364d8db417e95971d9bc93cd894":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_1fd5b81af51d4b30b17f630586339560","placeholder":"​","style":"IPY_MODEL_f0cc4fc15d62434499f1e0fefe2f03b3","value":"100%"}},"ba119c289d864b8ab108e9cf52a49820":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_3d10c62f029449bcbc574169ac502748","max":2,"min":0,"orientation":"horizontal","style":"IPY_MODEL_ecb19ac1b1664734a661aa34c037e9b8","value":2}},"01aa5eadc6a946528e32244d30383ed7":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_73c4003f63bc4da1bffd26ba93218857","placeholder":"​","style":"IPY_MODEL_e869dea153bf4883ba3e883359e4ba99","value":" 2/2 [00:03<00:00, 1.64s/ba]"}},"c51fa6e6e9864a7bb0be5bfb9f71c637":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"1fd5b81af51d4b30b17f630586339560":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"f0cc4fc15d62434499f1e0fefe2f03b3":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"3d10c62f029449bcbc574169ac502748":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"ecb19ac1b1664734a661aa34c037e9b8":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"73c4003f63bc4da1bffd26ba93218857":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"e869dea153bf4883ba3e883359e4ba99":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"80aa883b3cf649ceb6e5b85ed5ea5509":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_313593925c2a4141a64864e53e122063","IPY_MODEL_0b9065b551c8412f80340a506e6c685b","IPY_MODEL_2c451fd1646d400d8d24adef4c5edaab"],"layout":"IPY_MODEL_44040ea5691b408a8f206b0acc3b9ea7"}},"313593925c2a4141a64864e53e122063":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_838fadbc513045ce9492e00a834433af","placeholder":"​","style":"IPY_MODEL_aeb48bd095004b65b3eccd405c997500","value":"100%"}},"0b9065b551c8412f80340a506e6c685b":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_d94d1a4d44ad4a4594f1008be77cfe51","max":125,"min":0,"orientation":"horizontal","style":"IPY_MODEL_0bdcc5fd663c45d79e31442b9abb40e5","value":125}},"2c451fd1646d400d8d24adef4c5edaab":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_8e0cd84d88f0431eb265ecf5114b2288","placeholder":"​","style":"IPY_MODEL_7a4511d0bb9143569319cf5ae8c7836f","value":" 125/125 [00:04<00:00, 28.03ba/s]"}},"44040ea5691b408a8f206b0acc3b9ea7":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"838fadbc513045ce9492e00a834433af":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"aeb48bd095004b65b3eccd405c997500":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"d94d1a4d44ad4a4594f1008be77cfe51":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"0bdcc5fd663c45d79e31442b9abb40e5":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"8e0cd84d88f0431eb265ecf5114b2288":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"7a4511d0bb9143569319cf5ae8c7836f":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}}}}},"nbformat":4,"nbformat_minor":5} \ No newline at end of file diff --git a/Transformer/01_TextClassification/images/apache_arrow.png b/Transformer/01_TextClassification/images/apache_arrow.png new file mode 100644 index 0000000..0dbac71 Binary files /dev/null and b/Transformer/01_TextClassification/images/apache_arrow.png differ diff --git a/Transformer/01_TextClassification/images/boxplot.png b/Transformer/01_TextClassification/images/boxplot.png new file mode 100644 index 0000000..3c2276e Binary files /dev/null and b/Transformer/01_TextClassification/images/boxplot.png differ diff --git a/Transformer/01_TextClassification/images/confusedmatrix.png b/Transformer/01_TextClassification/images/confusedmatrix.png new file mode 100644 index 0000000..fd905be Binary files /dev/null and b/Transformer/01_TextClassification/images/confusedmatrix.png differ diff --git a/Transformer/01_TextClassification/images/distilbert_textclassifier.png b/Transformer/01_TextClassification/images/distilbert_textclassifier.png new file mode 100644 index 0000000..866dc28 Binary files /dev/null and b/Transformer/01_TextClassification/images/distilbert_textclassifier.png differ diff --git a/Transformer/01_TextClassification/images/umap_parameters.png b/Transformer/01_TextClassification/images/umap_parameters.png new file mode 100644 index 0000000..828b221 Binary files /dev/null and b/Transformer/01_TextClassification/images/umap_parameters.png differ diff --git a/Transformer/03_MultiLanguageDetection/README.md b/Transformer/03_MultiLanguageDetection/README.md new file mode 100644 index 0000000..86191ad --- /dev/null +++ b/Transformer/03_MultiLanguageDetection/README.md @@ -0,0 +1,2 @@ +# 다중언어 개체명 인식 (MultiLanguage Name Entity Recognition) + diff --git a/Transformer/03_MultiLanguageDetection/colab/NER_Transformer.ipynb b/Transformer/03_MultiLanguageDetection/colab/NER_Transformer.ipynb new file mode 100644 index 0000000..aa1c431 --- /dev/null +++ b/Transformer/03_MultiLanguageDetection/colab/NER_Transformer.ipynb @@ -0,0 +1 @@ +{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"provenance":[],"machine_shape":"hm","authorship_tag":"ABX9TyMGaoeKP+KphIFKsmLXH1ib"},"kernelspec":{"name":"python3","display_name":"Python 3"},"language_info":{"name":"python"},"widgets":{"application/vnd.jupyter.widget-state+json":{"463f5547f42a407ea77c9da398cd0d70":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_3e8e0acc912442dcb2c4c9ab990d9408","IPY_MODEL_e24c62ac74114852a4aba3da8279f997","IPY_MODEL_b7ae4618d0dc4d80b4425c3ca2ac59ac"],"layout":"IPY_MODEL_6ec2206460944b53abfa4e3fb6900f68"}},"3e8e0acc912442dcb2c4c9ab990d9408":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_57deeee9ba6a4b13a5fc7c92b5e2316b","placeholder":"​","style":"IPY_MODEL_f6d6006d40a849d89e7e118b03661ed1","value":"Downloading builder script: 100%"}},"e24c62ac74114852a4aba3da8279f997":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_048a919356ba4c5f9047b7e3e315deb9","max":37487,"min":0,"orientation":"horizontal","style":"IPY_MODEL_e5dd8f341c584512a9bb41fbfffbffc0","value":37487}},"b7ae4618d0dc4d80b4425c3ca2ac59ac":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_1225a3d5d9724ce4988cdedbbd1c37ac","placeholder":"​","style":"IPY_MODEL_971d5d798c564be7a38b86548aec1f4e","value":" 37.5k/37.5k [00:00<00:00, 2.18MB/s]"}},"6ec2206460944b53abfa4e3fb6900f68":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"57deeee9ba6a4b13a5fc7c92b5e2316b":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"f6d6006d40a849d89e7e118b03661ed1":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"048a919356ba4c5f9047b7e3e315deb9":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"e5dd8f341c584512a9bb41fbfffbffc0":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"1225a3d5d9724ce4988cdedbbd1c37ac":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"971d5d798c564be7a38b86548aec1f4e":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"81a0f10dfe0a4c6abfd1c0437a13b1c2":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_670de4b7e76f408488d5dabc8dcdc64d","IPY_MODEL_82c09669de694a318b21ce5e43530086","IPY_MODEL_f2d860c19e4a4374aed9462457a8a44c"],"layout":"IPY_MODEL_0ca6b4590a7e47c58da0e4570ac503a7"}},"670de4b7e76f408488d5dabc8dcdc64d":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_2fe526df2564455f9003114ebc74d911","placeholder":"​","style":"IPY_MODEL_9384638f81cd4c95a32b75064711fca6","value":"Downloading metadata: 100%"}},"82c09669de694a318b21ce5e43530086":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_ac3226796b3e4387b2578d1de79f3ce9","max":592704,"min":0,"orientation":"horizontal","style":"IPY_MODEL_7880a8251bbe4524a345dac05300ceed","value":592704}},"f2d860c19e4a4374aed9462457a8a44c":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_e8bcf6f9f89f4af3b67046a16dce62fb","placeholder":"​","style":"IPY_MODEL_0e2d378d62ed423e8d7d03f3d90d72a5","value":" 593k/593k [00:00<00:00, 695kB/s]"}},"0ca6b4590a7e47c58da0e4570ac503a7":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"2fe526df2564455f9003114ebc74d911":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"9384638f81cd4c95a32b75064711fca6":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"ac3226796b3e4387b2578d1de79f3ce9":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"7880a8251bbe4524a345dac05300ceed":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"e8bcf6f9f89f4af3b67046a16dce62fb":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"0e2d378d62ed423e8d7d03f3d90d72a5":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"fdf2854735904915b5d9600a2fb43dc7":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_def20d8846dc4fb289254a64ed3ac05b","IPY_MODEL_b83be59fa2834698bbcbae99d2a77dde","IPY_MODEL_efc301732ca644aa97b437f539289cef"],"layout":"IPY_MODEL_aa5b46580ef541c4a2b0879397cf5468"}},"def20d8846dc4fb289254a64ed3ac05b":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_65fb2f5a632b4970bc8ac087341d4a21","placeholder":"​","style":"IPY_MODEL_f072833a7bb64cf5a34d08e7e1c18f35","value":"Downloading readme: 100%"}},"b83be59fa2834698bbcbae99d2a77dde":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_d6c0de66f82348f08b694484812fad12","max":104803,"min":0,"orientation":"horizontal","style":"IPY_MODEL_93cdf06140e84a9392470a75d55e9435","value":104803}},"efc301732ca644aa97b437f539289cef":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_46a99245732946ca8906452625cf4393","placeholder":"​","style":"IPY_MODEL_f5c26f9c034847d1907ba505b0e1a4b5","value":" 105k/105k [00:00<00:00, 198kB/s]"}},"aa5b46580ef541c4a2b0879397cf5468":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"65fb2f5a632b4970bc8ac087341d4a21":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"f072833a7bb64cf5a34d08e7e1c18f35":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"d6c0de66f82348f08b694484812fad12":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"93cdf06140e84a9392470a75d55e9435":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"46a99245732946ca8906452625cf4393":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"f5c26f9c034847d1907ba505b0e1a4b5":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"e734c6943df64bc9b362c9d9e0c502b6":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_639c4223827245839de246cbfd5ea107","IPY_MODEL_91518d026fd04384846b34a312c29b3a","IPY_MODEL_42ab3545711c441981bdb3fa56c8aaaf"],"layout":"IPY_MODEL_fa2a7322bf9848279f8f1705bc9fbff0"}},"639c4223827245839de246cbfd5ea107":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_6075a332159e436a9941f389f83faef0","placeholder":"​","style":"IPY_MODEL_e80b38b953b841089dfdae5c8e32352f","value":"Downloading data: 100%"}},"91518d026fd04384846b34a312c29b3a":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_3b3ee66b385e4f35843edae28a14b3cf","max":234008884,"min":0,"orientation":"horizontal","style":"IPY_MODEL_d8ff77a6589442a09e8853bacf338586","value":234008884}},"42ab3545711c441981bdb3fa56c8aaaf":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_d3ab122480fe41188319759aa9ae9afb","placeholder":"​","style":"IPY_MODEL_888b74615f464f918fac670eb9117c33","value":" 234M/234M [00:17<00:00, 12.1MB/s]"}},"fa2a7322bf9848279f8f1705bc9fbff0":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"6075a332159e436a9941f389f83faef0":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"e80b38b953b841089dfdae5c8e32352f":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"3b3ee66b385e4f35843edae28a14b3cf":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"d8ff77a6589442a09e8853bacf338586":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"d3ab122480fe41188319759aa9ae9afb":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"888b74615f464f918fac670eb9117c33":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"7067bd8b5bf44733918d96a9756daa16":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_4b9e7fe66c214dc8a225ddb580e77c8d","IPY_MODEL_625c6ff8f0c94d8bb1a99ce77477d1bc","IPY_MODEL_5756b4565de94768a603d2e5fc2cd012"],"layout":"IPY_MODEL_125faa87950c42b7a105a6be57bf6cd2"}},"4b9e7fe66c214dc8a225ddb580e77c8d":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_a78a576d149546d1b6d0f98bd7673c8d","placeholder":"​","style":"IPY_MODEL_ff7c565e98da45758bc3d0cdfd0e940c","value":"Generating train split: 96%"}},"625c6ff8f0c94d8bb1a99ce77477d1bc":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"","description":"","description_tooltip":null,"layout":"IPY_MODEL_df5c309de3514f028322a6a526b1a35b","max":20000,"min":0,"orientation":"horizontal","style":"IPY_MODEL_ecfdeacc4c7f40588c32b8a840e724f0","value":20000}},"5756b4565de94768a603d2e5fc2cd012":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_9a05ab36f6df4459a66e2c2bf062f32f","placeholder":"​","style":"IPY_MODEL_4d783abaa6a249ae90e2fde23897faaf","value":" 19145/20000 [00:02<00:00, 8744.34 examples/s]"}},"125faa87950c42b7a105a6be57bf6cd2":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":"hidden","width":null}},"a78a576d149546d1b6d0f98bd7673c8d":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"ff7c565e98da45758bc3d0cdfd0e940c":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"df5c309de3514f028322a6a526b1a35b":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"ecfdeacc4c7f40588c32b8a840e724f0":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"9a05ab36f6df4459a66e2c2bf062f32f":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"4d783abaa6a249ae90e2fde23897faaf":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"8db9618fc24444e1b1e0648188494313":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_3d3b01b3c93346ecba270614969ebf34","IPY_MODEL_8a3884e9458a46a7bfb1e54cc2224152","IPY_MODEL_bd822aed87594262a9d1d89113baabf5"],"layout":"IPY_MODEL_b2959a54524e4e87a47eed3ef072674f"}},"3d3b01b3c93346ecba270614969ebf34":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_3c3f38763ed649e2bbb6b1e0464f59dd","placeholder":"​","style":"IPY_MODEL_13b27ca75d9d4f1c9f28b762e6115347","value":"Generating validation split: 92%"}},"8a3884e9458a46a7bfb1e54cc2224152":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"","description":"","description_tooltip":null,"layout":"IPY_MODEL_d2b00af01bd64fdf8468f95277232cb8","max":10000,"min":0,"orientation":"horizontal","style":"IPY_MODEL_731076999b3b4bd0a4526cd4b7748c9b","value":10000}},"bd822aed87594262a9d1d89113baabf5":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_ca3222f811b04024b165de81a833e4b7","placeholder":"​","style":"IPY_MODEL_808df7c6d141417a94d27969d0cbbfc6","value":" 9217/10000 [00:01<00:00, 8774.92 examples/s]"}},"b2959a54524e4e87a47eed3ef072674f":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":"hidden","width":null}},"3c3f38763ed649e2bbb6b1e0464f59dd":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"13b27ca75d9d4f1c9f28b762e6115347":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"d2b00af01bd64fdf8468f95277232cb8":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"731076999b3b4bd0a4526cd4b7748c9b":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"ca3222f811b04024b165de81a833e4b7":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"808df7c6d141417a94d27969d0cbbfc6":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"8c0fd6197d7a470c9456de121a762cf0":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_28218e2374204431baa591bf30140eb2","IPY_MODEL_61d678a0cd664e8f8e69df00ef4adb12","IPY_MODEL_e1645318450e455882ea30d1aa82982f"],"layout":"IPY_MODEL_0f2561e124974abb91fcf5bc4a969dc3"}},"28218e2374204431baa591bf30140eb2":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_446633c15fc24e088f1bb65d7ae8771c","placeholder":"​","style":"IPY_MODEL_78ddbd182c8040aaa24992292c86bcbb","value":"Generating test split: 100%"}},"61d678a0cd664e8f8e69df00ef4adb12":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"","description":"","description_tooltip":null,"layout":"IPY_MODEL_54a2baa40416436dbfd7257d46330708","max":10000,"min":0,"orientation":"horizontal","style":"IPY_MODEL_7d65a0f07e9f44cc8e49a6bc2f0fb8bc","value":10000}},"e1645318450e455882ea30d1aa82982f":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_b36691f62c074bd98df7fe380538329f","placeholder":"​","style":"IPY_MODEL_dd86baaef5354a59a2929edf5293af88","value":" 10000/10000 [00:01<00:00, 8055.43 examples/s]"}},"0f2561e124974abb91fcf5bc4a969dc3":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":"hidden","width":null}},"446633c15fc24e088f1bb65d7ae8771c":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"78ddbd182c8040aaa24992292c86bcbb":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"54a2baa40416436dbfd7257d46330708":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"7d65a0f07e9f44cc8e49a6bc2f0fb8bc":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"b36691f62c074bd98df7fe380538329f":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"dd86baaef5354a59a2929edf5293af88":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"528fea30282642ffa2648136daf752ed":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_71d6869f86474afda3a272dd407c2843","IPY_MODEL_209f02896265411dac377a72f107ce67","IPY_MODEL_ab57845cdfb44c39931248788b0b826e"],"layout":"IPY_MODEL_af3597f6af5740d0b4c02785e59d3df5"}},"71d6869f86474afda3a272dd407c2843":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_e30098bf33d94a549524d3071de5067b","placeholder":"​","style":"IPY_MODEL_a38a954f35504c8abdd317e9e466876a","value":"100%"}},"209f02896265411dac377a72f107ce67":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_64d376b5e87f4433a8d3366b0052b6bb","max":3,"min":0,"orientation":"horizontal","style":"IPY_MODEL_5bbe1bb7285c4bfc85016baef496fc7b","value":3}},"ab57845cdfb44c39931248788b0b826e":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_e54d8cc778924fcb83d33fbb064558fd","placeholder":"​","style":"IPY_MODEL_aadce0950e0f402a943c5c66e867b54d","value":" 3/3 [00:00<00:00, 112.68it/s]"}},"af3597f6af5740d0b4c02785e59d3df5":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"e30098bf33d94a549524d3071de5067b":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"a38a954f35504c8abdd317e9e466876a":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"64d376b5e87f4433a8d3366b0052b6bb":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"5bbe1bb7285c4bfc85016baef496fc7b":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"e54d8cc778924fcb83d33fbb064558fd":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"aadce0950e0f402a943c5c66e867b54d":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"17091a06c8e645f3bf44ceb65aa500a7":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_eac21acf122d47d8b7eeff260f68fd56","IPY_MODEL_6d802037c06e4de0aac6b7a22493afef","IPY_MODEL_eb4324055c984ab8bec9fe61e1ac83c0"],"layout":"IPY_MODEL_fc4b6af334bd4d6295ec029d91c99da8"}},"eac21acf122d47d8b7eeff260f68fd56":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_ec2fc53ba43e4df8b7904f0a63953d59","placeholder":"​","style":"IPY_MODEL_3238151e0a8a4ec0870c71d944092119","value":"Generating train split: 98%"}},"6d802037c06e4de0aac6b7a22493afef":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"","description":"","description_tooltip":null,"layout":"IPY_MODEL_51ddd8341abd4ac2b05c11549627c4b4","max":20000,"min":0,"orientation":"horizontal","style":"IPY_MODEL_b94677eb309245f8b33cc71d3db0a7b6","value":20000}},"eb4324055c984ab8bec9fe61e1ac83c0":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_d219026755154d02be51fabf80eb67bb","placeholder":"​","style":"IPY_MODEL_68e7340b165a46f9a7ccb1eb0df621ba","value":" 19685/20000 [00:01<00:00, 10458.93 examples/s]"}},"fc4b6af334bd4d6295ec029d91c99da8":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":"hidden","width":null}},"ec2fc53ba43e4df8b7904f0a63953d59":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"3238151e0a8a4ec0870c71d944092119":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"51ddd8341abd4ac2b05c11549627c4b4":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"b94677eb309245f8b33cc71d3db0a7b6":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"d219026755154d02be51fabf80eb67bb":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"68e7340b165a46f9a7ccb1eb0df621ba":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"455d943989564ef89f404387adda250c":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_fe8afaa1e6ac43edbbd6cc7a9f0024a3","IPY_MODEL_63e1183ed437449493fe3ef45ebe49bd","IPY_MODEL_f5a8511a631249a1baf14671d91dfd09"],"layout":"IPY_MODEL_ee1ab08c5e204e56a48074c294f9cc9e"}},"fe8afaa1e6ac43edbbd6cc7a9f0024a3":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_754ad93a80754e7ab1709ea54b39e834","placeholder":"​","style":"IPY_MODEL_dd01f49f5a9741e2bd25fa3ae3d6f396","value":"Generating validation split: 98%"}},"63e1183ed437449493fe3ef45ebe49bd":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"","description":"","description_tooltip":null,"layout":"IPY_MODEL_871e3fe86eb44f418726ce435002cf33","max":10000,"min":0,"orientation":"horizontal","style":"IPY_MODEL_d215f260aa774297bfa27aac1ac4edd9","value":10000}},"f5a8511a631249a1baf14671d91dfd09":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_7b80b785f62849d699ba34c8c85bec5b","placeholder":"​","style":"IPY_MODEL_e743c66bd43740b68cdc391d16e5b58e","value":" 9834/10000 [00:00<00:00, 10984.31 examples/s]"}},"ee1ab08c5e204e56a48074c294f9cc9e":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":"hidden","width":null}},"754ad93a80754e7ab1709ea54b39e834":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"dd01f49f5a9741e2bd25fa3ae3d6f396":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"871e3fe86eb44f418726ce435002cf33":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"d215f260aa774297bfa27aac1ac4edd9":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"7b80b785f62849d699ba34c8c85bec5b":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"e743c66bd43740b68cdc391d16e5b58e":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"90247571f6a5433491df5e18e65e9679":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_3e1e59d2553d4cb6a38fab2b518a5fc3","IPY_MODEL_77f6e964c37a4bea8a3f945ddfa13788","IPY_MODEL_22f193b2cf9e49fbac719e85ec70fdba"],"layout":"IPY_MODEL_90b911d48185465297cb680833a35bb2"}},"3e1e59d2553d4cb6a38fab2b518a5fc3":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_d097613d715245c59c175813e1a54952","placeholder":"​","style":"IPY_MODEL_df578f31a9ad409d8e57840b7a73de19","value":"Generating test split: 100%"}},"77f6e964c37a4bea8a3f945ddfa13788":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"","description":"","description_tooltip":null,"layout":"IPY_MODEL_6920ab7ce46f433db0b4e26e2cb4c238","max":10000,"min":0,"orientation":"horizontal","style":"IPY_MODEL_629c3f6dff504deeab8fca554bb983e0","value":10000}},"22f193b2cf9e49fbac719e85ec70fdba":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_a75c9b9b2f5048d4be418c08f1f5d073","placeholder":"​","style":"IPY_MODEL_0e7d9985300341fe83674d71f8fa1dc8","value":" 10000/10000 [00:01<00:00, 9855.31 examples/s]"}},"90b911d48185465297cb680833a35bb2":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":"hidden","width":null}},"d097613d715245c59c175813e1a54952":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"df578f31a9ad409d8e57840b7a73de19":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"6920ab7ce46f433db0b4e26e2cb4c238":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"629c3f6dff504deeab8fca554bb983e0":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"a75c9b9b2f5048d4be418c08f1f5d073":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"0e7d9985300341fe83674d71f8fa1dc8":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"2fdca93baefd4245ac3873186d587c6e":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_2ca4e13c39644af29486cdee448b49c2","IPY_MODEL_f50f525537f4450b829e051d2ec85e4e","IPY_MODEL_08ff1379909e430385a6691951944c77"],"layout":"IPY_MODEL_f51e322dbcf448188e567f90ad23c30d"}},"2ca4e13c39644af29486cdee448b49c2":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_92da546d72cb4e9aa7e51d7568b3b0d6","placeholder":"​","style":"IPY_MODEL_a9cfcfd2516d4219bb5e9e96cead0934","value":"100%"}},"f50f525537f4450b829e051d2ec85e4e":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_f86b4c410ee8489fb7cdf310d846d103","max":3,"min":0,"orientation":"horizontal","style":"IPY_MODEL_fbc3c56a9d404e85829b50220bc86346","value":3}},"08ff1379909e430385a6691951944c77":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_e2aed321379743f4b2b2766f18e5cd5a","placeholder":"​","style":"IPY_MODEL_100f02d754304132978e6ad7e85e5195","value":" 3/3 [00:00<00:00, 152.15it/s]"}},"f51e322dbcf448188e567f90ad23c30d":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"92da546d72cb4e9aa7e51d7568b3b0d6":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"a9cfcfd2516d4219bb5e9e96cead0934":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"f86b4c410ee8489fb7cdf310d846d103":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"fbc3c56a9d404e85829b50220bc86346":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"e2aed321379743f4b2b2766f18e5cd5a":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"100f02d754304132978e6ad7e85e5195":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"3391d8a5aaaf4e1098cce55341610356":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_65b01db542b64f52b036a2f19b135541","IPY_MODEL_af4e2454d79e41fa84caded52f520af1","IPY_MODEL_51b84b63831c47b896d3d27e8a27ce99"],"layout":"IPY_MODEL_40b775ea8e0f4c28b36818aac6b0e03a"}},"65b01db542b64f52b036a2f19b135541":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_c7d291d758684e23ab54b56a16b796a6","placeholder":"​","style":"IPY_MODEL_605253155e8540b68c784014bc2b9cbd","value":"Generating train split: 96%"}},"af4e2454d79e41fa84caded52f520af1":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"","description":"","description_tooltip":null,"layout":"IPY_MODEL_5a110d07464c4d8cb03ac3a9c6583e3e","max":20000,"min":0,"orientation":"horizontal","style":"IPY_MODEL_3861132317df4a3b975df7200d157868","value":20000}},"51b84b63831c47b896d3d27e8a27ce99":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_63decd70d69f4d569f1ed374716698b7","placeholder":"​","style":"IPY_MODEL_24ff79aa2425457695361d2f0914d2e5","value":" 19175/20000 [00:02<00:00, 8759.72 examples/s]"}},"40b775ea8e0f4c28b36818aac6b0e03a":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":"hidden","width":null}},"c7d291d758684e23ab54b56a16b796a6":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"605253155e8540b68c784014bc2b9cbd":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"5a110d07464c4d8cb03ac3a9c6583e3e":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"3861132317df4a3b975df7200d157868":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"63decd70d69f4d569f1ed374716698b7":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"24ff79aa2425457695361d2f0914d2e5":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"46981a07ed6d4e2799ceb643c28b1363":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_1e32312f238644d492ce20f9e17a8579","IPY_MODEL_bb804f3e872d4945a15cd8411436c24e","IPY_MODEL_5a874aac91974aafa0f971fd02d54384"],"layout":"IPY_MODEL_89ea6514a9d3461aa7cf15397927df57"}},"1e32312f238644d492ce20f9e17a8579":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_72f634fad40c44e18f7b6a217efadb9c","placeholder":"​","style":"IPY_MODEL_91cf4008d9d34abebbd9101af12d2c02","value":"Generating validation split: 91%"}},"bb804f3e872d4945a15cd8411436c24e":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"","description":"","description_tooltip":null,"layout":"IPY_MODEL_702ec4ca5b4641b99ca81079dc1d2f66","max":10000,"min":0,"orientation":"horizontal","style":"IPY_MODEL_969fdf84f8e54e9bbcf057e339ca2b8f","value":10000}},"5a874aac91974aafa0f971fd02d54384":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_00ee7fca00d148e28b780c78af929fb4","placeholder":"​","style":"IPY_MODEL_df565407eb024f88b04d85f593f34ded","value":" 9115/10000 [00:00<00:00, 9217.56 examples/s]"}},"89ea6514a9d3461aa7cf15397927df57":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":"hidden","width":null}},"72f634fad40c44e18f7b6a217efadb9c":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"91cf4008d9d34abebbd9101af12d2c02":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"702ec4ca5b4641b99ca81079dc1d2f66":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"969fdf84f8e54e9bbcf057e339ca2b8f":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"00ee7fca00d148e28b780c78af929fb4":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"df565407eb024f88b04d85f593f34ded":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"ea5e3a222af7442bb5d3785c901418cc":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_6af251b973ee4852b8163d9488ad9c8b","IPY_MODEL_df7bcb4527be4680930502bf3d887f14","IPY_MODEL_96ce8787ee124601b8aceea2588646bc"],"layout":"IPY_MODEL_7ffd938674e341ec9aeccfa19a0c54ef"}},"6af251b973ee4852b8163d9488ad9c8b":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_d8e03239fb894f00ac44ea56377543db","placeholder":"​","style":"IPY_MODEL_6c413ef8a0b0457c892b310966d401f3","value":"Generating test split: 93%"}},"df7bcb4527be4680930502bf3d887f14":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"","description":"","description_tooltip":null,"layout":"IPY_MODEL_808a257d8a854dc48cf8b6ae4ceae05d","max":10000,"min":0,"orientation":"horizontal","style":"IPY_MODEL_d40122b7e55240a4bb3b1d2a666663a8","value":10000}},"96ce8787ee124601b8aceea2588646bc":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_6a4d7901703a4f92b8ee2840ee101a7d","placeholder":"​","style":"IPY_MODEL_84e5da56a7e44a728dabbc08e0538eff","value":" 9295/10000 [00:01<00:00, 9320.93 examples/s]"}},"7ffd938674e341ec9aeccfa19a0c54ef":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":"hidden","width":null}},"d8e03239fb894f00ac44ea56377543db":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"6c413ef8a0b0457c892b310966d401f3":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"808a257d8a854dc48cf8b6ae4ceae05d":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"d40122b7e55240a4bb3b1d2a666663a8":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"6a4d7901703a4f92b8ee2840ee101a7d":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"84e5da56a7e44a728dabbc08e0538eff":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"91bf26ecbf69487ca698874a0fefd0a4":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_9f03c407dc594ffaac7657b50abae8d0","IPY_MODEL_1d97f55fa8df45f38632c4997c794ca2","IPY_MODEL_b62fc1a54c474e0c8fe57349a618f47c"],"layout":"IPY_MODEL_78bae9a926f94518bcb1aca3ec3be8c9"}},"9f03c407dc594ffaac7657b50abae8d0":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_db9256186b24436b9eaf495cca73b627","placeholder":"​","style":"IPY_MODEL_d1a62ffa03614022b9297f4781b01ad1","value":"100%"}},"1d97f55fa8df45f38632c4997c794ca2":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_76b1268583064b7a81e2304254a4423b","max":3,"min":0,"orientation":"horizontal","style":"IPY_MODEL_b9ea0ccab4654c43b1d07f3857c1b357","value":3}},"b62fc1a54c474e0c8fe57349a618f47c":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_5e18cbf866d64bf2b4ca1fa3744326bb","placeholder":"​","style":"IPY_MODEL_df6a4f2066874e68b41d567515f79f30","value":" 3/3 [00:00<00:00, 146.57it/s]"}},"78bae9a926f94518bcb1aca3ec3be8c9":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"db9256186b24436b9eaf495cca73b627":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"d1a62ffa03614022b9297f4781b01ad1":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"76b1268583064b7a81e2304254a4423b":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"b9ea0ccab4654c43b1d07f3857c1b357":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"5e18cbf866d64bf2b4ca1fa3744326bb":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"df6a4f2066874e68b41d567515f79f30":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"2e8c2180648c40c588ab3afe5eaabc50":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_29c92cd07b1842c69840456c878ff9aa","IPY_MODEL_3b46df46cd854b75b4add832fb4a5d5c","IPY_MODEL_e58866173b7d4ab2bc406b1a5c01b74b"],"layout":"IPY_MODEL_4db8a430139c4501bacc5229e1f082b3"}},"29c92cd07b1842c69840456c878ff9aa":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_b1f1b39884cb4c5db69b19bd0add6a9c","placeholder":"​","style":"IPY_MODEL_7075e5e4c4df48a38d7e18aa1aed946e","value":"Generating train split: 96%"}},"3b46df46cd854b75b4add832fb4a5d5c":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"","description":"","description_tooltip":null,"layout":"IPY_MODEL_4646986a311a49219b12f64829a1d40f","max":20000,"min":0,"orientation":"horizontal","style":"IPY_MODEL_24962ba13f11459c93924d2be5bbc164","value":20000}},"e58866173b7d4ab2bc406b1a5c01b74b":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_1c1c2a6884404a89804cab03bdc595b4","placeholder":"​","style":"IPY_MODEL_953c9766a4e04d309135b4e8f3eb6e04","value":" 19276/20000 [00:02<00:00, 10103.32 examples/s]"}},"4db8a430139c4501bacc5229e1f082b3":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":"hidden","width":null}},"b1f1b39884cb4c5db69b19bd0add6a9c":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"7075e5e4c4df48a38d7e18aa1aed946e":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"4646986a311a49219b12f64829a1d40f":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"24962ba13f11459c93924d2be5bbc164":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"1c1c2a6884404a89804cab03bdc595b4":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"953c9766a4e04d309135b4e8f3eb6e04":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"dc9f3eeb357841538c6234a39ff3394c":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_14124ad253bc4479b665a066e3028563","IPY_MODEL_79454f50b2e8405693c02e4044c9c477","IPY_MODEL_75cb85bbcd4d40f288b20db918f0ae38"],"layout":"IPY_MODEL_b6f0d63680f6452ab6d1c64f4197a685"}},"14124ad253bc4479b665a066e3028563":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_66f19530c4f2471a94cd83f006783018","placeholder":"​","style":"IPY_MODEL_49a2728b072848fa97a5c267ede46e2d","value":"Generating validation split: 100%"}},"79454f50b2e8405693c02e4044c9c477":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"","description":"","description_tooltip":null,"layout":"IPY_MODEL_cb1384b48fe4408a9fa1f5bc07823876","max":10000,"min":0,"orientation":"horizontal","style":"IPY_MODEL_8486a17af7a84ea98d57fbfb01ef6bb6","value":10000}},"75cb85bbcd4d40f288b20db918f0ae38":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_eba25eb814764ab59d313c440f3d9195","placeholder":"​","style":"IPY_MODEL_19f19423672e4a8caa4e6ae065324323","value":" 10000/10000 [00:01<00:00, 8106.33 examples/s]"}},"b6f0d63680f6452ab6d1c64f4197a685":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":"hidden","width":null}},"66f19530c4f2471a94cd83f006783018":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"49a2728b072848fa97a5c267ede46e2d":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"cb1384b48fe4408a9fa1f5bc07823876":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"8486a17af7a84ea98d57fbfb01ef6bb6":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"eba25eb814764ab59d313c440f3d9195":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"19f19423672e4a8caa4e6ae065324323":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"c9a290e3a6cc494595310142f6816c1e":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_d80e8f64e23143ecb8b73a1f26fa40f7","IPY_MODEL_5169f99419484e96bdd11bf9266dd710","IPY_MODEL_2faa0934682c4340a5235f7fd9730643"],"layout":"IPY_MODEL_07e0ca56e26f42b8a15f32b0dc205aeb"}},"d80e8f64e23143ecb8b73a1f26fa40f7":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_81986143c46e47c5aa865a97b81f36d0","placeholder":"​","style":"IPY_MODEL_4ab08dc1ba824db4b8c0cc5544e5c7b2","value":"Generating test split: 100%"}},"5169f99419484e96bdd11bf9266dd710":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"","description":"","description_tooltip":null,"layout":"IPY_MODEL_8fb5b6f8a36a4593a21210abcf9a5e73","max":10000,"min":0,"orientation":"horizontal","style":"IPY_MODEL_5717f2f2f78b40bb957c8cb29def22db","value":10000}},"2faa0934682c4340a5235f7fd9730643":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_a1040ae0475b4f53a5abcca55c414772","placeholder":"​","style":"IPY_MODEL_5f52a79dca5944c08fb04e9a1b141531","value":" 9969/10000 [00:01<00:00, 9537.31 examples/s]"}},"07e0ca56e26f42b8a15f32b0dc205aeb":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":"hidden","width":null}},"81986143c46e47c5aa865a97b81f36d0":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"4ab08dc1ba824db4b8c0cc5544e5c7b2":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"8fb5b6f8a36a4593a21210abcf9a5e73":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"5717f2f2f78b40bb957c8cb29def22db":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"a1040ae0475b4f53a5abcca55c414772":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"5f52a79dca5944c08fb04e9a1b141531":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"ae117bea6d4847c4aa9cfc9882ac6cc0":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_54da2f080e53433298f21b223ed31640","IPY_MODEL_4f0ea89ad4de45ccbc7aa5785c86e6f9","IPY_MODEL_65aeaff82abe493c842e740c26731ab7"],"layout":"IPY_MODEL_1b9d54a916e4415b810e420c3e44a663"}},"54da2f080e53433298f21b223ed31640":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_73f5868d1c7e46e2a4f16025b9e34627","placeholder":"​","style":"IPY_MODEL_7635559557334366b5150c52865c6fa9","value":"100%"}},"4f0ea89ad4de45ccbc7aa5785c86e6f9":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_c1f26a9477c54169bb9110d550bfbbf8","max":3,"min":0,"orientation":"horizontal","style":"IPY_MODEL_c191f19748bb45eebecc3f1063b94b8a","value":3}},"65aeaff82abe493c842e740c26731ab7":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_4f15b85b07cd466f9c5d1d2b6f42f4f4","placeholder":"​","style":"IPY_MODEL_36ffa644509c4e1a9c7234801a00edac","value":" 3/3 [00:00<00:00, 113.92it/s]"}},"1b9d54a916e4415b810e420c3e44a663":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"73f5868d1c7e46e2a4f16025b9e34627":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"7635559557334366b5150c52865c6fa9":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"c1f26a9477c54169bb9110d550bfbbf8":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"c191f19748bb45eebecc3f1063b94b8a":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"4f15b85b07cd466f9c5d1d2b6f42f4f4":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"36ffa644509c4e1a9c7234801a00edac":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"211d525aa2814de2b0559e0dba68865f":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_1486435bca7f495fa811be4138aba46a","IPY_MODEL_32a958e5606945f3804b1a846ae17e9a","IPY_MODEL_01b0dbf5c17a4adb8019f9d012430c92"],"layout":"IPY_MODEL_5bcdcf410d0e418b83d645a0f514e1fd"}},"1486435bca7f495fa811be4138aba46a":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_40371b8e54db4d1ea5c8851b7d353943","placeholder":"​","style":"IPY_MODEL_9b3a23f11be043f0ad9d9a4ff7876167","value":"100%"}},"32a958e5606945f3804b1a846ae17e9a":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_0b837815453b420ea0eccfec7293a5f3","max":12580,"min":0,"orientation":"horizontal","style":"IPY_MODEL_e981c54d25834d029685877830f3469d","value":12580}},"01b0dbf5c17a4adb8019f9d012430c92":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_3d953ad6dff14d268a8537ff39c19bd3","placeholder":"​","style":"IPY_MODEL_d0ba5d92c8c04a61b6a92e73b81af2b2","value":" 12580/12580 [00:01<00:00, 8259.68ex/s]"}},"5bcdcf410d0e418b83d645a0f514e1fd":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"40371b8e54db4d1ea5c8851b7d353943":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"9b3a23f11be043f0ad9d9a4ff7876167":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"0b837815453b420ea0eccfec7293a5f3":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"e981c54d25834d029685877830f3469d":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"3d953ad6dff14d268a8537ff39c19bd3":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"d0ba5d92c8c04a61b6a92e73b81af2b2":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"a90a1575956d471f8150a7585033ae18":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_a3729075e35a425b90da9a04ccf385d3","IPY_MODEL_c737f90a71504bdfa60c6b64b767735c","IPY_MODEL_36fe20b170df4c698e4c36346a3f0766"],"layout":"IPY_MODEL_6d67aeddb4674c2195669854c0dc547a"}},"a3729075e35a425b90da9a04ccf385d3":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_302aa0a2e6d84a07a2d3d1af5894e6be","placeholder":"​","style":"IPY_MODEL_88c7be98258f4de48094f21a21e21832","value":"100%"}},"c737f90a71504bdfa60c6b64b767735c":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_42c8625242a244f6b93f54ddbb7f2fe2","max":6290,"min":0,"orientation":"horizontal","style":"IPY_MODEL_46f5749cbb4644bdbd38becc552e3259","value":6290}},"36fe20b170df4c698e4c36346a3f0766":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_0e1811d3227849ddb8f855d7079e675b","placeholder":"​","style":"IPY_MODEL_cb2f805494394845aff0fb4e567fef50","value":" 6290/6290 [00:00<00:00, 8830.13ex/s]"}},"6d67aeddb4674c2195669854c0dc547a":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"302aa0a2e6d84a07a2d3d1af5894e6be":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"88c7be98258f4de48094f21a21e21832":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"42c8625242a244f6b93f54ddbb7f2fe2":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"46f5749cbb4644bdbd38becc552e3259":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"0e1811d3227849ddb8f855d7079e675b":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"cb2f805494394845aff0fb4e567fef50":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"e09e8e70bbb44f32b63f38f94066b47d":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_2085200a95a248a79e0ce40d4b96f476","IPY_MODEL_d5d1e64b89a74cc0b4133b7dbf462676","IPY_MODEL_3d04d7c1e2f547a981d78ec01746f7c0"],"layout":"IPY_MODEL_10ed85fdb5614fe9a88e419f158a7f41"}},"2085200a95a248a79e0ce40d4b96f476":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_a7d15fc1f337473980bb5135ef18cf2b","placeholder":"​","style":"IPY_MODEL_c6643cdb310c45fd8dcf25afdb9084cc","value":"100%"}},"d5d1e64b89a74cc0b4133b7dbf462676":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_3d1cd8e019d34762b3dd4062b434649d","max":6290,"min":0,"orientation":"horizontal","style":"IPY_MODEL_d39c7ae79ba84ed0bfe6e6e0a24f21af","value":6290}},"3d04d7c1e2f547a981d78ec01746f7c0":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_0ef37e041b0047f4ad5c5c1aec14cbb4","placeholder":"​","style":"IPY_MODEL_cdac238f7cf445cc84041d7302624626","value":" 6290/6290 [00:00<00:00, 6601.01ex/s]"}},"10ed85fdb5614fe9a88e419f158a7f41":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"a7d15fc1f337473980bb5135ef18cf2b":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"c6643cdb310c45fd8dcf25afdb9084cc":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"3d1cd8e019d34762b3dd4062b434649d":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"d39c7ae79ba84ed0bfe6e6e0a24f21af":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"0ef37e041b0047f4ad5c5c1aec14cbb4":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"cdac238f7cf445cc84041d7302624626":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"f1f69f016e5f4d179fc1a3a3639e194f":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_4f5da1ad913e472c9d77e1cdc4f8e2b6","IPY_MODEL_ebd7b36421f948439548e7903ed81ee6","IPY_MODEL_96f5ba8063074c748b250f3d38de52f2"],"layout":"IPY_MODEL_31ddd298f1894a069583d6d93d2e45eb"}},"4f5da1ad913e472c9d77e1cdc4f8e2b6":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_2ead4e84970946d9859ce37da2175d3e","placeholder":"​","style":"IPY_MODEL_acd513b021d24cd4b127755190f90302","value":"Downloading (…)okenizer_config.json: 100%"}},"ebd7b36421f948439548e7903ed81ee6":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_016e44c2b25545e693c1a316ad17deaf","max":29,"min":0,"orientation":"horizontal","style":"IPY_MODEL_4185518d566c42468315e518bf9fcfe7","value":29}},"96f5ba8063074c748b250f3d38de52f2":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_0ed70f7d08fa49819bb9c60eafaec297","placeholder":"​","style":"IPY_MODEL_0644205b912848a7a7f77830b7258223","value":" 29.0/29.0 [00:00<00:00, 1.32kB/s]"}},"31ddd298f1894a069583d6d93d2e45eb":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"2ead4e84970946d9859ce37da2175d3e":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"acd513b021d24cd4b127755190f90302":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"016e44c2b25545e693c1a316ad17deaf":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"4185518d566c42468315e518bf9fcfe7":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"0ed70f7d08fa49819bb9c60eafaec297":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"0644205b912848a7a7f77830b7258223":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"94f51cdae0494f0dbcf0b341047c90dc":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_efa3383f5b524d56ae509f4d8e278d22","IPY_MODEL_fb036d925be044438f01290f948f8e02","IPY_MODEL_8365cc260cba472d85e6a02ded253ca1"],"layout":"IPY_MODEL_0e2d034462e94a178aa4cfa54343bc69"}},"efa3383f5b524d56ae509f4d8e278d22":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_8c91896dddd142b1996ab976b14cc1c7","placeholder":"​","style":"IPY_MODEL_d582d329ca4449349a6e08e11ac7d25c","value":"Downloading (…)lve/main/config.json: 100%"}},"fb036d925be044438f01290f948f8e02":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_c71c37c8c3f443f88c38d94ba7a597c7","max":570,"min":0,"orientation":"horizontal","style":"IPY_MODEL_00e0165acad84074a1b02f60b8993d8c","value":570}},"8365cc260cba472d85e6a02ded253ca1":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_345a8b6eefe348de982f2fe100e4b94c","placeholder":"​","style":"IPY_MODEL_57553ee721924d69b2846ab8a05e4305","value":" 570/570 [00:00<00:00, 28.1kB/s]"}},"0e2d034462e94a178aa4cfa54343bc69":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"8c91896dddd142b1996ab976b14cc1c7":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"d582d329ca4449349a6e08e11ac7d25c":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"c71c37c8c3f443f88c38d94ba7a597c7":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"00e0165acad84074a1b02f60b8993d8c":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"345a8b6eefe348de982f2fe100e4b94c":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"57553ee721924d69b2846ab8a05e4305":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"4604e0047d924a839e969b1f219a8d5e":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_c24a2e3f6fa842b6ac52996933480550","IPY_MODEL_5ee0e7b975c74d4cbdc765e7d82e2ef0","IPY_MODEL_de8687af54af49b99a3f05ec8654c83d"],"layout":"IPY_MODEL_89139f8f31c846c48a3d0b329b881bde"}},"c24a2e3f6fa842b6ac52996933480550":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_33cd59f8716d4f7ea40821c7774a38fa","placeholder":"​","style":"IPY_MODEL_2e793a8f212a427186a427b54c00fe33","value":"Downloading (…)solve/main/vocab.txt: 100%"}},"5ee0e7b975c74d4cbdc765e7d82e2ef0":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_6a6f5218d1c54be7a30777ceb4fd6b00","max":213450,"min":0,"orientation":"horizontal","style":"IPY_MODEL_85f8bbb7d8b24b5a95c7fb674d6cb43a","value":213450}},"de8687af54af49b99a3f05ec8654c83d":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_60207316f72e435f9266225c5f6fbc19","placeholder":"​","style":"IPY_MODEL_ff8103828112408cbf16c5c6d13b2a33","value":" 213k/213k [00:00<00:00, 383kB/s]"}},"89139f8f31c846c48a3d0b329b881bde":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"33cd59f8716d4f7ea40821c7774a38fa":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"2e793a8f212a427186a427b54c00fe33":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"6a6f5218d1c54be7a30777ceb4fd6b00":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"85f8bbb7d8b24b5a95c7fb674d6cb43a":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"60207316f72e435f9266225c5f6fbc19":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"ff8103828112408cbf16c5c6d13b2a33":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"f753628d026a471a8b6f7987011dfe91":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_670b05b90bdf4587beb6a9e1b3f998e8","IPY_MODEL_8b91d4f194844d68bd81acd3438b7ba2","IPY_MODEL_07e98f59b8fb4ffe9c21f62f2e1b3ae5"],"layout":"IPY_MODEL_6ccf052943204fb7be8c2a2987237148"}},"670b05b90bdf4587beb6a9e1b3f998e8":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_d94df671dfa14c02bac4f12819c0748e","placeholder":"​","style":"IPY_MODEL_d9978751d44d486b8d99c812088d29ce","value":"Downloading (…)/main/tokenizer.json: 100%"}},"8b91d4f194844d68bd81acd3438b7ba2":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_c9dfffd412d045a283e46566158deee7","max":435797,"min":0,"orientation":"horizontal","style":"IPY_MODEL_69e2116a570c4b61b55b7dd7ff0545e7","value":435797}},"07e98f59b8fb4ffe9c21f62f2e1b3ae5":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_b991d0341ba748a5a86e36682c350a10","placeholder":"​","style":"IPY_MODEL_098f8beefedf487e8e620a33e5b4873d","value":" 436k/436k [00:00<00:00, 574kB/s]"}},"6ccf052943204fb7be8c2a2987237148":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"d94df671dfa14c02bac4f12819c0748e":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"d9978751d44d486b8d99c812088d29ce":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"c9dfffd412d045a283e46566158deee7":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"69e2116a570c4b61b55b7dd7ff0545e7":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"b991d0341ba748a5a86e36682c350a10":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"098f8beefedf487e8e620a33e5b4873d":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"5bfc16d5cd14405d969e20261f913e40":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_2ddc82fde5284c5fa22e80a1ded0c4de","IPY_MODEL_0090c677db7045df9b5ce4935468b238","IPY_MODEL_9f9f9d032e9c468990f61a9769620a6d"],"layout":"IPY_MODEL_332ea6b461d744bdaf2edbf3048d80ea"}},"2ddc82fde5284c5fa22e80a1ded0c4de":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_fdcfc65469e04a4baef6def0234b3884","placeholder":"​","style":"IPY_MODEL_021e8ac000564e9692aa09f083f36704","value":"Downloading (…)lve/main/config.json: 100%"}},"0090c677db7045df9b5ce4935468b238":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_dab4bb5c9bd44bff9e91421be0977990","max":615,"min":0,"orientation":"horizontal","style":"IPY_MODEL_6d7f64577b9c48a8848a84dfded91fe4","value":615}},"9f9f9d032e9c468990f61a9769620a6d":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_9d602ef4136d43f0a5b6beee8555a3bb","placeholder":"​","style":"IPY_MODEL_bc060a9491da4500b6279c7e4f8880e3","value":" 615/615 [00:00<00:00, 13.8kB/s]"}},"332ea6b461d744bdaf2edbf3048d80ea":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"fdcfc65469e04a4baef6def0234b3884":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"021e8ac000564e9692aa09f083f36704":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"dab4bb5c9bd44bff9e91421be0977990":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"6d7f64577b9c48a8848a84dfded91fe4":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"9d602ef4136d43f0a5b6beee8555a3bb":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"bc060a9491da4500b6279c7e4f8880e3":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"80d6515bf0e145c189303a631f4ea08f":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_801affdca836427988a60f8d21deda58","IPY_MODEL_f83ba0cbd9cc4a1588c7e76b43f068c0","IPY_MODEL_e1b3263abf434c8d94b02b0be45f9434"],"layout":"IPY_MODEL_d97430ac276e4589b503b90886cb8a00"}},"801affdca836427988a60f8d21deda58":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_df18f7c7b94a40ae828ea9eac0a60b34","placeholder":"​","style":"IPY_MODEL_925a4454e6e449218c42585198563cbf","value":"Downloading (…)tencepiece.bpe.model: 100%"}},"f83ba0cbd9cc4a1588c7e76b43f068c0":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_55df9e5858dd4284b40482ebfa346142","max":5069051,"min":0,"orientation":"horizontal","style":"IPY_MODEL_e90cebb0049341fdb70f11727cbf5e79","value":5069051}},"e1b3263abf434c8d94b02b0be45f9434":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_1d630e8957ad45728b9a539d32692cc1","placeholder":"​","style":"IPY_MODEL_f4ca2927907243ffa08b2baa44941069","value":" 5.07M/5.07M [00:01<00:00, 3.44MB/s]"}},"d97430ac276e4589b503b90886cb8a00":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"df18f7c7b94a40ae828ea9eac0a60b34":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"925a4454e6e449218c42585198563cbf":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"55df9e5858dd4284b40482ebfa346142":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"e90cebb0049341fdb70f11727cbf5e79":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"1d630e8957ad45728b9a539d32692cc1":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"f4ca2927907243ffa08b2baa44941069":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"d1fd8e9e28984643b4f55abd35f77840":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_123eb17fe6c243688872a572c2cc88ec","IPY_MODEL_8cac781872fb407facc613e411f8d0c4","IPY_MODEL_fc3d29bb3e2d42a696a2b51aa9e19459"],"layout":"IPY_MODEL_784055e398204ce8a9029852e73ef5bd"}},"123eb17fe6c243688872a572c2cc88ec":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_bab93cded8a045f299b7374306048456","placeholder":"​","style":"IPY_MODEL_914f3a746bd547f9a951132454e7818a","value":"Downloading (…)/main/tokenizer.json: 100%"}},"8cac781872fb407facc613e411f8d0c4":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_c8d7f27575f1400a932be83e3b2c2e07","max":9096718,"min":0,"orientation":"horizontal","style":"IPY_MODEL_e4b4b462d7af44efa4be4c8e1259da99","value":9096718}},"fc3d29bb3e2d42a696a2b51aa9e19459":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_a4017fc65bb64bb391f7f90fcad7629c","placeholder":"​","style":"IPY_MODEL_686bc45dd1384f158656a37caa5e4563","value":" 9.10M/9.10M [00:01<00:00, 5.49MB/s]"}},"784055e398204ce8a9029852e73ef5bd":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"bab93cded8a045f299b7374306048456":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"914f3a746bd547f9a951132454e7818a":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"c8d7f27575f1400a932be83e3b2c2e07":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"e4b4b462d7af44efa4be4c8e1259da99":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"a4017fc65bb64bb391f7f90fcad7629c":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"686bc45dd1384f158656a37caa5e4563":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"ee35beb51277432a80c6c507ea941e81":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_9977e174493d4522b4ad8643c0a7b534","IPY_MODEL_1ba89974c87e4c6a818f6a85c03b55c8","IPY_MODEL_96861e3ec0124949a8dfbbd9a3f8ae4d"],"layout":"IPY_MODEL_52f2ce5e3e4246b8a503b21ad531e9ed"}},"9977e174493d4522b4ad8643c0a7b534":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_5d26e3b64c4444f3a772c33f95906e7e","placeholder":"​","style":"IPY_MODEL_42c224b56c9c4b548abd21c97122ad41","value":"Downloading (…)"pytorch_model.bin";: 100%"}},"1ba89974c87e4c6a818f6a85c03b55c8":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_e8c85c704de8418eb3363b8ad9a6146c","max":1115590446,"min":0,"orientation":"horizontal","style":"IPY_MODEL_e8eb5682d2334e1d8833a209f2dbd826","value":1115590446}},"96861e3ec0124949a8dfbbd9a3f8ae4d":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_464ca3b6b1694d93becbabba2bc5f2e6","placeholder":"​","style":"IPY_MODEL_11c5f0454f774718a6d4efb4ba63cae7","value":" 1.12G/1.12G [00:13<00:00, 90.0MB/s]"}},"52f2ce5e3e4246b8a503b21ad531e9ed":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"5d26e3b64c4444f3a772c33f95906e7e":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"42c224b56c9c4b548abd21c97122ad41":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"e8c85c704de8418eb3363b8ad9a6146c":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"e8eb5682d2334e1d8833a209f2dbd826":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"464ca3b6b1694d93becbabba2bc5f2e6":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"11c5f0454f774718a6d4efb4ba63cae7":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"0bf41f331c6347ce8234765a9fcafec9":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_2692a1f9e28f4c64a1a4fd2550891c13","IPY_MODEL_4148c5ec326741988d19b1d8d0267a0b","IPY_MODEL_df6cd3aa244640d2a78b48112e80bccb"],"layout":"IPY_MODEL_8de43e7ba0a642c3adf25b2638faa5d5"}},"2692a1f9e28f4c64a1a4fd2550891c13":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_c382f6836bbd400b858ea39956e2e5db","placeholder":"​","style":"IPY_MODEL_48aa12534f9843e3bbf5921c28653b58","value":"100%"}},"4148c5ec326741988d19b1d8d0267a0b":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_d4c1121465e2434a8892e778a06942b3","max":13,"min":0,"orientation":"horizontal","style":"IPY_MODEL_1ed3f14248cd455b91a76bd2aa11889f","value":13}},"df6cd3aa244640d2a78b48112e80bccb":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_a9b1f253f089466d96411c9e7562df44","placeholder":"​","style":"IPY_MODEL_8a43e1fa5c354852b8218c5e8db69fb6","value":" 13/13 [00:01<00:00, 12.16ba/s]"}},"8de43e7ba0a642c3adf25b2638faa5d5":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"c382f6836bbd400b858ea39956e2e5db":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"48aa12534f9843e3bbf5921c28653b58":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"d4c1121465e2434a8892e778a06942b3":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"1ed3f14248cd455b91a76bd2aa11889f":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"a9b1f253f089466d96411c9e7562df44":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"8a43e1fa5c354852b8218c5e8db69fb6":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"1c0d5ec20f0d42c6ad7fa2885c9be26c":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_7dece95e5cff46e282161be507beead5","IPY_MODEL_b32512787c384ba682b283f5208eae16","IPY_MODEL_92f6ba0adb9b44d5b4162c4ba62a02b4"],"layout":"IPY_MODEL_e04c275119b64865bfd35e99aabee6d1"}},"7dece95e5cff46e282161be507beead5":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_afe3bdd6130d47fba48a2841ef258e04","placeholder":"​","style":"IPY_MODEL_4ac033289560420ab03259fb6ffd20b1","value":"100%"}},"b32512787c384ba682b283f5208eae16":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_10e064dff423490ca81202ace809a920","max":7,"min":0,"orientation":"horizontal","style":"IPY_MODEL_ab51d2a5d4e64ab8839ee72a5005d2e4","value":7}},"92f6ba0adb9b44d5b4162c4ba62a02b4":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_62201e8a763a4c07bf742defdf11deb3","placeholder":"​","style":"IPY_MODEL_c2f406629c894c3ab7d1ab0c573de517","value":" 7/7 [00:00<00:00, 13.81ba/s]"}},"e04c275119b64865bfd35e99aabee6d1":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"afe3bdd6130d47fba48a2841ef258e04":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"4ac033289560420ab03259fb6ffd20b1":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"10e064dff423490ca81202ace809a920":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"ab51d2a5d4e64ab8839ee72a5005d2e4":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"62201e8a763a4c07bf742defdf11deb3":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"c2f406629c894c3ab7d1ab0c573de517":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"0dbf0628de1a4e17a020f36300fd0bb9":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_96f57e7e3c4c4b16b4c1d4668a9458fc","IPY_MODEL_5a6cd25a886d4a728eb5bedbfa77d991","IPY_MODEL_bc2b0a8fcd8347acbbc58154d21c7b3f"],"layout":"IPY_MODEL_c279a65ea1944618b945a9810ca3043f"}},"96f57e7e3c4c4b16b4c1d4668a9458fc":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_c1603434742540d48ab49ec46046c0f0","placeholder":"​","style":"IPY_MODEL_e81dbce463ea47cc9f5bee10ffbb4def","value":"100%"}},"5a6cd25a886d4a728eb5bedbfa77d991":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_933e4839e16f4bd8a87c246634bf1173","max":7,"min":0,"orientation":"horizontal","style":"IPY_MODEL_8d12cf18d4414d538ce8c242299c93b3","value":7}},"bc2b0a8fcd8347acbbc58154d21c7b3f":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_d4c960f718754d26b339d4e11371409f","placeholder":"​","style":"IPY_MODEL_60342e3d9d264b76bcedb75e75606b89","value":" 7/7 [00:00<00:00, 13.76ba/s]"}},"c279a65ea1944618b945a9810ca3043f":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"c1603434742540d48ab49ec46046c0f0":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"e81dbce463ea47cc9f5bee10ffbb4def":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"933e4839e16f4bd8a87c246634bf1173":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"8d12cf18d4414d538ce8c242299c93b3":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"d4c960f718754d26b339d4e11371409f":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"60342e3d9d264b76bcedb75e75606b89":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"4cc6e9d90ff749db80a80877c4ceb88b":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_898cd3c6298d42dc9d0bd51adcee9069","IPY_MODEL_c3597b8ec6734c35b028daea5e4a3bbb","IPY_MODEL_31d42d93cd534bb09fc0d962b63ae09e"],"layout":"IPY_MODEL_84ef7a7c8fc342d48da529843f65f2fa"}},"898cd3c6298d42dc9d0bd51adcee9069":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_e1fadba579f04906bcf21ff823e366f9","placeholder":"​","style":"IPY_MODEL_b9c6e83d7b8f4ec48de17c75776fbf59","value":"100%"}},"c3597b8ec6734c35b028daea5e4a3bbb":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_17d21e082a4e460c956158a271ad48ee","max":197,"min":0,"orientation":"horizontal","style":"IPY_MODEL_42c79b0e7b364da98319a4cd8522eb13","value":197}},"31d42d93cd534bb09fc0d962b63ae09e":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_fbe1408c5e624cc9becac343bcbdfff0","placeholder":"​","style":"IPY_MODEL_0a17783cd6264c85b3d75c6cbfc189b3","value":" 197/197 [00:16<00:00, 11.71ba/s]"}},"84ef7a7c8fc342d48da529843f65f2fa":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"e1fadba579f04906bcf21ff823e366f9":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"b9c6e83d7b8f4ec48de17c75776fbf59":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"17d21e082a4e460c956158a271ad48ee":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"42c79b0e7b364da98319a4cd8522eb13":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"fbe1408c5e624cc9becac343bcbdfff0":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"0a17783cd6264c85b3d75c6cbfc189b3":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"2ea4ca5a4cae4e34a6110d3e9d88c651":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_91bda3f45e6c4e85a09ed28d5289c696","IPY_MODEL_bfd5babd9bc84ddfa5c6128295166523","IPY_MODEL_68fb9a2ada674f3d86c8af1f8ca42294"],"layout":"IPY_MODEL_4ea838d6f2f045ff9aa15422ded0e4c9"}},"91bda3f45e6c4e85a09ed28d5289c696":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_bb67aae5d54d42c699ccbbc7d3e3d55b","placeholder":"​","style":"IPY_MODEL_c7c6dae6f18c471c97c554070b51bc4c","value":"100%"}},"bfd5babd9bc84ddfa5c6128295166523":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_9db304751d0a4e25bca672129340ac4a","max":5,"min":0,"orientation":"horizontal","style":"IPY_MODEL_4e6377999bcd45fd947ffff3204aa56b","value":5}},"68fb9a2ada674f3d86c8af1f8ca42294":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_2247badab8cd4517bcf9e31b1d5714da","placeholder":"​","style":"IPY_MODEL_cd6a61a9d1ea402e976ed526792cd16d","value":" 5/5 [00:00<00:00, 14.10ba/s]"}},"4ea838d6f2f045ff9aa15422ded0e4c9":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"bb67aae5d54d42c699ccbbc7d3e3d55b":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"c7c6dae6f18c471c97c554070b51bc4c":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"9db304751d0a4e25bca672129340ac4a":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"4e6377999bcd45fd947ffff3204aa56b":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"2247badab8cd4517bcf9e31b1d5714da":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"cd6a61a9d1ea402e976ed526792cd16d":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"94ceb13d56594d3f99d3a03abced58cc":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_d99fd5f7c40443678da1082688c42c65","IPY_MODEL_1bd42bc9adbc4857ae37e1c0b0b0b6c5","IPY_MODEL_c1e2a78143484aea8f371e11c69ab6e3"],"layout":"IPY_MODEL_f8b527cfca1742578a268ad2b607a872"}},"d99fd5f7c40443678da1082688c42c65":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_2e16d295cf4e4cbc9d509f9c26e6ee06","placeholder":"​","style":"IPY_MODEL_65edf3b8401e47eb96a50a2cdbf9a662","value":"100%"}},"1bd42bc9adbc4857ae37e1c0b0b0b6c5":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_4db9ba3f1aff47a99f307d3d9fa41a6d","max":3,"min":0,"orientation":"horizontal","style":"IPY_MODEL_74dabcf2946a4b6dbf9af8fe2e264ef8","value":3}},"c1e2a78143484aea8f371e11c69ab6e3":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_e2a450d30a654f57a00194b9c59b0419","placeholder":"​","style":"IPY_MODEL_eef29186386d49b8a6db1a4cd2b6534c","value":" 3/3 [00:00<00:00, 12.96ba/s]"}},"f8b527cfca1742578a268ad2b607a872":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"2e16d295cf4e4cbc9d509f9c26e6ee06":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"65edf3b8401e47eb96a50a2cdbf9a662":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"4db9ba3f1aff47a99f307d3d9fa41a6d":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"74dabcf2946a4b6dbf9af8fe2e264ef8":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"e2a450d30a654f57a00194b9c59b0419":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"eef29186386d49b8a6db1a4cd2b6534c":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"1a3cfbc170a245b19ffe0fa947628a7e":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_94840fc04ab14cd59fee3dc4c604a2a5","IPY_MODEL_7541382dc9c44afdbfa3f41e3633a0e4","IPY_MODEL_566b0e89a9bc4bb5b238178f8d8ae0a6"],"layout":"IPY_MODEL_9bca7b9835e845a3be6371a04c77ad81"}},"94840fc04ab14cd59fee3dc4c604a2a5":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_edd2a3b1783d48f2be1acfd71f1c8bb4","placeholder":"​","style":"IPY_MODEL_90f2604c031b4b279e069ea7d2881c1a","value":"100%"}},"7541382dc9c44afdbfa3f41e3633a0e4":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_24530917c4f54d44a4341f0c84fbab06","max":3,"min":0,"orientation":"horizontal","style":"IPY_MODEL_7b103fd3144f4eb8b733cb65ec51c91f","value":3}},"566b0e89a9bc4bb5b238178f8d8ae0a6":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_4de7e750ea0f407a9b5b205421147d50","placeholder":"​","style":"IPY_MODEL_ebd1823852cc4db588f99706e590343a","value":" 3/3 [00:00<00:00, 12.70ba/s]"}},"9bca7b9835e845a3be6371a04c77ad81":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"edd2a3b1783d48f2be1acfd71f1c8bb4":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"90f2604c031b4b279e069ea7d2881c1a":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"24530917c4f54d44a4341f0c84fbab06":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"7b103fd3144f4eb8b733cb65ec51c91f":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"4de7e750ea0f407a9b5b205421147d50":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"ebd1823852cc4db588f99706e590343a":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"195e10dbbb5b48ab9e398a66758dde13":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_d35d0b468d914833a56e4fcd52aca4e8","IPY_MODEL_d146b5d96e45412d97f5079b140930e6","IPY_MODEL_4461809827d74d86ad4eedb80d42942d"],"layout":"IPY_MODEL_ba555485343d4f399028b953501f71ed"}},"d35d0b468d914833a56e4fcd52aca4e8":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_f96d049dddc142e78dbc2d63de5f8901","placeholder":"​","style":"IPY_MODEL_69080edf86894d588459022e04b3a423","value":"100%"}},"d146b5d96e45412d97f5079b140930e6":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_71116a1c3046472ebd41de2a251c9b4f","max":2,"min":0,"orientation":"horizontal","style":"IPY_MODEL_c109c485393a4ca0873a72868a39936c","value":2}},"4461809827d74d86ad4eedb80d42942d":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_5af63ad216444ffbbbcd529af95cb22b","placeholder":"​","style":"IPY_MODEL_635fc65327a5438594ce1473362e8200","value":" 2/2 [00:00<00:00, 13.51ba/s]"}},"ba555485343d4f399028b953501f71ed":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"f96d049dddc142e78dbc2d63de5f8901":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"69080edf86894d588459022e04b3a423":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"71116a1c3046472ebd41de2a251c9b4f":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"c109c485393a4ca0873a72868a39936c":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"5af63ad216444ffbbbcd529af95cb22b":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"635fc65327a5438594ce1473362e8200":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"930adae80e9d4e9999acee0c4fc323e4":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_56d8530176d140c19704c0bd74613441","IPY_MODEL_90f26840fb2c46448d33fcea56bad086","IPY_MODEL_64a431cd1ace4a6f94a07a6a5cb703a6"],"layout":"IPY_MODEL_b310cb126eb7460cb424ac80ffded79e"}},"56d8530176d140c19704c0bd74613441":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_9701bf14e9784508bb3f12295aba919e","placeholder":"​","style":"IPY_MODEL_235ace930bb44693b9fe92a781bcf376","value":"100%"}},"90f26840fb2c46448d33fcea56bad086":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_197ebb4e52f24882af7bd0d39095aea6","max":1,"min":0,"orientation":"horizontal","style":"IPY_MODEL_60908eeb9bad47ad9165e195b2cf92f9","value":1}},"64a431cd1ace4a6f94a07a6a5cb703a6":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_08d772af60f6440a802b0b412b287698","placeholder":"​","style":"IPY_MODEL_e9de5adfeec2456fbb81305ecd597480","value":" 1/1 [00:00<00:00, 9.32ba/s]"}},"b310cb126eb7460cb424ac80ffded79e":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"9701bf14e9784508bb3f12295aba919e":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"235ace930bb44693b9fe92a781bcf376":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"197ebb4e52f24882af7bd0d39095aea6":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"60908eeb9bad47ad9165e195b2cf92f9":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"08d772af60f6440a802b0b412b287698":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"e9de5adfeec2456fbb81305ecd597480":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"eacf66ae9ce54d368c4418c72c421860":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_aa3195e2c70d4e709cdcf50c49e8dca4","IPY_MODEL_6ad96368e58c43b688eb5d41df83878f","IPY_MODEL_31dcedf6b7d34474a5bd0f95ddb6837c"],"layout":"IPY_MODEL_fa1d95ea5db140a1b8f79ff4ad1f9773"}},"aa3195e2c70d4e709cdcf50c49e8dca4":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_438c35fceffa4c0e96151cc1e28ac273","placeholder":"​","style":"IPY_MODEL_0ca091f5848644c189ed0c13be310b0e","value":"100%"}},"6ad96368e58c43b688eb5d41df83878f":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_0e6981685a534d8a9577361131ed4b5e","max":1,"min":0,"orientation":"horizontal","style":"IPY_MODEL_b8831dc27dbe4052b94d94c214ca947e","value":1}},"31dcedf6b7d34474a5bd0f95ddb6837c":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_61447819912d4ff399f1e411dbce3229","placeholder":"​","style":"IPY_MODEL_36933e871b114325836b7a7f5d3408ca","value":" 1/1 [00:00<00:00, 10.66ba/s]"}},"fa1d95ea5db140a1b8f79ff4ad1f9773":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"438c35fceffa4c0e96151cc1e28ac273":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"0ca091f5848644c189ed0c13be310b0e":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"0e6981685a534d8a9577361131ed4b5e":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"b8831dc27dbe4052b94d94c214ca947e":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"61447819912d4ff399f1e411dbce3229":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"36933e871b114325836b7a7f5d3408ca":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"30c6a6fbd2944377ace47d48bc4a4aea":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_6af4cd75f04b4a6abed43abd8f3b30a3","IPY_MODEL_dbf5ba978d06434ab1910c2f8e932f48","IPY_MODEL_a18cc967159849caac2877ce9b3dc6a2"],"layout":"IPY_MODEL_66200da357d74e4fb357f1f561d01cad"}},"6af4cd75f04b4a6abed43abd8f3b30a3":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_0f439a2b3fba46f3a60f1ca4762becee","placeholder":"​","style":"IPY_MODEL_472c551e7eba4817affcb192af57e973","value":"100%"}},"dbf5ba978d06434ab1910c2f8e932f48":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_1822ae06b53641028266009060997372","max":5,"min":0,"orientation":"horizontal","style":"IPY_MODEL_c2bc8eb70e324e83906f1990f9033cad","value":5}},"a18cc967159849caac2877ce9b3dc6a2":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_3b0af0519c10406ea44b7f4bb812f6a1","placeholder":"​","style":"IPY_MODEL_92da5753833b4007b2194cbe6715c4ff","value":" 5/5 [00:00<00:00, 13.30ba/s]"}},"66200da357d74e4fb357f1f561d01cad":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"0f439a2b3fba46f3a60f1ca4762becee":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"472c551e7eba4817affcb192af57e973":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"1822ae06b53641028266009060997372":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"c2bc8eb70e324e83906f1990f9033cad":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"3b0af0519c10406ea44b7f4bb812f6a1":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"92da5753833b4007b2194cbe6715c4ff":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"40ee5833271c494cb982535613847865":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_9cd43cf140984ac594dc4449ea856e1a","IPY_MODEL_d2656be4605a408b8960d620155d6872","IPY_MODEL_40c9c94449694fbbaf08b0a4da3a2470"],"layout":"IPY_MODEL_5fa3437f023c44d3887654afac5164f6"}},"9cd43cf140984ac594dc4449ea856e1a":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_5ee625774f254d7bbfdb58fc2b88c032","placeholder":"​","style":"IPY_MODEL_6e949eae282e4fcfb12a5fa8f678b3f8","value":"100%"}},"d2656be4605a408b8960d620155d6872":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_aca5de1935654297aa171b16d4ae2117","max":13,"min":0,"orientation":"horizontal","style":"IPY_MODEL_8ada8e3b825043589a33076d479fa97a","value":13}},"40c9c94449694fbbaf08b0a4da3a2470":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_33cc02879cb148b998f9da0fff984862","placeholder":"​","style":"IPY_MODEL_b1a1ce3dadb3403bb8c20f2ca16e3513","value":" 13/13 [00:00<00:00, 13.00ba/s]"}},"5fa3437f023c44d3887654afac5164f6":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"5ee625774f254d7bbfdb58fc2b88c032":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"6e949eae282e4fcfb12a5fa8f678b3f8":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"aca5de1935654297aa171b16d4ae2117":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"8ada8e3b825043589a33076d479fa97a":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"33cc02879cb148b998f9da0fff984862":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"b1a1ce3dadb3403bb8c20f2ca16e3513":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"323822f38a9e48a0b69b9e72713ad9fd":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_5b58cd19a040458785de40b350d0a0a2","IPY_MODEL_afb03e48c9a64e459182c7969105d693","IPY_MODEL_0f3f7f44d66a40ccb0c4c0d409aceff1"],"layout":"IPY_MODEL_78d9f1251e3f43368ef4400057df0e9c"}},"5b58cd19a040458785de40b350d0a0a2":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_f475fece0cc94fc3875d60e697b712f9","placeholder":"​","style":"IPY_MODEL_be5245964f2f496792d8513dbd681e42","value":"100%"}},"afb03e48c9a64e459182c7969105d693":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_2d428917487c4f18abc84819b6ddbcde","max":7,"min":0,"orientation":"horizontal","style":"IPY_MODEL_6a24b1cebe05436da45963e95550b673","value":7}},"0f3f7f44d66a40ccb0c4c0d409aceff1":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_d14809e23834488fb4f2a385f0bb03c1","placeholder":"​","style":"IPY_MODEL_c992e5f51eb94d079c00d433f819606f","value":" 7/7 [00:00<00:00, 7.58ba/s]"}},"78d9f1251e3f43368ef4400057df0e9c":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"f475fece0cc94fc3875d60e697b712f9":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"be5245964f2f496792d8513dbd681e42":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"2d428917487c4f18abc84819b6ddbcde":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"6a24b1cebe05436da45963e95550b673":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"d14809e23834488fb4f2a385f0bb03c1":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"c992e5f51eb94d079c00d433f819606f":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"d6c483f1f2a74e0b88a864e9524a52f6":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_4894b9cf2ee5495bafa58b8e78af5497","IPY_MODEL_90c9e7c500534b758f21b5a9567252c6","IPY_MODEL_1dfee2d2e19c40e0b5606e01a4f1b1ac"],"layout":"IPY_MODEL_5207663a59f642c9935f742990337395"}},"4894b9cf2ee5495bafa58b8e78af5497":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_521599d1ca3047fbb6736a55a84386a7","placeholder":"​","style":"IPY_MODEL_345d1df57cd347979e56b8434bbe9579","value":"100%"}},"90c9e7c500534b758f21b5a9567252c6":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_700d93168336461a9b5c221f06b778a4","max":7,"min":0,"orientation":"horizontal","style":"IPY_MODEL_a0e796962708476a8d43898e8f9e7eb4","value":7}},"1dfee2d2e19c40e0b5606e01a4f1b1ac":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_b54b5dd342c147a98f0c859f3e80d807","placeholder":"​","style":"IPY_MODEL_ea15d48dae7d4f3f810df52a2c445966","value":" 7/7 [00:00<00:00, 11.28ba/s]"}},"5207663a59f642c9935f742990337395":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"521599d1ca3047fbb6736a55a84386a7":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"345d1df57cd347979e56b8434bbe9579":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"700d93168336461a9b5c221f06b778a4":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"a0e796962708476a8d43898e8f9e7eb4":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"b54b5dd342c147a98f0c859f3e80d807":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"ea15d48dae7d4f3f810df52a2c445966":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}}}},"accelerator":"GPU","gpuClass":"standard"},"cells":[{"cell_type":"code","execution_count":1,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"vGnuVcCOuhBB","executionInfo":{"status":"ok","timestamp":1675820959695,"user_tz":-540,"elapsed":7728,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"04a67217-0b9a-426a-f592-5ed1ad77521d"},"outputs":[{"output_type":"stream","name":"stdout","text":["Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n","Requirement already satisfied: torch in /usr/local/lib/python3.8/dist-packages (1.13.1+cu116)\n","Requirement already satisfied: typing-extensions in /usr/local/lib/python3.8/dist-packages (from torch) (4.4.0)\n","Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n","Requirement already satisfied: torchvision in /usr/local/lib/python3.8/dist-packages (0.14.1+cu116)\n","Requirement already satisfied: numpy in /usr/local/lib/python3.8/dist-packages (from torchvision) (1.21.6)\n","Requirement already satisfied: torch==1.13.1 in /usr/local/lib/python3.8/dist-packages (from torchvision) (1.13.1+cu116)\n","Requirement already satisfied: pillow!=8.3.*,>=5.3.0 in /usr/local/lib/python3.8/dist-packages (from torchvision) (7.1.2)\n","Requirement already satisfied: requests in /usr/local/lib/python3.8/dist-packages (from torchvision) (2.25.1)\n","Requirement already satisfied: typing-extensions in /usr/local/lib/python3.8/dist-packages (from torchvision) (4.4.0)\n","Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.8/dist-packages (from requests->torchvision) (2.10)\n","Requirement already satisfied: chardet<5,>=3.0.2 in /usr/local/lib/python3.8/dist-packages (from requests->torchvision) (4.0.0)\n","Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.8/dist-packages (from requests->torchvision) (1.24.3)\n","Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.8/dist-packages (from requests->torchvision) (2022.12.7)\n"]}],"source":["!pip3 install torch\n","!pip3 install torchvision"]},{"cell_type":"code","source":["!pip install datasets"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"E8UlcHILv_Q3","executionInfo":{"status":"ok","timestamp":1675820967692,"user_tz":-540,"elapsed":8001,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"31d13515-2f49-41fe-a96b-f945d76273eb"},"execution_count":2,"outputs":[{"output_type":"stream","name":"stdout","text":["Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n","Collecting datasets\n"," Downloading datasets-2.9.0-py3-none-any.whl (462 kB)\n","\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m462.8/462.8 KB\u001b[0m \u001b[31m8.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[?25hCollecting huggingface-hub<1.0.0,>=0.2.0\n"," Downloading huggingface_hub-0.12.0-py3-none-any.whl (190 kB)\n","\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m190.3/190.3 KB\u001b[0m \u001b[31m22.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[?25hRequirement already satisfied: packaging in /usr/local/lib/python3.8/dist-packages (from datasets) (23.0)\n","Requirement already satisfied: pyarrow>=6.0.0 in /usr/local/lib/python3.8/dist-packages (from datasets) (9.0.0)\n","Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.8/dist-packages (from datasets) (6.0)\n","Collecting responses<0.19\n"," Downloading responses-0.18.0-py3-none-any.whl (38 kB)\n","Requirement already satisfied: dill<0.3.7 in /usr/local/lib/python3.8/dist-packages (from datasets) (0.3.6)\n","Requirement already satisfied: pandas in /usr/local/lib/python3.8/dist-packages (from datasets) (1.3.5)\n","Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.8/dist-packages (from datasets) (1.21.6)\n","Requirement already satisfied: aiohttp in /usr/local/lib/python3.8/dist-packages (from datasets) (3.8.3)\n","Requirement already satisfied: requests>=2.19.0 in /usr/local/lib/python3.8/dist-packages (from datasets) (2.25.1)\n","Collecting multiprocess\n"," Downloading multiprocess-0.70.14-py38-none-any.whl (132 kB)\n","\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m132.0/132.0 KB\u001b[0m \u001b[31m18.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[?25hCollecting xxhash\n"," Downloading xxhash-3.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (213 kB)\n","\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m213.0/213.0 KB\u001b[0m \u001b[31m24.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[?25hRequirement already satisfied: tqdm>=4.62.1 in /usr/local/lib/python3.8/dist-packages (from datasets) (4.64.1)\n","Requirement already satisfied: fsspec[http]>=2021.11.1 in /usr/local/lib/python3.8/dist-packages (from datasets) (2023.1.0)\n","Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (1.3.3)\n","Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (6.0.4)\n","Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (4.0.2)\n","Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (22.2.0)\n","Requirement already satisfied: yarl<2.0,>=1.0 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (1.8.2)\n","Requirement already satisfied: charset-normalizer<3.0,>=2.0 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (2.1.1)\n","Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.8/dist-packages (from aiohttp->datasets) (1.3.1)\n","Requirement already satisfied: filelock in /usr/local/lib/python3.8/dist-packages (from huggingface-hub<1.0.0,>=0.2.0->datasets) (3.9.0)\n","Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.8/dist-packages (from huggingface-hub<1.0.0,>=0.2.0->datasets) (4.4.0)\n","Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.8/dist-packages (from requests>=2.19.0->datasets) (2022.12.7)\n","Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.8/dist-packages (from requests>=2.19.0->datasets) (2.10)\n","Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.8/dist-packages (from requests>=2.19.0->datasets) (1.24.3)\n","Requirement already satisfied: chardet<5,>=3.0.2 in /usr/local/lib/python3.8/dist-packages (from requests>=2.19.0->datasets) (4.0.0)\n","Collecting urllib3<1.27,>=1.21.1\n"," Downloading urllib3-1.26.14-py2.py3-none-any.whl (140 kB)\n","\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m140.6/140.6 KB\u001b[0m \u001b[31m18.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[?25hRequirement already satisfied: python-dateutil>=2.7.3 in /usr/local/lib/python3.8/dist-packages (from pandas->datasets) (2.8.2)\n","Requirement already satisfied: pytz>=2017.3 in /usr/local/lib/python3.8/dist-packages (from pandas->datasets) (2022.7.1)\n","Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.8/dist-packages (from python-dateutil>=2.7.3->pandas->datasets) (1.15.0)\n","Installing collected packages: xxhash, urllib3, multiprocess, responses, huggingface-hub, datasets\n"," Attempting uninstall: urllib3\n"," Found existing installation: urllib3 1.24.3\n"," Uninstalling urllib3-1.24.3:\n"," Successfully uninstalled urllib3-1.24.3\n","Successfully installed datasets-2.9.0 huggingface-hub-0.12.0 multiprocess-0.70.14 responses-0.18.0 urllib3-1.26.14 xxhash-3.2.0\n"]}]},{"cell_type":"code","source":["from datasets import get_dataset_config_names\n","\n","xtreme_subsets = get_dataset_config_names(\"xtreme\")\n","print(f\"XTREME 서브셋 개수: {len(xtreme_subsets)}\")"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":130,"referenced_widgets":["463f5547f42a407ea77c9da398cd0d70","3e8e0acc912442dcb2c4c9ab990d9408","e24c62ac74114852a4aba3da8279f997","b7ae4618d0dc4d80b4425c3ca2ac59ac","6ec2206460944b53abfa4e3fb6900f68","57deeee9ba6a4b13a5fc7c92b5e2316b","f6d6006d40a849d89e7e118b03661ed1","048a919356ba4c5f9047b7e3e315deb9","e5dd8f341c584512a9bb41fbfffbffc0","1225a3d5d9724ce4988cdedbbd1c37ac","971d5d798c564be7a38b86548aec1f4e","81a0f10dfe0a4c6abfd1c0437a13b1c2","670de4b7e76f408488d5dabc8dcdc64d","82c09669de694a318b21ce5e43530086","f2d860c19e4a4374aed9462457a8a44c","0ca6b4590a7e47c58da0e4570ac503a7","2fe526df2564455f9003114ebc74d911","9384638f81cd4c95a32b75064711fca6","ac3226796b3e4387b2578d1de79f3ce9","7880a8251bbe4524a345dac05300ceed","e8bcf6f9f89f4af3b67046a16dce62fb","0e2d378d62ed423e8d7d03f3d90d72a5","fdf2854735904915b5d9600a2fb43dc7","def20d8846dc4fb289254a64ed3ac05b","b83be59fa2834698bbcbae99d2a77dde","efc301732ca644aa97b437f539289cef","aa5b46580ef541c4a2b0879397cf5468","65fb2f5a632b4970bc8ac087341d4a21","f072833a7bb64cf5a34d08e7e1c18f35","d6c0de66f82348f08b694484812fad12","93cdf06140e84a9392470a75d55e9435","46a99245732946ca8906452625cf4393","f5c26f9c034847d1907ba505b0e1a4b5"]},"id":"RI7VQ3hAvolA","executionInfo":{"status":"ok","timestamp":1675820976873,"user_tz":-540,"elapsed":9184,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"f81e49e9-ca19-4062-ff2f-3cc764de391d"},"execution_count":3,"outputs":[{"output_type":"display_data","data":{"text/plain":["Downloading builder script: 0%| | 0.00/37.5k [00:00\n","ex] 독일어(de), 프랑스어(fr), 이탈리아어(it), 영어(en)"],"metadata":{"id":"uagWPzGswb1z"}},{"cell_type":"code","source":["from collections import defaultdict\n","from datasets import DatasetDict\n","\n","from datasets import load_dataset\n","\n","langs = [\"de\", \"fr\", \"it\", \"en\"]\n","# 스위스에서 사용하는 언어로 독일어(62.9%), 프랑스어(22.9%), 이탈리아어(8.4%), 영어(5.9%)\n","fracs = [0.629, 0.229, 0.084, 0.059]\n","\n","# 키가 없는 경우 DatasetDict를 반환\n","panx_ch = defaultdict(DatasetDict)\n","\n","for lang, frac in zip(langs, fracs):\n"," # 다국어 말뭉치를 로드\n"," ds = load_dataset(\"xtreme\", name=f\"PAN-X.{lang}\")\n"," # 각 분할을 언어 비율에 따라 다운 샘플링하고 섞기\n"," # ds는 train, validaton, test 3가지로 나옴 \n"," for split in ds:\n"," # 데이터셋에 의도하지 않은 편향이 들어가지 않도록 shuffle 함수를 사용\n"," # select() 메서드는 fracs 값을 따라 각 말뭉치를 다운샘플링\n"," panx_ch[lang][split] = (ds[split].shuffle(seed=0).select(range(int(frac * ds[split].num_rows)))) \n"," "],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":316,"referenced_widgets":["e734c6943df64bc9b362c9d9e0c502b6","639c4223827245839de246cbfd5ea107","91518d026fd04384846b34a312c29b3a","42ab3545711c441981bdb3fa56c8aaaf","fa2a7322bf9848279f8f1705bc9fbff0","6075a332159e436a9941f389f83faef0","e80b38b953b841089dfdae5c8e32352f","3b3ee66b385e4f35843edae28a14b3cf","d8ff77a6589442a09e8853bacf338586","d3ab122480fe41188319759aa9ae9afb","888b74615f464f918fac670eb9117c33","7067bd8b5bf44733918d96a9756daa16","4b9e7fe66c214dc8a225ddb580e77c8d","625c6ff8f0c94d8bb1a99ce77477d1bc","5756b4565de94768a603d2e5fc2cd012","125faa87950c42b7a105a6be57bf6cd2","a78a576d149546d1b6d0f98bd7673c8d","ff7c565e98da45758bc3d0cdfd0e940c","df5c309de3514f028322a6a526b1a35b","ecfdeacc4c7f40588c32b8a840e724f0","9a05ab36f6df4459a66e2c2bf062f32f","4d783abaa6a249ae90e2fde23897faaf","8db9618fc24444e1b1e0648188494313","3d3b01b3c93346ecba270614969ebf34","8a3884e9458a46a7bfb1e54cc2224152","bd822aed87594262a9d1d89113baabf5","b2959a54524e4e87a47eed3ef072674f","3c3f38763ed649e2bbb6b1e0464f59dd","13b27ca75d9d4f1c9f28b762e6115347","d2b00af01bd64fdf8468f95277232cb8","731076999b3b4bd0a4526cd4b7748c9b","ca3222f811b04024b165de81a833e4b7","808df7c6d141417a94d27969d0cbbfc6","8c0fd6197d7a470c9456de121a762cf0","28218e2374204431baa591bf30140eb2","61d678a0cd664e8f8e69df00ef4adb12","e1645318450e455882ea30d1aa82982f","0f2561e124974abb91fcf5bc4a969dc3","446633c15fc24e088f1bb65d7ae8771c","78ddbd182c8040aaa24992292c86bcbb","54a2baa40416436dbfd7257d46330708","7d65a0f07e9f44cc8e49a6bc2f0fb8bc","b36691f62c074bd98df7fe380538329f","dd86baaef5354a59a2929edf5293af88","528fea30282642ffa2648136daf752ed","71d6869f86474afda3a272dd407c2843","209f02896265411dac377a72f107ce67","ab57845cdfb44c39931248788b0b826e","af3597f6af5740d0b4c02785e59d3df5","e30098bf33d94a549524d3071de5067b","a38a954f35504c8abdd317e9e466876a","64d376b5e87f4433a8d3366b0052b6bb","5bbe1bb7285c4bfc85016baef496fc7b","e54d8cc778924fcb83d33fbb064558fd","aadce0950e0f402a943c5c66e867b54d","17091a06c8e645f3bf44ceb65aa500a7","eac21acf122d47d8b7eeff260f68fd56","6d802037c06e4de0aac6b7a22493afef","eb4324055c984ab8bec9fe61e1ac83c0","fc4b6af334bd4d6295ec029d91c99da8","ec2fc53ba43e4df8b7904f0a63953d59","3238151e0a8a4ec0870c71d944092119","51ddd8341abd4ac2b05c11549627c4b4","b94677eb309245f8b33cc71d3db0a7b6","d219026755154d02be51fabf80eb67bb","68e7340b165a46f9a7ccb1eb0df621ba","455d943989564ef89f404387adda250c","fe8afaa1e6ac43edbbd6cc7a9f0024a3","63e1183ed437449493fe3ef45ebe49bd","f5a8511a631249a1baf14671d91dfd09","ee1ab08c5e204e56a48074c294f9cc9e","754ad93a80754e7ab1709ea54b39e834","dd01f49f5a9741e2bd25fa3ae3d6f396","871e3fe86eb44f418726ce435002cf33","d215f260aa774297bfa27aac1ac4edd9","7b80b785f62849d699ba34c8c85bec5b","e743c66bd43740b68cdc391d16e5b58e","90247571f6a5433491df5e18e65e9679","3e1e59d2553d4cb6a38fab2b518a5fc3","77f6e964c37a4bea8a3f945ddfa13788","22f193b2cf9e49fbac719e85ec70fdba","90b911d48185465297cb680833a35bb2","d097613d715245c59c175813e1a54952","df578f31a9ad409d8e57840b7a73de19","6920ab7ce46f433db0b4e26e2cb4c238","629c3f6dff504deeab8fca554bb983e0","a75c9b9b2f5048d4be418c08f1f5d073","0e7d9985300341fe83674d71f8fa1dc8","2fdca93baefd4245ac3873186d587c6e","2ca4e13c39644af29486cdee448b49c2","f50f525537f4450b829e051d2ec85e4e","08ff1379909e430385a6691951944c77","f51e322dbcf448188e567f90ad23c30d","92da546d72cb4e9aa7e51d7568b3b0d6","a9cfcfd2516d4219bb5e9e96cead0934","f86b4c410ee8489fb7cdf310d846d103","fbc3c56a9d404e85829b50220bc86346","e2aed321379743f4b2b2766f18e5cd5a","100f02d754304132978e6ad7e85e5195","3391d8a5aaaf4e1098cce55341610356","65b01db542b64f52b036a2f19b135541","af4e2454d79e41fa84caded52f520af1","51b84b63831c47b896d3d27e8a27ce99","40b775ea8e0f4c28b36818aac6b0e03a","c7d291d758684e23ab54b56a16b796a6","605253155e8540b68c784014bc2b9cbd","5a110d07464c4d8cb03ac3a9c6583e3e","3861132317df4a3b975df7200d157868","63decd70d69f4d569f1ed374716698b7","24ff79aa2425457695361d2f0914d2e5","46981a07ed6d4e2799ceb643c28b1363","1e32312f238644d492ce20f9e17a8579","bb804f3e872d4945a15cd8411436c24e","5a874aac91974aafa0f971fd02d54384","89ea6514a9d3461aa7cf15397927df57","72f634fad40c44e18f7b6a217efadb9c","91cf4008d9d34abebbd9101af12d2c02","702ec4ca5b4641b99ca81079dc1d2f66","969fdf84f8e54e9bbcf057e339ca2b8f","00ee7fca00d148e28b780c78af929fb4","df565407eb024f88b04d85f593f34ded","ea5e3a222af7442bb5d3785c901418cc","6af251b973ee4852b8163d9488ad9c8b","df7bcb4527be4680930502bf3d887f14","96ce8787ee124601b8aceea2588646bc","7ffd938674e341ec9aeccfa19a0c54ef","d8e03239fb894f00ac44ea56377543db","6c413ef8a0b0457c892b310966d401f3","808a257d8a854dc48cf8b6ae4ceae05d","d40122b7e55240a4bb3b1d2a666663a8","6a4d7901703a4f92b8ee2840ee101a7d","84e5da56a7e44a728dabbc08e0538eff","91bf26ecbf69487ca698874a0fefd0a4","9f03c407dc594ffaac7657b50abae8d0","1d97f55fa8df45f38632c4997c794ca2","b62fc1a54c474e0c8fe57349a618f47c","78bae9a926f94518bcb1aca3ec3be8c9","db9256186b24436b9eaf495cca73b627","d1a62ffa03614022b9297f4781b01ad1","76b1268583064b7a81e2304254a4423b","b9ea0ccab4654c43b1d07f3857c1b357","5e18cbf866d64bf2b4ca1fa3744326bb","df6a4f2066874e68b41d567515f79f30","2e8c2180648c40c588ab3afe5eaabc50","29c92cd07b1842c69840456c878ff9aa","3b46df46cd854b75b4add832fb4a5d5c","e58866173b7d4ab2bc406b1a5c01b74b","4db8a430139c4501bacc5229e1f082b3","b1f1b39884cb4c5db69b19bd0add6a9c","7075e5e4c4df48a38d7e18aa1aed946e","4646986a311a49219b12f64829a1d40f","24962ba13f11459c93924d2be5bbc164","1c1c2a6884404a89804cab03bdc595b4","953c9766a4e04d309135b4e8f3eb6e04","dc9f3eeb357841538c6234a39ff3394c","14124ad253bc4479b665a066e3028563","79454f50b2e8405693c02e4044c9c477","75cb85bbcd4d40f288b20db918f0ae38","b6f0d63680f6452ab6d1c64f4197a685","66f19530c4f2471a94cd83f006783018","49a2728b072848fa97a5c267ede46e2d","cb1384b48fe4408a9fa1f5bc07823876","8486a17af7a84ea98d57fbfb01ef6bb6","eba25eb814764ab59d313c440f3d9195","19f19423672e4a8caa4e6ae065324323","c9a290e3a6cc494595310142f6816c1e","d80e8f64e23143ecb8b73a1f26fa40f7","5169f99419484e96bdd11bf9266dd710","2faa0934682c4340a5235f7fd9730643","07e0ca56e26f42b8a15f32b0dc205aeb","81986143c46e47c5aa865a97b81f36d0","4ab08dc1ba824db4b8c0cc5544e5c7b2","8fb5b6f8a36a4593a21210abcf9a5e73","5717f2f2f78b40bb957c8cb29def22db","a1040ae0475b4f53a5abcca55c414772","5f52a79dca5944c08fb04e9a1b141531","ae117bea6d4847c4aa9cfc9882ac6cc0","54da2f080e53433298f21b223ed31640","4f0ea89ad4de45ccbc7aa5785c86e6f9","65aeaff82abe493c842e740c26731ab7","1b9d54a916e4415b810e420c3e44a663","73f5868d1c7e46e2a4f16025b9e34627","7635559557334366b5150c52865c6fa9","c1f26a9477c54169bb9110d550bfbbf8","c191f19748bb45eebecc3f1063b94b8a","4f15b85b07cd466f9c5d1d2b6f42f4f4","36ffa644509c4e1a9c7234801a00edac"]},"id":"jBuarG-7xE3c","executionInfo":{"status":"ok","timestamp":1675821041700,"user_tz":-540,"elapsed":64831,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"851b37ff-848a-4a21-b8eb-fc118b2858c2"},"execution_count":5,"outputs":[{"output_type":"stream","name":"stdout","text":["Downloading and preparing dataset xtreme/PAN-X.de to /root/.cache/huggingface/datasets/xtreme/PAN-X.de/1.0.0/29f5d57a48779f37ccb75cb8708d1095448aad0713b425bdc1ff9a4a128a56e4...\n"]},{"output_type":"display_data","data":{"text/plain":["Downloading data: 0%| | 0.00/234M [00:00\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
defriten
Number of training examples12580458016801180
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n"," \n"," "]},"metadata":{},"execution_count":6}]},{"cell_type":"code","source":["element = panx_ch[\"de\"][\"train\"][0]\n","for key, value in element.items():\n"," print(f\"{key}: {value}\")"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"aKPfBEQa0QPc","executionInfo":{"status":"ok","timestamp":1675821041701,"user_tz":-540,"elapsed":32,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"735a815d-23bf-410e-90bd-23cd01707dcf"},"execution_count":7,"outputs":[{"output_type":"stream","name":"stdout","text":["tokens: ['2.000', 'Einwohnern', 'an', 'der', 'Danziger', 'Bucht', 'in', 'der', 'polnischen', 'Woiwodschaft', 'Pommern', '.']\n","ner_tags: [0, 0, 0, 0, 5, 6, 0, 0, 5, 5, 6, 0]\n","langs: ['de', 'de', 'de', 'de', 'de', 'de', 'de', 'de', 'de', 'de', 'de', 'de']\n"]}]},{"cell_type":"markdown","source":["ner_tags 열은 각 개체명이 매핑된 클래스 ID에 해당"],"metadata":{"id":"hqdQleVD14e5"}},{"cell_type":"code","source":["for key, value in panx_ch[\"de\"][\"train\"].features.items():\n"," print(f\"{key}: {value}\")"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"hM9FN5Zo19Di","executionInfo":{"status":"ok","timestamp":1675821041701,"user_tz":-540,"elapsed":27,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"b6fc3246-d49c-4660-9e7e-01d17b2ca4f5"},"execution_count":8,"outputs":[{"output_type":"stream","name":"stdout","text":["tokens: Sequence(feature=Value(dtype='string', id=None), length=-1, id=None)\n","ner_tags: Sequence(feature=ClassLabel(names=['O', 'B-PER', 'I-PER', 'B-ORG', 'I-ORG', 'B-LOC', 'I-LOC'], id=None), length=-1, id=None)\n","langs: Sequence(feature=Value(dtype='string', id=None), length=-1, id=None)\n"]}]},{"cell_type":"code","source":["tags = panx_ch[\"de\"][\"train\"].features[\"ner_tags\"].feature\n","print(tags)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"dJekic5A4myS","executionInfo":{"status":"ok","timestamp":1675821041701,"user_tz":-540,"elapsed":25,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"aea7ab1e-6eec-48b3-a022-c34fa1b2c48b"},"execution_count":9,"outputs":[{"output_type":"stream","name":"stdout","text":["ClassLabel(names=['O', 'B-PER', 'I-PER', 'B-ORG', 'I-ORG', 'B-LOC', 'I-LOC'], id=None)\n"]}]},{"cell_type":"markdown","source":["각 태그의 클래스 이름을 담은 새로운 역(ner_tags_str)을 훈련 세트에 추가"],"metadata":{"id":"gBHMZN4SA7Hp"}},{"cell_type":"code","source":["def create_tag_names(batch):\n"," return {\"ner_tags_str\": [tags.int2str(idx) for idx in batch[\"ner_tags\"]]}\n","\n","panx_de = panx_ch[\"de\"].map(create_tag_names)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":113,"referenced_widgets":["211d525aa2814de2b0559e0dba68865f","1486435bca7f495fa811be4138aba46a","32a958e5606945f3804b1a846ae17e9a","01b0dbf5c17a4adb8019f9d012430c92","5bcdcf410d0e418b83d645a0f514e1fd","40371b8e54db4d1ea5c8851b7d353943","9b3a23f11be043f0ad9d9a4ff7876167","0b837815453b420ea0eccfec7293a5f3","e981c54d25834d029685877830f3469d","3d953ad6dff14d268a8537ff39c19bd3","d0ba5d92c8c04a61b6a92e73b81af2b2","a90a1575956d471f8150a7585033ae18","a3729075e35a425b90da9a04ccf385d3","c737f90a71504bdfa60c6b64b767735c","36fe20b170df4c698e4c36346a3f0766","6d67aeddb4674c2195669854c0dc547a","302aa0a2e6d84a07a2d3d1af5894e6be","88c7be98258f4de48094f21a21e21832","42c8625242a244f6b93f54ddbb7f2fe2","46f5749cbb4644bdbd38becc552e3259","0e1811d3227849ddb8f855d7079e675b","cb2f805494394845aff0fb4e567fef50","e09e8e70bbb44f32b63f38f94066b47d","2085200a95a248a79e0ce40d4b96f476","d5d1e64b89a74cc0b4133b7dbf462676","3d04d7c1e2f547a981d78ec01746f7c0","10ed85fdb5614fe9a88e419f158a7f41","a7d15fc1f337473980bb5135ef18cf2b","c6643cdb310c45fd8dcf25afdb9084cc","3d1cd8e019d34762b3dd4062b434649d","d39c7ae79ba84ed0bfe6e6e0a24f21af","0ef37e041b0047f4ad5c5c1aec14cbb4","cdac238f7cf445cc84041d7302624626"]},"id":"gso5en67AD5T","executionInfo":{"status":"ok","timestamp":1675821045732,"user_tz":-540,"elapsed":4054,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"daf58063-f561-4511-cabc-b2b44f99fa26"},"execution_count":10,"outputs":[{"output_type":"display_data","data":{"text/plain":[" 0%| | 0/12580 [00:00\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
01234567891011
Tokens2.000EinwohnernanderDanzigerBuchtinderpolnischenWoiwodschaftPommern.
TagsOOOOB-LOCI-LOCOOB-LOCB-LOCI-LOCO
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n"," \n"," "]},"metadata":{},"execution_count":11}]},{"cell_type":"markdown","source":["태그가 불균형하게 부여되지 않았나 확인 위해 각 분할에서 개체명의 빈도를 계산"],"metadata":{"id":"-HWaM8NFBDFR"}},{"cell_type":"code","source":["from collections import Counter\n","\n","split2freqs = defaultdict(Counter)\n","for split, dataset in panx_de.items():\n"," for row in dataset[\"ner_tags_str\"]:\n"," for tag in row:\n"," if tag.startswith(\"B\"):\n"," tag_type = tag.split(\"-\")[1]\n"," split2freqs[split][tag_type] += 1\n","\n","pd.DataFrame.from_dict(split2freqs, orient=\"index\")"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":143},"id":"CvoJwwJcBHGj","executionInfo":{"status":"ok","timestamp":1675821045733,"user_tz":-540,"elapsed":25,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"296b3b4b-265a-41fb-952c-cc6835025751"},"execution_count":12,"outputs":[{"output_type":"execute_result","data":{"text/plain":[" LOC ORG PER\n","train 6186 5366 5810\n","validation 3172 2683 2893\n","test 3180 2573 3071"],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
LOCORGPER
train618653665810
validation317226832893
test318025733071
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":12}]},{"cell_type":"markdown","source":["결과를 보니 균형 있게 부여. \n","

\n","PER, LOC, ORG 빈도 분포가 대체로 각 분할에서 동일. 따라서 검증 세트와 테스트 세트는 NER 태그의 일반화 능력을 평가하는데 적절"],"metadata":{"id":"UGMvN5mAB1lU"}},{"cell_type":"markdown","source":["# 다중 언어 트랜스포머\n","다중 언어 트랜스포머의 훈련 과정과 아키텍처는 단일 언어 트랜스포머와 비슷, 다만 사전 훈련에 사용하는 말뭉치가 여러 언어의 문서로 구성될 뿐\n","

\n","다중 언어 트랜스포머 모델은 일반적으로 3가지 방식으로 평가\n","
\n","## 1. en\n","- 영어 훈련 데이터에서 미세 튜닝한 다음 각 언어의 테스트 세트에서 평가\n","\n","## 2. each\n","- 언어별 성능을 측정하기 위해 단일 언어의 테스트 세트에서 미세 튜닝하고 평가\n","\n","## 3. all\n","- 모든 훈련 데이터에서 미세 튜닝해 각 언어의 테스트 세트에서 평가\n","\n"],"metadata":{"id":"wi71g2zCCX_p"}},{"cell_type":"markdown","source":["# XLM-R 토큰화\n","XLM-R은 WordPiece 토크나이저 대신 100개 언어의 텍스트에서 훈련된 SentencePiece라는 토크나이저를 사용"],"metadata":{"id":"4FANse1eD9u2"}},{"cell_type":"code","source":["!pip install transformers"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"enKCHp9yFGm6","executionInfo":{"status":"ok","timestamp":1675821054744,"user_tz":-540,"elapsed":9035,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"9f9f1135-0bfd-45d1-bc4e-09e39cb2daee"},"execution_count":13,"outputs":[{"output_type":"stream","name":"stdout","text":["Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n","Collecting transformers\n"," Downloading transformers-4.26.0-py3-none-any.whl (6.3 MB)\n","\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m6.3/6.3 MB\u001b[0m \u001b[31m49.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[?25hRequirement already satisfied: huggingface-hub<1.0,>=0.11.0 in /usr/local/lib/python3.8/dist-packages (from transformers) (0.12.0)\n","Requirement already satisfied: requests in /usr/local/lib/python3.8/dist-packages (from transformers) (2.25.1)\n","Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.8/dist-packages (from transformers) (2022.6.2)\n","Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.8/dist-packages (from transformers) (23.0)\n","Requirement already satisfied: tqdm>=4.27 in /usr/local/lib/python3.8/dist-packages (from transformers) (4.64.1)\n","Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.8/dist-packages (from transformers) (1.21.6)\n","Requirement already satisfied: filelock in /usr/local/lib/python3.8/dist-packages (from transformers) (3.9.0)\n","Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.8/dist-packages (from transformers) (6.0)\n","Collecting tokenizers!=0.11.3,<0.14,>=0.11.1\n"," Downloading tokenizers-0.13.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.6 MB)\n","\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m7.6/7.6 MB\u001b[0m \u001b[31m102.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[?25hRequirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.8/dist-packages (from huggingface-hub<1.0,>=0.11.0->transformers) (4.4.0)\n","Requirement already satisfied: chardet<5,>=3.0.2 in /usr/local/lib/python3.8/dist-packages (from requests->transformers) (4.0.0)\n","Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.8/dist-packages (from requests->transformers) (2022.12.7)\n","Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.8/dist-packages (from requests->transformers) (1.26.14)\n","Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.8/dist-packages (from requests->transformers) (2.10)\n","Installing collected packages: tokenizers, transformers\n","Successfully installed tokenizers-0.13.2 transformers-4.26.0\n"]}]},{"cell_type":"code","source":["from transformers import AutoTokenizer\n","\n","bert_model_name = \"bert-base-cased\"\n","xlmr_model_name = \"xlm-roberta-base\"\n","bert_tokenizer = AutoTokenizer.from_pretrained(bert_model_name)\n","xlmr_tokenizer = AutoTokenizer.from_pretrained(xlmr_model_name)"],"metadata":{"id":"5OnUUkFDERfK","executionInfo":{"status":"ok","timestamp":1675821078805,"user_tz":-540,"elapsed":24081,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"colab":{"base_uri":"https://localhost:8080/","height":241,"referenced_widgets":["f1f69f016e5f4d179fc1a3a3639e194f","4f5da1ad913e472c9d77e1cdc4f8e2b6","ebd7b36421f948439548e7903ed81ee6","96f5ba8063074c748b250f3d38de52f2","31ddd298f1894a069583d6d93d2e45eb","2ead4e84970946d9859ce37da2175d3e","acd513b021d24cd4b127755190f90302","016e44c2b25545e693c1a316ad17deaf","4185518d566c42468315e518bf9fcfe7","0ed70f7d08fa49819bb9c60eafaec297","0644205b912848a7a7f77830b7258223","94f51cdae0494f0dbcf0b341047c90dc","efa3383f5b524d56ae509f4d8e278d22","fb036d925be044438f01290f948f8e02","8365cc260cba472d85e6a02ded253ca1","0e2d034462e94a178aa4cfa54343bc69","8c91896dddd142b1996ab976b14cc1c7","d582d329ca4449349a6e08e11ac7d25c","c71c37c8c3f443f88c38d94ba7a597c7","00e0165acad84074a1b02f60b8993d8c","345a8b6eefe348de982f2fe100e4b94c","57553ee721924d69b2846ab8a05e4305","4604e0047d924a839e969b1f219a8d5e","c24a2e3f6fa842b6ac52996933480550","5ee0e7b975c74d4cbdc765e7d82e2ef0","de8687af54af49b99a3f05ec8654c83d","89139f8f31c846c48a3d0b329b881bde","33cd59f8716d4f7ea40821c7774a38fa","2e793a8f212a427186a427b54c00fe33","6a6f5218d1c54be7a30777ceb4fd6b00","85f8bbb7d8b24b5a95c7fb674d6cb43a","60207316f72e435f9266225c5f6fbc19","ff8103828112408cbf16c5c6d13b2a33","f753628d026a471a8b6f7987011dfe91","670b05b90bdf4587beb6a9e1b3f998e8","8b91d4f194844d68bd81acd3438b7ba2","07e98f59b8fb4ffe9c21f62f2e1b3ae5","6ccf052943204fb7be8c2a2987237148","d94df671dfa14c02bac4f12819c0748e","d9978751d44d486b8d99c812088d29ce","c9dfffd412d045a283e46566158deee7","69e2116a570c4b61b55b7dd7ff0545e7","b991d0341ba748a5a86e36682c350a10","098f8beefedf487e8e620a33e5b4873d","5bfc16d5cd14405d969e20261f913e40","2ddc82fde5284c5fa22e80a1ded0c4de","0090c677db7045df9b5ce4935468b238","9f9f9d032e9c468990f61a9769620a6d","332ea6b461d744bdaf2edbf3048d80ea","fdcfc65469e04a4baef6def0234b3884","021e8ac000564e9692aa09f083f36704","dab4bb5c9bd44bff9e91421be0977990","6d7f64577b9c48a8848a84dfded91fe4","9d602ef4136d43f0a5b6beee8555a3bb","bc060a9491da4500b6279c7e4f8880e3","80d6515bf0e145c189303a631f4ea08f","801affdca836427988a60f8d21deda58","f83ba0cbd9cc4a1588c7e76b43f068c0","e1b3263abf434c8d94b02b0be45f9434","d97430ac276e4589b503b90886cb8a00","df18f7c7b94a40ae828ea9eac0a60b34","925a4454e6e449218c42585198563cbf","55df9e5858dd4284b40482ebfa346142","e90cebb0049341fdb70f11727cbf5e79","1d630e8957ad45728b9a539d32692cc1","f4ca2927907243ffa08b2baa44941069","d1fd8e9e28984643b4f55abd35f77840","123eb17fe6c243688872a572c2cc88ec","8cac781872fb407facc613e411f8d0c4","fc3d29bb3e2d42a696a2b51aa9e19459","784055e398204ce8a9029852e73ef5bd","bab93cded8a045f299b7374306048456","914f3a746bd547f9a951132454e7818a","c8d7f27575f1400a932be83e3b2c2e07","e4b4b462d7af44efa4be4c8e1259da99","a4017fc65bb64bb391f7f90fcad7629c","686bc45dd1384f158656a37caa5e4563"]},"outputId":"c51b37aa-7370-4d7b-a9c0-e093e4b9c23b"},"execution_count":14,"outputs":[{"output_type":"display_data","data":{"text/plain":["Downloading (…)okenizer_config.json: 0%| | 0.00/29.0 [00:00', '▁Jack', '▁Spar', 'row', '▁love', 's', '▁Net', '▁York', '!', '']\n"]}]},{"cell_type":"markdown","source":["## 토큰화 파이프라인\n","토큰화를 다룰 때 문자열을 모델에 주입할 정수로 변환하는 연산으로만 여겼지만 이는 전적으로 옳은 것은 아님. 실제 처리 파이프 라인은 아래와 같이 4 단계로 구성됨\n","\n","1. 정규화\n","2. 사전 토큰화\n","3. 토크나이저 모델\n","4. 사후처리\n","\n","1. 정규화\n","- 원시 문자열을 깨끗하게 만들기 위해 적용하는 일련의 연산, 대게 이런 연산에는 공백과 악센트가 붙는 문자를 제거하는 작업 등이 포함\n","- 유니코드 정규화(https://unicode.org/reports/tr15/)는 많은 토크나이저에서 적용하는 또 다른 일반적 정규화 연산\n","\n","2. 사전 토큰화(pretokenization)\n","- 텍스트를 더 작은 객체로 분할하며 훈련 마지막에 생성되는 토큰의 상한선을 제공\n","- 사전 토큰화가 텍스트를 단어로 분할하고 최종 토큰은 이 단어의 일부가 된다 생각하면 됨\n","- 영어, 독어 등 많은 유럽어족의 언어에서 문자열이 일반적으로 공백과 구두점을 기준 삼아 단어로 분할\n"," - 이런 단어는 파이프라인의 다음 단계에서 BPE, 유니그램 알고리즘을 사용해 부분단어(subword)로 분할하기 더 쉬움\n","\n","3. 토크나이저 모델\n","- 부분단어 분할 모델을 단어에 적용, 이 모델은 단어를 부분단어로 나눠 어휘사전의 크기와 OOV 토큰의 개수를 줄이는 역할을 함\n","- 부분단어 알고리즘\n"," - BPE,\n"," - 유니그램\n"," - WordPiece\n","\n","4. 사후처리\n","- 토큰 리스트에 부가적인 변환을 적용\n"," - Ex] 입력 토큰 인덱스의 시퀀스 처음과 끝에 특수 토큰을 추가하는 경우 등"],"metadata":{"id":"JIsrxh8oF-Q7"}},{"cell_type":"markdown","source":["# SentencePiece 토크나이저\n","유니그램이라는 부분단어 분할 방식을 기반으로 각 입력 텍스트를 유니코드 문자 시퀀스로 인코딩\n","- 일본어 등의 많은 언어에 공백문자가 있지 않는데 SentencePiece의 또 다른 고유한 특징은 공백문자가 유니코드 기호 U+2581 또는 '_' 문자에 할당 되므로 언어별 사전 토크나이저에 의존하지 않고 정확하게 시퀀스 복원이 가능 "],"metadata":{"id":"kFQNqaQgJLdW"}},{"cell_type":"markdown","source":["# 개체명 인식을 위한 트랜스포머\n","![NER_Transformer_Structure.png](data:image/png;base64,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BAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIF6Ahbs19ORRoAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEmhSwYL9JOJcRIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIF6Ahbs19ORRoAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEmhSwYL9JOJcRIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIF6Ahbs19ORRoAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEmhSwYL9JOJcRIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIF6Ahbs19ORRoAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEmhSwYL9JOJcRIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIF6Ahbs19ORRoAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEmhSwYL9JOJcRIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIF6Ahbs19ORRoAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEmhSwYL9JOJcRIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIF6Ahbs19ORRoAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEmhSwYL9JOJcRIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIF6Ahbs19ORRoAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEmhSwYL9JOJcRIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIF6Ahbs19ORRoAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEmhSwYL9JOJcRIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIF6Ahbs19ORRoAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEmhSwYL9JOJcRIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIF6AkvVS5RGgACBbhGYP39+GD9+fHjkkUfCE088EZ555pkwZcqU8NJLL4UZM2aEmTNnhtmzZ4c5c+aEuXPn1r7mzZsXer7i9Q4CBFoj0K9fv9C/f/93vgYOHBji16BBg8LgwYPD8ssvH1ZYYYWwyiqrhOHDh4e11147bLjhhmGTTTYJI0eODPF6R2cJPPXUU2HcuHG1+Dxp0qRafJ46deo78XnWrFnvxOcYp3tic/xXfO6ssdbaaggsHqdjfO6J08stt9w7cXrVVVetxekRI0bU4vSoUaPC+uuvXw2EivdCXK74AOte5QTE5coN6RIdEpeXIHGCQKkFxOVSD08ujROXc2FUCIGWCYjLLaNuW0XictvoVUygKQFxuSk2FxEgQIAAAQIECHSAwDsr1hYsZrLatAMGTBMJEMhPIC68v+WWW8LYsWPD7bffHqZNm5Zf4UoiQKCUAsOGDQujR48O++67b9h1111rC0hL2dAub1RcaB/jcozPv/nNb2oL9LucRPcJdI1A/KDVzjvvXIvTMV7HD2g52i8gLrd/DLSAQLsExOV2ydevV1yu7yOVQJUFxOVyjq64XM5x0SoCrRAQl1uh3Hgd4nLjZq4gUBUBcbkqI6kfBAgQIECAAIFqCSz4UGptrb4F+9UaV70hQCCDwCuvvBLGjBkTLrjggjB58uQMV8hCgEAVBdZYY41w2GGHhSOPPDKstNJKVexix/XptddeCxdffHE4//zzw4QJEzqu/RpMgEC+Auuuu2748pe/HA455JAwZMiQfAtXWiYBcTkTk0wEukZAXG7/UIvL7R8DLSBQJgFxuf2jIS63fwy0gECZBMTl9o+GuNz+MdACAmUSWG+99Wp/A3R/uUyjoi0ECBAgQIAAge4UsGC/O8ddrwl0tUDcUT8uAj311FPtpt/VrwSdJ7CoQNx1/+STT64tCh04cOCiiX5qiUDc8ejSSy8NJ510kt30WyKuEgKdJRB3RfrOd74TDjroIDvut2joxOUWQauGQIcKiMutHzhxufXmaiTQSQLicutHS1xuvbkaCXSSgLjc+tESl1tvrkYCnSQgLnfSaGkrAQIECBAgQKCaAhbsV3Nc9YoAgQSB8ePHh3333Tc89NBDCTmcJkCg2wU23XTTMHbs2DBy5Mhup2hp/ydNmhT233//cM8997S0XpURINB5AltvvXW48sorw4gRIzqv8R3UYnG5gwZLUwm0WUBcbs0AiMutcVYLgSoIiMutGUVxuTXOaiFQBQFxuTWjKC63xlktBKogIC5XYRT1gQABAgQIECDQmQI9C/b7d2bztZoAAQLZBeIC3M0339xi/exkchLoSoH4gZ4YK2LMcLRG4JZbbgmjRo2yWL813Goh0PEC8YM9MWbE2OEoRkBcLsZVqQSqKiAuFz+y4nLxxmogUCUBcbn40RSXizdWA4EqCYjLxY+muFy8sRoIVElAXK7SaOoLAQIECBAgQKAzBSzY78xx02oCBDIKnHnmmbWdm2fPnp3xCtkIEOhmgRgr4m7vMXY4ihW49NJLw6c//ekwffr0YitSOgEClRKIMSPGjhhDHPkKiMv5eiqNQLcIiMvFjbS4XJytkglUWUBcLm50xeXibJVMoMoC4nJxoysuF2erZAJVFhCXqzy6+kaAAAECBAgQKL9Av54mzl9w9HzvXwIECFRB4Ac/+EE49thjq9AVfSBAoA0CZ5xxRvja177WhpqrX2X8Y8rBBx9c/Y7qIQEChQpccskl4aCDDiq0jm4pXFzulpHWTwLFCojL+fmKy/lZKolANwuIy/mNvricn6WSCHSzgLic3+iLy/lZKolANwuIy908+vpOgAABAgQIEGitQL8FR6zRgv3WuquNAIEWCYwdO7a2S7bPIrUIXDUEKigQ50pXXnll2HfffSvYu/Z1KT6mOO6O/fbbb7evEWomQKASAgMGDAg33HBD2HXXXSvRn3Z1Qlxul7x6CVRPQFzOZ0zF5XwclUKAQAjicj6vAnE5H0elECAgLuf1GhCX85JUDgEC5steAwQIECBAgAABAq0SsGC/VdLqIUCg5QLjx48Pm2++eZg9e3bL61YhAQLVEhg8eHB48MEHw8iRI6vVsTb1ZtKkSWHUqFEhPnLUQYAAgTwEhg4dGsaNGxdGjBiRR3FdV4a43HVDrsMEChcQl/tGLC73zc/VBAgsKSAuL2nSyBlxuREteQkQyCIgLmdRSs4jLifbSCFAoDkBcbk5N1cRIECAAAECBAg0JtCzYL9/Y5fJTYAAgXILzJ07t7YbtsX65R4nrSPQKQIxlsQd9mNscfRNYN68ebUnn1is3zdHVxMgsKhAjCn7779/iDHG0ZiAuNyYl9wECGQTEJezOfWWS1zuTcU5AgT6KiAuNy8oLjdv50oCBJIFxOVkm7QUcTlNSDoBAs0IiMvNqLmGAAECBAgQIECgWQEL9puVcx0BAqUUOP/888NDDz1UyrZpFAECnSkQY0qMLY6+CVx66aXhnnvu6VshriZAgEAvAjG2xBjjaExAXG7MS24CBLILiMvZrRbOKS4vrOF7AgTyFBCXm9MUl5tzcxUBAukC4nK6UW85xOXeVJwjQCAPAXE5D0VlECBAgAABAgQIZBHo15Np/oKj53v/EiBAoBMFXnnllbDBBhuEadOmdWLztZkAgRILDBs2LDz55JNhpZVWKnEry9u01157LWy44YZhypQp5W2klhEg0NECw4cPD0888UQYMmRIR/ejVY0Xl1slrR4C3SsgLjc29uJyY15yEyDQuIC43JiZuNyYl9wECDQuIC43ZiYuN+YlNwECjQuIy42buYIAAQIECBAgQCC7QL8FR8xth/3sZnISIFBygTFjxlisX/Ix0jwCnSoQPwgUY4yjOYGLLrrIYv3m6FxFgEBGgfiBoBhrHNkExOVsTnIRINC8gLjcmJ243JiX3AQINC4gLjdmJi435iU3AQKNC4jLjZmJy415yU2AQOMC4nLjZq4gQIAAAQIECBBoXMAO+42buYIAgRIKzJ07N6yzzjph8uTJJWydJhEgUAWBNdZYI0ycODEMHDiwCt1pWR/mzZtXe/rJhAkTWlaniggQ6E6Bddddt/Y0lP79fS693itAXK6nI40AgTwFxOVsmuJyNie5CBDou4C4nM1QXM7mJBcBAn0XEJezGYrL2ZzkIkCg7wLict8NlUCAAAECBAgQINC7gB32e3dxlgCBDhW4+eabLdbv0LHTbAKdIhA/EHTLLbd0SnNL087bb789WKxfmuHQEAKVFoixJsYcR30Bcbm+j1QCBPITEJezWYrL2ZzkIkCg7wLicjZDcTmbk1wECPRdQFzOZiguZ3OSiwCBvguIy303VAIBAgQIECBAgEB9AVsP1veRSoBAhwhcddVVHdJSzSRAoJMFxo4d28nNb0vbmbWFXaUEulZAzEkfekbpRnIQIJCfgJiTbsko3UgOAgTyExBz0i0ZpRvJQYBAfgJiTrolo3QjOQgQyE9AzMnPUkkECBAgQIAAAQJLCvTrOTV/wdHzvX8JECDQSQIxfK288sph2rRpndRsbSVAoAMFhg0bFl5++eWw4FFFHdj69jT5Xe96V5gyZUp7KlcrAQJdJzB8+PDwwgsvdF2/G+mwuNyIlrwECPRVQFxOFxSX043kIEAgPwFxOd1SXE43koMAgfwExOV0S3E53UgOAgTyExCX87NUEgECBAgQIECAwD8EFqwzqy00s8P+P0x8R4BAhwr89a9/tVi/Q8dOswl0mkD8YND48eM7rdlta+9TTz1lsX7b9FVMoDsF4geEYuxx9C4gLvfu4iwBAsUJiMv1bcXl+j5SCRDIX0Bcrm8qLtf3kUqAQP4C4nJ9U3G5vo9UAgTyFxCX8zdVIgECBAgQIECAwD8ELNj/h4XvCBDoUIH/9//+X4e2XLMJEOhEgUceeaQTm92WNo8bN64t9aqUAIHuFhB7ksefTbKNFAIEihMQe5Jt2STbSCFAoDgBsSfZlk2yjRQCBIoTEHuSbdkk20ghQKA4AbGnOFslEyBAgAABAgS6XcCC/W5/Beg/gQoIPPHEExXohS4QINApAmJO9pFild1KTgIE8hMQe5It2STbSCFAoDgBsSfZlk2yjRQCBIoTEHuSbdkk20ghQKA4AbEn2ZZNso0UAgSKExB7irNVMgECBAgQIECg2wUs2O/2V4D+E6iAwDPPPFOBXugCAQKdIiDmZB+piRMnZs8sJwECBHISmDRpUk4lVa8Ycbl6Y6pHBDpBQFxOHiVxOdlGCgECxQmIy8m24nKyjRQCBIoTEJeTbcXlZBspBAgUJyAuF2erZAIECBAgQIBAtwtYsN/trwD9J1ABgSlTplSgF7pAgECnCIg52UfqxRdfzJ5ZTgIECOQkIE4nQ4rLyTZSCBAoTkBcTrYVl5NtpBAgUJyAuJxsKy4n20ghQKA4AXE52VZcTraRQoBAcQLicnG2SiZAgAABAgQIdLuABfvd/grQfwIVEJg6dWoFeqELBAh0isBLL73UKU1tezvF57YPgQYQ6EoBsSd52Nkk20ghQKA4AbEn2ZZNso0UAgSKExB7km3ZJNtIIUCgOAGxJ9mWTbKNFAIEihMQe4qzVTIBAgQIECBAoNsFLNjv9leA/hOogMBrr71WgV7oAgECnSIwY8aMTmlq29vJqu1DoAEEulJA7EkedjbJNlIIEChOQOxJtmWTbCOFAIHiBMSeZFs2yTZSCBAoTkDsSbZlk2wjhQCB4gTEnuJslUyAAAECBAgQ6HYBC/a7/RWg/wQqIDBz5swK9EIXCBDoFAExJ/tIscpuJScBAvkJiD3JlmySbaQQIFCcgNiTbMsm2UYKAQLFCYg9ybZskm2kECBQnIDYk2zLJtlGCgECxQmIPcXZKpkAAQIECBAg0O0CFux3+ytA/wlUQGD27NkV6IUuECDQKQJiTvaRmjVrVvbMchIgQCAnAbEnGZJNso0UAgSKExB7km3ZJNtIIUCgOAGxJ9mWTbKNFAIEihMQe5Jt2STbSCFAoDgBsac4WyUTIECAAAECBLpdwIL9bn8F6D+BCgjMmTOnAr3QBQIEOkVAzMk+UqyyW8lJgEB+AmJPsiWbZBspBAgUJyD2JNuySbaRQoBAcQJiT7Itm2QbKQQIFCcg9iTbskm2kUKAQHECYk9xtkomQIAAAQIECHS7gAX73f4K0H8CFRCYO3duBXqhCwQIdIqAmJN9pNzUzG4lJwEC+QmIPcmWbJJtpBAgUJyA2JNsyybZRgoBAsUJiD3JtmySbaQQIFCcgNiTbMsm2UYKAQLFCYg9xdkqmQABAgQIECDQ7QIW7Hf7K0D/CVRAwOLZCgyiLhDoIAExJ/tgscpuJScBAvkJiD3JlmySbaQQIFCcgNiTbMsm2UYKAQLFCYg9ybZskm2kECBQnIDYk2zLJtlGCgECxQmIPcXZKpkAAQIECBAg0O0CFux3+ytA/wlUQGDevHkV6IUuECDQKQJiTvaRYpXdSk4CBPITEHuSLdkk20ghQKA4AbEn2ZZNso0UAgSKExB7km3ZJNtIIUCgOAGxJ9mWTbKNFAIEihMQe4qzVTIBAgQIECBAoNsFLNjv9leA/hOogIBfmiswiLpAoIMExJzsg8Uqu5WcBAjkJyD2JFuySbaRQoBAcQJiT7Itm2QbKQQIFCcg9iTbskm2kUKAQHECYk+yLZtkGykECBQnIPYUZ6tkAgQIECBAgEC3CyzV7QD6T4BA5wv4pbnzx1APCHSSgJiTfbRYZbeSkwCB/ATEnmRLNsk2UggQKE5A7Em2ZZNsI4UAgeIExJ5kWzbJNlIIEChOQOxJtmWTbCOFAIHiBMSe4myVTIAAAQIE2iEwderU8KMf/SjMmTOn1+qHDh0ajjvuuF7TnCSQt4AF+3mLKo8AgZYLzJ8/v+V1qpAAge4VEHOyjz2r7FZyEiCQn4DYk2zJJtlGCgECxQmIPcm2bJJtpBAgUJyA2JNsyybZRgoBAsUJiD3JtmySbaQQIFCcgNhTnK2SCRAgQIBAXwVefPHFcNlllyUWs/zyy4cjjjhikfQJEyaEp556apFzC/8wa9ashX/0PYFCBSzYL5RX4QQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQINCvwxhtvhL/85S+Jl6+44oqJaRIIlEGgfxkaoQ0ECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKBqAhbsV21E9YcAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIESiFgwX4phkEjCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKBqAktVrUP6Q4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgbwFfv3rX4dnn30272JzLW+ppZYKBxxwQIj/OsohYCTKMQ5aQYAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKDUAueee26YOnVqYW3ca6+9wgc+8IHCyu9LwfPnzw9XXXVVX4po2bW77rprGD58eMvqU1F9AQv26/tIJUCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEBggcDzzz8fJk+eXJjFww8/XNoF+4V1uoCC+/fvX0CpimxWwGg0K+c6AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIlEzAgv1yDYgF++UaD60hQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBA0wL9+vVr+loX5i+wVP5FKpEAAQIECBAgQIAAgW4UGDBgQBg+fHhYffXVa1+rrLJKeOONN8K0adPCK6+8EqZOnRomTZoU5s+f3408+kyAAAECBAgQIECgKYFll132nTn2GmusEWbOnBni3Ds+cjo+evrFF18Mb7/9dlNlu4gAAQIEOkegCu8Hi/dhueWWCzNmzKjdN4r3juJ720svvdQ5g6KlBAhURmDx+NRpc+7F2y++VualqSMECBAgQIAAgT4J2GG/T3y5X2zBfu6kCiRAgEBjAvGGyXbbbReK+ETbnDlzwjPPPFNbHBkXTHbSUYTLvHnzwptvvhmmT58enn766doC0r6aFNHOZtp06623hrfeeqvXS4tsY6wzmj777LM1U4twex0CJwkULpDl//nvf//72sKePBsTf7nbZpttwl577RU++clPhne/+90h7Re+uHj//vvvD/fdd1+4+eabwwMPPJBnk8J6660X3vve99Yt8+GHH67FrbqZGkiMH1L40Ic+lHhFjJP//d//nZgugQCBYgXaFSOb6VWWtjZabhFz4NiGItraaN9i/qR5cJHtMwduZqRcQ4BAIwJDhgwJu+22W22evcMOO4QVV1yx7uVxsX68/3PjjTeGa665Jtx7770+JFtXTCKB6gkUOfep+j3mIu6X5PUKq8L7QaN9iHZPPfVU7b3snnvuCddff33tg2l5mSqHQJkFssTyssSsTmpr0pg3Gp/KNudutP3RQXxNejU4T4AAAQIECBCorkDa+o3q9rycPXvneQcLFtjZ5rKcY6RVBAikCBSx0D2lylyT/+3f/i2cffbZuZa5eGExxL/wwgthwoQJta+rr7463HTTTYtnK9XPrXCJO/aMHz++ZvGLX/wiPPnkkw0btKKdWRoV/3gfP4jQ29GqNr722mshLoIdN25c7et3v/tdePzxx3trUsefM23KNoSdHp+z9bIcubL8P3//+98fHn300VwaHBfmf/3rXw+f+cxnajt99qXQGDMuueSScPnll9d2VOtLWfHa+Eerbbfdtm4x8cMCW221VW6LmHbffffaH5CTKo27nsadUB2tExCne7fu1rjc6hjZu362s1namq2k5Fx5zIFj6a1oa3Iv/pGSNA9uVfu6aQ78D/XGvxOXezfr1rjcu4azUWDHHXcMRx11VNh5553DMsss0zTKc889V1u4f/rpp9d24G+6IBdWVkBc7n1oOzkut2LuE183VbzHnOf9kt5fWY2frcL7QV59mDt3brjuuuvCBRdcEOL95qoe4nLvI9vJcbn3HtU/myWWlyVmdVJbF1fPKz61a86dV/u7Jb4uPv5ZfxaXs0rJR4AAAQLdLPDNb36z9pS0ogxGjx4dPv/5zy9SfNy05OSTT17k3MI/xL8ZnXPOOQufqm0mOGbMmEXOLfzDSiutFM4666yFT2X6/oknnsiUr8hMt912W61/9eqIfV9++eXrZZHWAoEFv9/W1urbYb8F2KogQIBAuwVizF999dVrX3GB4v777x8eeuih8J3vfKd2s7tbbzrESVf0iF+nnXZa+O1vfxu++tWvhkceeaTdQ9aR9cfdPLbeeuvaV+xA3G0kLsL993//9zBlypSO7JNGEyCwqMCgQYPC0UcfXfslOO6ilMcxatSocO6554YTTzwxHHvsseGKK67Io9i6ZWy55ZbhX//1X2t/7K2bUSIBAgQqKGAOnO+gmgPn66k0At0qsOaaa4YzzzwzfO5zn8uFIJYX728cfPDB4ZRTTgnnnXde4lP5cqlQIQQIdIWAe8zFD3MV3g/y7sPAgQPD3nvvXfuK9+/j/ZxmNt4pfvTUQIBA2QXyjk+tnnPn3X7xteyvWO0jQIAAAQKdL/DhD384HHLIIU13ZMCAAU1f24oLN9xww1ZUU7eO+KGB+++/v26eOO9zlEegf3maoiUECBAg0EqBTTfdNMRd5ePi9I997GOtrLq0dcVdKf785z+H+OnCwYMHl7adndKwOHk+9NBDa39AOemkk8Kyyy7bKU3XTgIEehHYYYcdak/P+K//+q+Q12L9hasZPnx4+NnPfhbuvPPOEP/4UPQRP6gV63QQIECg2wXMgfN9BZgD5+upNAJVF4iPIz7uuONqT//La7H+wmbxQ0XxgwDxXkf8gL2DAAECeQu4x5yPaBXeD4ruQ5SOv7vEJ7wef/zx4X83pstnAJRCgEClBYqOT0XPuYtufxx88bXS/wV0jgABAgQItE0gzmOWXnrppr+WWspe5GmD99Zbb6VlCRbspxK1NIMF+y3lVhkBAgTKJxAfn3nrrbeGT3ziE+VrXBtaFBfYHHHEETWTeJPN0XeB+GilU089Ndx+++0W7fedUwkE2iJwwAEH1P4Pjxw5svD6t99++3DPPfeE97znPYXWFR+HFxcvOQgQIEAgBHPg/F8F5sD5myqRQNUE4h9KrrzyynD66acX/kjijTfeuPbB2L322qtqjPpDgEBJBNxjbn4gqvB+0Mo+xE1h4mYS8cmucfGHgwABAvUEWhmfiphzt7L94mu9V5I0AgQIECBAgEA5Bd5+++26DYt///O7c12ilie6k9FychUSIECgfALxJswNN9wQRowYUb7GtalF22yzTbjjjjvstJ+jf9zNLz7VwWQwR1RFEWiBwFFHHRUuu+yy2mLOFlRXqyK+H919991hs802K7TK/fbbzwfWChVWOAECnSZgDpz/iJkD52+qRAJVEIj3Ya6//vqwzz77tKw7cbHPVVddFb70pS+1rE4VESDQXQLuMTc+3lV4P2hHH6L0v/zLv4SxY8faKbDxl50rCHSNQDviU55z7na0P744xNeu+S+iowQIECBAgEAFBNJ22I/zU0e5BCzYL9d4aA0BAgTaJjB48OBw1llnta3+Mlb84Q9/OHz7298uY9M6tk277LJLOPDAAzu2/RpOoNsEvvnNb4Zzzz234ceMz5s3Lzz//PPhkUceCS+88EJTbKuuumptEdPQoUObuj7rRT/84Q9rj+HLml8+AgQIVF3AHDj/ETYHzt9UiQQ6WSDef/n1r38ddt1114a78eabb4ann346PPzww7V5dpx3N3LED9BffPHF4atf/Wojl8lLgACBzALuMWemqm0U0+nvB3m8p/31r38Nr7/+ena4hXJ+7nOfC//5n/+50BnfEiBA4O8CecSnds6582i/+Op/AwECBAgQIECg+gIW7HfeGC/VeU3WYgIECHSfwFNPPRXeeOONzB2Pj7RZffXVQ6OLHPfYY4+w4YYbhieeeCJzXe3M2IhL/NRgNBkyZEhDTT766KPDz3/+8/DnP/+5oes6LXMjlrFv8TW20korhVVWWaXhHfO/853vhKuvvjrMnj2705i0l0BXCey0007hu9/9buY+P/PMM+GyBTvxx93NnnzyybDwL4fLLbdcWH/99cMHPvCB2uKgzTffPFO5caf9iy66KOy9996Z8jeT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Nmy5CBDoOoF2xqc85tztbL/42nX/XXSYAAECBAgQIECghQIW7LcQW1UECBAos8Att9wSdt111zB79uwyN1PbOkQgPmoz7YiLgB0ECJRf4J577gnbb799ePHFFwtvbPyAQHwvuu222wqvqy8VxAWZX/nKV/pShGsJECBAoIIC5sAVHFRdIlCgwKmnnhqOOuqoEBfjtOJ47rnnwrbbbhseeOCBVlSnDgIEulTAPebGB74K7wet7EN834wL9Q8++ODGsV1BgEDXCbQyPkXcvOfcrWy/+Np1/z10mAABAgQIECBAoA0CFuy3AV2VBAgQKJPApEmTwmc/+9mw2267hRkzZpSpadrSwQK///3vU1u/++67p+aRgQCBcgiMGzcubLLJJuEnP/lJYQuKfvGLX4RPfepT4fXXXw/33ntvOTpepxXXX399uOmmm+rkkESAAAEC3SZgDtxtI66/BPoucP7554etttoqPPjgg30vLKGEefPmhQsvvDCMGjUqPProowm5nCZAgEDfBNxj7ptfFd4PWtGH+PeLPffcM5xwwgkhvr85CBAgkEWgFfGpyDl3K9ovvmZ5JclDgAABAgQIECBAoO8CFuz33VAJBAgQ6DiBeOMo7l689957h4022ihce+21HdcHDS63QFwEMH78+LqN3HHHHcM///M/180jkQCB8gjEHfYPOuig3BcUxV2H4gfH9tprrzBnzpxah//nf/4nvPXWW+XpfEJL4o6os2bNSkh1mgABAgS6TcAcuNtGXH8J5CNw3333hS222CIcdthh4eWXX86n0P8tpciyc22owggQ6EgB95jzHbYiY3aRZS+sUFQ9c+fODT/+8Y9rm0n88pe/XLhK3xMgQCCTQFHxKVZeZNk9nSuqDvG1R9i/BAgQIECAAAECBFojsFRrqlELAQIECCQJFLXQL95kmT59enj11Vdr/06ePDnEBZD3339/7WvatGlJTSrF+TSXuJAz7z9kN9PxtHY2U2Yz10yZMiXxsrQ2FmUZPwhy4oknJrYrJhxyyCHh17/+dd08EgkQSBdo5f/znj8OfPKTn6wttI//Dh06NL2Ri+WYOnVquPzyy8O3v/3tMHPmzEVSZ8+eHeKu/ptvvvki5994443w9ttvL3Ju8R/SLBbP35ef4w6Csf2nn356X4pxLQECBQukxYWi5kLNdKtKbW2m/81ckzQPbpel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AIFXC6RVo9XmV+fCJwQIEEirJifyanMi4UqAAIG/C6jLfhIIECCQLQF1OVv5EA0BAgTUZT8DBAgQIECAAAECBAjkScAJ+3nKpr0QIECgQQXSOl0j4XZaaCLhSoAAgVcLpFWj1eZX58InBAgQSKsmJ/JqcyLhSoAAgb8LqMt+EggQIJAtAXU5W/kQDQECBNRlPwMECBAgQIAAAQIECORRwAn7ecyqPREgQIBASYHC31grea94o62trcP7bhIgQIBA5wJOQOrcyAgCBAhkXcCvm7OeIfERINBoAupyo2XcfgkQyLqAupz1DImPAIFGE1CXGy3j9kuAAAECBAgQIECgfgQKv19pb1hsqp+QRUqAAAECBAgQIECAQD0IOAGpHrIkRgIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgVoI/POY4cKJwo4UroW4NQgQIEAgVQEnbKTKb3ECBAiUFFCfS9K4QYAAgVQE1OVU2C1KgACBkgLqckkaNwgQIJCKgLqcCrtFCRAgUFJAXS5J4wYBAgQIECBAgAABAikLFH6/4oT9lHNgeQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBDIsUBTjvdmawQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAIDUBDfup0VuYAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBPIsoGE/z9m1NwIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBITUDDfmr0FiZAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBPAto2M9zdu2NAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBFIT0LCfGr2FCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQCDPAhr285xdeyNAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACB1AQ07KdGb2ECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQyLOAhv08Z9feCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQCA1AQ37qdFbmAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgTyLKBhP8/ZtTcCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQSE1Aw35q9BYmQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgTwLaNjPc3btjQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRSE9Cwnxq9hQkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEAgzwIa9vOcXXsjQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgdQENOynRm9hAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEMizgIb9PGfX3ggQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEAgNQEN+6nRW5gAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE8iygYT/P2bU3AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEEhNQMN+avQWJkCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIE8C2jYz3N27Y0AAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEUhPQsJ8avYUJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAIM8CGvbznF17I0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIHUBDTsp0ZvYQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBDIs4CG/Txn194IECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAIDUBDfup0VuYAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBPIsoGE/z9m1NwIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBITUDDfmr0FiZAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBPAto2M9zdu2NAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBFIT0LCfGr2FCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQCDPAhr285xdeyNAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACB1AQ07KdGb2ECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQyLOAhv08Z9feCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQCA1AQ37qdFbmAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgTyLKBhP8/ZtTcCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQSE1Aw35q9BYmQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgTwLaNjPc3btjQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRSE9Cwnxq9hQkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEAgzwIa9vOcXXsjQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgdQENOynRm9hAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEMizgIb9PGfX3ggQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEAgNQEN+6nRW5gAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE8iygYT/P2bU3AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEEhNQMN+avQWJkCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIE8C2jYz3N27Y0AAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEUhPQsJ8avYUJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAIM8CGvbznF17I0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIHUBDTsp0ZvYQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBDIs4CG/Txn194IECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAIDUBDfup0VuYAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBPIsoGE/z9m1NwIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBITUDDfmr0FiZAgAAkX9yAAABAAElEQVQBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBPAto2M9zdu2NAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBFIT0LCfGr2FCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQCDPAhr285xdeyNAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACB1AQ07KdGb2ECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQyLOAhv08Z9feCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQCA1AQ37qdFbmAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgTyLKBhP8/ZtTcCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQSE1Aw35q9BYmQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgTwL9Eo211Z4JV+7EiBAgAABAgQIECBAoJYCvXr987cmG13Wb1c2yuJDAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBjAoU+mHaG2KcsJ/RBAmLAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBOpb4J/HWDphv3Qii6d5PjV/dsye93g8/dJTMW/R87Fw2YJYtGxhLG9eGitWrYjmlpXRuqY1Vre/V0db29pY+4936ZndIUCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECjSHQ1Kspiu9ehXef3n0K777Rt/Ae0G9gDOo/KAYPGBLDNxkRIzYZFeOHbxYTR0+OrcdvG5PHbl145p/tjo2BZZcECBAgUPcCyQn7//x/MA376+d09ZrVceejt8XNf7o+Zs6aEa+sWLL+AN8RIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECVRfYdNDQ2HObfeOtOx8c+2y/f3uzf9UXtQABAgQIEOihgIb9EoBLli+Oa++6Mn78+6vipVfmlxjlYwIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKDWAqM3HRvvfcPRcfjex8TQwcNqvbz1CBAgQIBA2QIa9jegal3TGtfeeUVcfMv5sXSl0/Q34PEtAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBDIjMCQgUPjYweeFIfvc2z07d03M3EJhAABAgQIJAIa9hOJwnXO/Cfi9CtPjFnPPbrOp74kQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEsiywzebbx9eOuTAmjZ2S5TDFRoAAAQINKKBh/x9Jv/mB6+O/rz4lmlubG/DHwJYJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEB9CwzoOyDOPPLceOsuB9f3RkRPgAABArkS0LBfSOf3f3dpnPfzL+UqsTZDgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQaUeDkQ78QH9jv+Ebcuj0TIECAQAYFkob9pgzGVpOQNOvXhNkiBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgJgLFA3yLvYFeBAgQIEAgSwIN2bB/8wPXO1k/Sz+FYiFAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAhUQKDbtF3sEvQgQIECAQFYEeiWBtBVeydd5vj41f3a8/9y3R3Nrc563aW8ECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKAhBQb0HRBXn3JTTBo7pSH3b9MECBAgkA2BXoVXMZKGOmG/dU1r/MeVn9Ksn42fQVEQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIGKCxQP9D39yhOj2DPoRYAAAQIE0hZoqIb9a++8ImY992ja5tYnQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEqihQ7BUs9gx6ESBAgACBtAUapmF/yfLFcfEt56ftbX0CBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgBgLFnsFi76AXAQIECBBIU6BhGvavvevKWLpySZrW1iZAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRqJFDsGSz2DnoRIECAAIE0BRqiYX/1mtXx499flaaztQkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIEaCxR7B4s9hF4ECBAgQCAtgYZo2L/z0dvipVfmp2VsXQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQCAFgWLvYLGH0IsAAQIECKQl0BAN+zf/6fq0fK1LgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIpCighzBFfEsTIECAQOS+Yb+trS1mzpoh1QQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEADChR7CIu9hF4ECBAgQCANgdw37D81f3a8smJJGrbWJECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBFIWKPYQFnsJvQgQIECAQBoCuW/Ynz3v8TRcrUmAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAhkREAvYUYSIQwCBAg0oEDuG/affumpBkyrLRMgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQKJgF7CRMKVAAECBGotkPuG/XmLnq+1qfUIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBDAnoJcxQMoRCgACBBhPIfcP+wmULGiyltkuAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAisK6CXcF0NXxMgQIBALQVy37C/aNnCWnpaiwABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEMiYgF7CjCVEOAQIEGgggdw37C9vXtpA6bRVAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAYEMBvYQbivieAAECBGolkPuG/RWrVtTK0joECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBABgX0EmYwKUIiQIBAgwjkvmG/uWVlg6TSNgkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIGNCegl3JiKzwgQIECgFgK5b9hvXdNaC0drECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAhkV0EuY0cQIiwABAg0gkPuG/dUa9hvgx9gWCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAaQG9hKVt3CFAgACB6go0QMP+6uoKmp0AAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBDItMDqNXoJM50gwREgQCDHArlv2G9rW5vj9NkaAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0JmAXsLOhNwnQIAAgWoJ5L5hf62G/Wr97JiXAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAjUhYBewrpIkyAJECCQSwEN+7lMq00RIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECiYCG/UTClQABAgRqLZD7hv1ag1qPAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgUBTTs+zkgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQJVENCwXwVUUxIgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQ37fgYIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEAVBDTsVwHVlAQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAQMO+nwECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIFAFAQ37VUA1JQECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ0LDvZ4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECFRBQMN+FVBNSYAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIENOz7GSBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAlUQ0LBfBVRTEiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABDft+BggQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQBUENOxXAdWUBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgDwICBAgQIECAAAECBAgQIECAAAECBPIpMLDfoBgxZFTJzc1fPC9Wr2kteb8RbjCKGD9iQjT1qs7ZLmvXrol5i55rhB8leyRAgAABAgQIECBAgAABAgQIECBAgAABAgQIbFRAw/5GWXxIgAABAgQIECBAgAABAgQIECBAoP4F9tvhLfHVoy8ouZHrZl4TX7zmtJL3G+EGo4gfnXpzDBm4adXSfcplH4vbHr6pavObmAABAgQIECBAgAABAgQIECBAgAABAgQIECCQZYHqHJuU5R2LjQABAgQIECBAgAABAgQIECBAgACBdoGxQ8eT6ESAUSdAZdweM2xcGaMMIUCAAAECBAgQIECAAAECBAgQIECAAAECBAjkU0DDfj7zalcECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgkLKAhv2UE2B5AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEMinQJ98bsuuCBAgQIAAAQIECBAgQIAAAQIECPRM4I3TDogvvf8bPZukQk8//tyj8dFvH1Gh2SozzZCBQ2O7CdMqM1mVZplVcFuyYnGVZjctAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgc4FNOx3bmQEAQIECBAgQIAAAQIECBAgQIBAAwr0aeoTQwYNzcTOB/UfnIk41g1i6ubbxcWfvHrdjzL39R2P/Cb+/XsfzlxcAiJAgAABAgQIECBAgAABAgQIECBAgAABAgQIEGgcAQ37jZNrOyVAgAABAgQIECBAgAABAgQIECDQUAKDBwxpqP12d7Pf/MWXY/zwCd19vNPnHpn7YKdjDCBAgAABAgQIECBAgAABAgQIECBAgAABAgQI5FVAw35eM2tfBAgQIECAAAECBAgQIECAAAECBAgQKEPgupnXlDHKEAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAge4INHXnIc8QIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECHQto2O/Yx10CBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQINAtgT7despDBAgQIECAAAECBAgQIECAAAECBBpcYM78J+LhuQ9URGHY4OGx7/ZvrshcJiFAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAIDsCGvazkwuRECBAgAABAgQIECBAgAABAgQI1JHAvX+9K7720y9UJOJtJ0yru4b92c8/Hp++5Lhu73/kkFFx5pHndPj8aZefEM0tKzsc09HNJSsWdXQ7V/f2fu2b4pwPfjdXe5q/+Pk49Kv75WpPNkOAAAECBAgQIECAAAECBAgQIECAAAECBAg0noCG/cbLuR0TIECAAAECBAgQIECAAAECBAgQ6LHAkhWL486/3NbteaaMm9rps/fPnhkLly3odJwBEU29mmJAvwG5oujXt3+u9mMzBAgQIECAAAECBAgQIECAAAECBAgQIECAQGMKNDXmtu2aAAECBAgQIECAAAECBAgQIECAAIE0BcYOG9/p8iOGjOx0jAEECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEsiygYT/L2REbAQIECBAgQIAAAQIECBAgQIAAgZwKjBk6rtOdjRoyptMxBhAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBDIsoCG/SxnR2wECBAgQIAAAQIECBAgQIAAAQIEciowdvhmne5suy126HSMAQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgSyLKBhP8vZERsBAgQIECBAgAABAgQIECBAgACBnArsOmWPTne2xzZ7dzrGgPwKtLW15XdzdkaAAAECBAgQIECAAAECBAgQIECAAAECBAg0jECfhtmpjRIgQIAAAQIECBAgQIAAAQIECBAgkAmBoYOGxS5lNOzvNHm3GNBvYDS3rMxE3FkO4umXnorv/fqCiof4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AAECBAgQyIDArQ/9Ku55fEa8d++jC6ftfyRGDhmdgajWD2HuS0/FJTd/K351/3Xr3/AdAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQCAnAhr2c5JI2yBAgAABAgQIECBAgAABAgQIECBAgMCGAstXLYvLb/tO/PCOy+LQPQ6Pt+56SOyw5S7Rp3d6fzTc3NIctz50Y1w38+p44Ik/bBiy7wkQIECAAAECBAgQIECAAAECBAgQIECAAAECuRJI77/K5IrRZggQIECAAAECBAgQIECAAAECBAjUt8DatWursoFXViyJ519+pipz12LSBUtfrMUyVV+jZfWquPb3V7W/B/ffJHaf+obYa9t9Y4+p+8SEkROjqampajGsXLUi/jz3T/GnJ/8YDxbeD825P1a2rKjaeiYmQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECGRJoFcSTFvhlXydp+vO/z4xT9uxFwIECBAgQIAAAQIECBAgQIAAgQwJ7Lb1XjF+xIQMRdT9UH7z4C+juWVl9yfwZN0K9O3dLzYfuUVsMWpSbDF6UkwsXMcOGx+D+g+OAf0GxsB+gwrXAf+4Dow+TX2jZXVzNLc2x6r296r2n53iz8+LS16I5xc9G/MWPhfz/nF9ZsGcWLN2Td36CJwAAQIECBAgQIAAAQIECBAgQCA/An/61tP52YydECBAgEDmBXoVXsUgnbCf+VQJkAABAgQIECBAgAABAgQIECBAIKsC982+J6uhiYtA2QKta1pizotPtL/LfshAAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBsgSq9+8cl7W8QQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAIJ8CGvbzmVe7IkCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIGUBTTsp5wAyxMgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAPgU07Oczr3ZFgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAikLaNhPOQGWJ0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIF8CmjYz2de7YoAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEUhbQsJ9yAixPgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAvkU0LCfz7zaFQECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAikLKBhP+UEWJ4AAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE8imgYT+febUrAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEEhZQMN+ygmwPAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAjkU0DDfj7zalcECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgkLKAhv2UE2B5AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEMingIb9fObVrggQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEAgZQEN+yknwPIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgkE8BDfv5zKtdESBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEDKAhr2U06A5QkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEAgnwIa9vOZV7siQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgZQFNOynnADLEyBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEA+BTTs5zOvdkWAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECKQto2E85AZYnQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgXwKaNjPZ17tigABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgT+P3v3AmxnVd+NfyU5ud9jSEJikIsSJGguBos1Mu94KYwjiOOg1f7F8cLQQamjtladOtS2Q99q62ixxbc61r9aufxrUetYKYoj6AiCECBcgnIRTDAJuRByOclJzvmztt28CeScvfc5+9nPep712TN79snZz17rtz7f8/w4W9d+DgECBAgQIECAQMkCtd+wP35c7ZdY8o+Q6QkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQNoC9hKmnY/qCBAgUGeB2u9m9x/ZOv/4WhsBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEGgtYC9hayNHECBAgEAxArXfsD/OFfaL+ckxKgECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQqIiAvYQVCUqZBAgQqKFA7Tfs903oq2FslkSAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAi0K2AvYbtSjiNAgACBbgtksGF/YrfNjEeAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAhUSKBvgr2EFYpLqQQIEKiVQO037E/0H9la/cBaDAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ6FTAXsJOxRxPgAABAt0SqP2G/SmTpnbLyjgECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBABQXsJaxgaEomQIBATQRqv2F/2uRpNYnKMggQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIHRCNhLOBo1ryFAgACBbgjUfsP+9Ckzu+FkDAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKCiAvYSVjQ4ZRMgQKAGArXfsD93xrwaxGQJBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAwGgF7CUcrZzXESBAgMBYBWq/YX/ejPljNfJ6AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoMIC9hJWODylEyBAoOICtd+wf+zcxRWPSPkECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIDAWATsJRyLntcSIECAwFgEar9h/7hjThiLj9cSIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECFRewl7DiASqfAAECFRao/Yb9Fx57SoXjUToBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECAwVgF7Cccq6PUECBAgMFqB2m/YP2HhC8OsabNH6+N1BAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQIUF4h7CuJfQjQABAgQIlCFQ+w3748aNC2csO7MMW3MSIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECJQvEPYRxL6EbAQIECBAoQ6D2G/Yj6tmrzi3D1pwECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAyQL2EJYcgOkJECCQuUAWG/Zftfw14ZhZCzOP2vIJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEBeAnHvYNxD6EaAAAECBMoSyGLDft+EvnD+K99RlrF5CRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgRIE4t7BuIfQjQABAgQIlCWQxYb9iPuWtReEmVNnl+VsXgIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKCHAnHPYNw76EaAAAECBMoUyGbD/uzpc8JFZ32gTGtzEyBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAj0SiHsG495BNwIECBAgUKZANhv2I/JbXvXOsGzJ8jK9zU2AAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgULBD3CsY9g24ECBAgQKBsgaw27E+cMDH87QWXhykTp5Ttbn4CBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgAIG4R/B/X/D5lp7+UgAAQABJREFUEPcMuhEgQIAAgbIFstqwH7FPWPjCcOnb/r5sd/MTIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBQjEPYLHLzypgJENSYAAAQIEOhfIbsN+JDp79bnhw+d9onMtryBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgSSFYh7A+MeQTcCBAgQIJCKQJYb9iP+//O/LrRpP5WfQnUQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIExCsTN+nFvoBsBAgQIEEhJYFyzmKGnb82vc3r8/u3fCZ+88k9D/0B/Tsu2VgIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgUAuBKROnhEvf9veurF+LNC2CAAEC9REY9/Qtrib7DfsR4eHNvwof++olYcPGe+I/3QgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIEKCCxbsjz87ws+H45feFIFqlUiAQIECOQkYMP+s9IeODQQrrnp/w3/57rPhaf2PfmsZ/2TAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQSEVg5tTZ4aKzPhDe8qp3hokTJqZSljoIECBAgMAzAjbsP0Nx5BdP7tkZrvnJV8P/99Ovha27Nh/5pH8RIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECpQkcM2thOP+V7whvWXtBmD19Tml1mJgAAQIECLQSsGG/hdDBQwfDTff8MHz/ju+EmzfcGHbtddX9FmS1e3pgz6HGmiZOn1C7tVkQAQIERiOgL45GzWsIEMhBQH/MIWVrJEBgNAL642jUvIYAgRwE9MccUrZGAgQ6EdAXO9FyLAECOQnojzmlba0ECHQioD92olWvY2dNmx3OWHZmOHvVueFVy18T+ib01WuBVkOAAAECtRSwYb+DWIeGhsLDm38VfvX4/eHRrQ+Hx3dsCtt3PxF27N4e9vQ/Ffbu3xv6D+wLA4cGwsHG/WAYGhoMg/9z72AqhyYksPGm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AhkK2LCfYeiWTIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQLFC9iwX7yxGQgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEAgQwEb9jMM3ZIJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoHgBG/aLNzYDAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECGQoYMN+hqFbMgECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgUL2DDfvHGZiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBDAVs2M8wdEsmQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgeIFbNgv3tgMBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIJChgA37GYZuyQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBQvIAN+8Ubm4EAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEMhSwYT/D0C2ZAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBIoXsGG/eGMzECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgECGAjbsZxi6JRMgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBA8QI27BdvbAYCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQyFDAhv0MQ7dkAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEChewIb94o3NQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIZCtiwn2HolkyAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECxQvYsF+8sRkIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAIEMBG/YzDN2SCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKB4ARv2izc2AwECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAhkKGDDfoahWzIBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIFC9gw37xxmYgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgQwFbNjPMHRLJkCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIHiBWzYL97YDAQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCQoYAN+xmGbskECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgULyADfvFG5uBAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBDIUsGE/w9AtmQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgSKF7Bhv3hjMxAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAhgI27GcYuiUTIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQPECNuwXb2wGAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEMhQwIb9DEO3ZAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAoXsCG/eKNzUCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECGQrYsJ9h6JZMgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAsUL2LBfvLEZCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQCBDARv2MwzdkgkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgeAEb9os3NgMBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIZChgw36GoVsyAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBQvYMN+8cZmIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIEMBWzYzzB0SyZAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACB4gVs2C/e2AwECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgkKGADfsZhm7JBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIFC8gA37xRubgQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQyFLBhP8PQLZkAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEihewYb94YzMQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQIYCNuxnGLolEyBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEDxAjbsF29sBgIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBDIUMCG/QxDt2QCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQKF7Ahv3ijc1AgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAhkK2LCfYeiWTIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQLFC9iwX7yxGQgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEAgQwEb9jMM3ZIJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoHgBG/aLNzYDAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECGQoYMN+hqFbMgECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgUL2DDfvHGZiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBDAVs2M8wdEsmQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgeIFbNgv3tgMBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIJChgA37GYZuyQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBQvIAN+8Ubm4EAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEMhSwYT/D0C2ZAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBIoXsGG/eGMzECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgECGAjbsZxi6JRMgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBA8QLjmlMMPX1rfu2RAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQGJ3AuKdv8ZWu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r14d5s2b1/E47b7gm9/8ZogfLhjudsoppzRqGO553x9e4M///M8bH9YY7oglS5aEyy67bLinfb+iAjbsVzS4nMueMmVKaPdPlsQN9L3asD937ty264rHfvvb3845RmsnQKAAAf2xAFRDEiBQeQG9sfIRWgABAgUJ6I8FwRqWAIFKC+iNlY5P8QQIFCigPxaIa2gCBCoroDdWNjqFEyBQsID+WDCw4QkQqIxAvIL69ddfH2699dbw+OOPd6XuePX9Rx99tHH/yU9+Er7+9a+Hk08+OZxxxhnh5S9/eZgxY0ZX5mkO8sMf/jDs2bOn+c/nPMYPHcQPDbgRINCegA377Tk5igABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgMBRBXbu3Bm+973vhR/96EfhwIEDRz2mW9+MG+Y3bNjQuF999dXh3HPPDX/wB38QJk6c2K0pjEOAQBcFbNjvIqahCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE8hK4/fbbw5e+9KURr0pflEh/f3+45pprGh8UeMc73hFWrFhR1FTGJUBglAI27I8SzssIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgTyFrjyyivD97///dIRtm7dGj7zmc+Et7/97eGss84qvR4F1E/gH//xH0P8OSvqdv7554eXvvSlRQ1f6rg27JfKb3ICBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIEqCnzrW99KYrP+4Xbf+MY3woEDB8I555xz+Ld9nYjA0NDQiJUMDAyM+HyZTz7++ONh06ZNhZVw11132bBfmK6BCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECFRI4NZbbw3XXnttxxUvXLgwnHrqqWHOnDlh5syZjfusWbPC5MmTw969e8NTTz31zH379u1h/fr1YceOHR3N881vfjOcfPLJYdmyZR29zsHFCgwODob+/v4RJ9m5c+eIz3uymgKusF/N3FRNgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBQgkDceH311Ve3PfMJJ5wQ1qxZE1avXh0WL17c9uuaBz788MNh3bp1IX5IYOPGjc1vD/sYr+L+pS99KXzqU58K48aNG/Y4T/RWYPfu3aHVFfbjX0eIm/qnTJnS2+LMVqiADfuF8hqcAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgTgJx4/zWrVtbLmn27NnhggsuaGzWb3nwCAfEDf/xft5554WbbropXHnllY2r8Y/wkrBly5bG1flf8pKXjHSY53ooEP96Qju3+JcVRvPBjnbGdkw5AuPLmdasBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBKoncPvtt7cseu7cueEv/uIvxrxZ//CJ4tXyzzzzzPDRj340TJs27fCnjvr1LbfcctTv+2Y5Ar/5zW/amvi+++5r6zgHVUfAhv3qZKVSAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBkgXi1etb3d7xjneEBQsWtDpsVM+/4AUvCG9+85tbvnbz5s0tj3FA7wTa3Yh/55139q4oM/VEoK8ns5iEAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQA0Etm7dOuIqJk6cGFavXj3iMWN98owzzghf+9rXRhzmwIEDIz7vyd4K3H///W1NGDf279+/P0yePLmt40dz0I4dO8KPfvSjEV/64he/OCxatGjEYw5/8vTTTw8XXnjh4d/q6OsJEyZ0dHyVDrZhv0ppqZUAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKBUgb6+kbffDg0NhXgfN25cYXUODg62HHtgYKDlMQ7ojcBjjz0WHn/88bYmix+0iJvpzz777LaOH81BsZavfOUrI740br7vZMP++PHjC/2QwYjFJv7k+MTrUx4BAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBZASOOeaYEWs5ePBguOmmm0Y8ZqxP3nDDDS2HaFVnywEc0DWB6667rqOxvve97wUfuOiILOmDbdhPOh7FESBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIpCSwZMmSluV84xvfCPfff3/L40ZzwG233Rb+8z//s+VLFy9e3PIYBxQvsGvXrnDzzTd3NNGTTz4ZfvjDH3b0GgenK2DDfrrZqIwAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQCAxgVe96lUtK+rv7w+f/vSnw7//+7+H+HU3brt37w5f/epXw+c///kQr+Lf6tZOna3G8PzYBeLPwGiulh9ft2nTprEXYITSBfpKr0ABBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBCoicNJJJ4UTTzwxPPTQQyNWHDfVxyvhX3fddeHUU08NK1euDCtWrAjz5s0b8XWHP7l58+awbt26cOeddzau2H/o0KHDnx7261WrVgVX2B+Wp2dP3HvvveHHP/7xqOaLm/yvuOKKcOmll4a+Plu+R4WYyIukl0gQyiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEKiGwIUXXtjYSH3gwIGWBcdj4qb7eI+3RYsWhdmzZ4eZM2c+c588eXLYu3dviFfRf+qppxr3HTt2hCeeeKLl+M8+YMaMGeHtb3/7s7/t3z0W2LNnT/jyl788plkfffTRcPnll4eLL744xJ8Rt2oK2LBfzdxUTYAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgUJJAvHr9e97znvCFL3whDA0NdVTFb3/72xDvRdwmTJgQ/uRP/iQsWLCgiOF7Mmb80ELc7L5w4cKezFfEJPFDGp/73OfC1q1bxzx8/KDH3/3d34UPfehDIX4Yo1u35cuXjzjUnDlzRnzek+0L2LDfvpUjCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECDQEzjjjjDBlypTwz//8z2H//v2lq8yaNSv88R//cVi2bFnptbRTwODgYIh/ReDXv/71Efft27eHJUuWhMsuu6ydYZI7Jq4rfpBjw4YNLWuLH/q48sorG39dYaSDH3zwwfDXf/3X4U//9E/DMcccM9KhbT136qmnho985CNtHeugsQvYsD92QyMQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAhkKLBy5crwiU98Inzta19ra4N2UURxA/ZFF10UyroqeryifLzHDy7Ee/Pr5uOuXbtC3Ii/bdu2Z+5xs/6hQ4eOShL/AkHc+D5+/PijPp/qN/fu3RuuuOKKcNddd7Uscf78+WHt2rUNr69//estj48mcdP+hz/84fCCF7yg5fG9PuCWW25pZDyaec8///xRf9Dk2T9Dnf7Fi9HU2+lrbNjvVMzxBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBP5HYOnSpeHjH/94uP3228NVV10VNm/e3LmQH3gAAEAASURBVDObF73oReGcc84JK1as6NmcN910U2Oth2/O7/bkcRP2li1bwqJFi7o9dGHjPf744+Gzn/1siBvr27n94R/+YeMDCa997WvDPffcE+64446WL3vyySfD3/zN3zQyP/vss8OkSZNavqaXB/zyl78c1XTx3BnNX4bYuXNnePe73z2qOXv5Ihv2e6ltLgIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgVoKrF69OsQr7t93333h5z//ebjtttvC7t27u77WuXPnNuY544wzwimnnNL18VsNuG/fvhDvRd/iBvjDN+yPGzeu6ClHNX786wHf/e53ww033BAGBgbaGiP+RYTTTz+9cWxcV/zrCJ/85CdDXHOrW/yrBd/85jfDj3/84/CmN70pvPzlL09u436rNeT2vA37uSVuvQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAoUIjB8/Pixfvrxxv+CCC8KGDRvCww8/HB577LHGPW7IjlePb/cWr6B+7LHHhsWLF4fnP//54bTTTgvHH398uy+v9HHRatWqVcmuIX4Y43vf+164/vrrQ9xE3+5twYIF4eKLLz7i8KlTp4YPfvCD4dOf/nTYunXrEc8N948nnngifPGLXwzf+MY3wplnnhniFfvd0hSwYT/NXFTVJYH4H6pzzz23S6ONPEz8D6EbAQIEqiKgP1YlKXUSINBLAb2xl9rmIkCgSgL6Y5XSUisBAr0S0Bt7JW0eAgSqJqA/Vi0x9RIg0AsBvbEXyuYgQKCKAvpjFVNTMwECoxGYMGFCiFdSj/fm7eDBg+HJJ59sXKG+eaX6+BivzB7745QpU565T58+PcybNy+kemX55pqKety0aVNRQ49p3D179oTvf//74b//+79Df39/R2NNmzYtfOhDHwozZ858zusWLlwYPvGJT4TPfOYz4ZFHHnnO88N9I9bz0EMPDfe07ycgYMN+AiEooTiB+Em1F7zgBcVNYGQCBAhUVEB/rGhwyiZAoFABvbFQXoMTIFBhAf2xwuEpnQCBwgT0xsJoDUyAQMUF9MeKB6h8AgQKEdAbC2E1KAECNRDQH2sQoiUQIDBqgb6+vvC85z1v1K/P6YXxCvYp3v7jP/4j/OAHP+i4tPgBjksuuaTxFxOGe/Hs2bPDxz72sXD55ZeH9evXD3fYEd+PH+y46KKLjvief6QlYMN+WnmohgABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEA2AvEvCMyfPz8sXry4cT/hhBPCiSeeGI455pgkDd74xjeG2267LezcubPt+uIa3/3udx/x1xaGe3H8Kwsf/OAHw5e//OXw05/+dLjDnvn+e9/7Xh8CeUYjzS9s2E8zF1URIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAiUJPDkk0+Ge++9t6TZi502XuH/5JNPLnaS/xk9XlU+XgF+zpw5Yd68eY373Llzj3iM9UyaNKkn9XRjklmzZoX3ve994W//9m/D4OBgyyFnzpwZLr744rY26zcHi3+J4cILL2x8gOHaa68NBw8ebD51xOPrXve6sHr16iO+V9Y/Vq1aFd71rneNavrJkyeP6nXxRfFn7PDb0NBQW7kc/pqiv7Zhv2hh4xMgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECFRKYOPGjeELX/hCpWput9h4tfd/+qd/amykP9pr4hXbH3rooaM9FeJrx48f37hPnDgxNO9xw/W0adMaY8bH5r2bG/HjRuxUbvEDD+eff364+uqrRyzppJNOCu9///sbH1AY8cCjPBmt3/CGN4SXvexl4V//9V/Dhg0bjjjquOOOC29961uP+F6Z/4hZz549u6clxA+CfO5znztizp///OeNn+8jvlnyP2zYLzkA0xMgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBDolUCrK5DHK7anctX2XpmMZp7Xv/714YEHHgh33HHHUV/+2te+NrztbW8L8Wr5Y7kde+yx4WMf+1i49dZbw3e/+93w61//OsQPSMSr/McPTLilLzC2n4D016dCAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIdF3gwgsvDJdeemnYunVrY+x4Vfw1a9aEN77xjWHp0qVdmy+O+/KXv7xxv+eee8KECRPCokWLuja+gYoVsGG/WF+jEyBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECDQA4GpU6f2YJb/O8X06dPD+9///nDZZZeFVatWhXPPPTcsWbLk/x5QwFfLly8vYFRDFilgw36RusYmQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQGDMAvGK8v/wD/8w4jjz5s0b8fkinjz++OPDv/zLvxQxdGFjzpgxo7CxDfxcARv2n2viOzUTOHDgQE9WFP+8SLy7ESBAoCoC+mNVklInAQK9FNAbe6ltLgIEqiSgP1YpLbUSINArAb2xV9LmIUCgagL6Y9USUy8BAr0Q0Bt7oWwOAgSqKKA/VjE1NRMgQKBcgb6+vjB//vxyiyhg9qGhobB9+/bw29/+NmzatCls3bo17Nu3L/T394f9+/c3Hg8dOhQmTZoUJk+eHKZMmdK4x6v7H3vssSF+kCE+xn83bx/84AfDwYMHm/98zuPixYuf8z3fKE7Ahv3ibI2cgEBsVl/84hd7Uskpp5wSXve61/VkLpMQIEBgrAL641gFvZ4AgToK6I11TNWaCBDohoD+2A1FYxAgUDcBvbFuiVoPAQLdEtAfuyVpHAIE6iSgN9YpTWshQKCbAvpjNzWNRYBAUQKzZ88Ov//7v1/U8KWPGze/d3Lbu3dv+NnPftbJS0o5dtWqVaGMq+x3utht27aFO++8s3G/7777GhvzOx3j2cfPnTs3vOQlLwkrVqwIy5cvD1OnTn32If5dkkBnZ1tJRZqWAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQK8ElixZEi666KJeTZf8PLt27Qpf/epXk69zYGAgnH322UnWGa+kv27duvDd7343/OpXv+p6jTt27Ag33nhj4z5hwoRw+umnhze84Q1h6dKlXZ+rqAHjXxYYHBw84q8FFDVXL8e1Yb+X2uYiQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKAQgbjZO8Xb+vXrw1VXXRUee+yxnpR36NChcPPNNzfuK1euDH/0R38UFixY0JO5R5pk//79IW7K3759e+Me/9LAE088ETZu3Bg2bdoU4ocO1q5dGy688MKRhqncczbsVy4yBRMgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgkLpA/ADBtddeG77zne+UVmq8qv+GDRvCe9/73rBmzZrC6rjllltC/EsM8er+8QMDzc35/f39oXmPf2Wg1W3r1q2tDqnc8zbsVy4yBRMgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECJQlcOedd4b77rtvxOnf8pa3hPHjx494jCfrLRA363/2s58N8eel7Fu8qv3ll18e3vrWt4bXv/71hZXT6rxoZ+ItW7a0c1iljrFhv1JxKZYAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKBMgXi18v/6r/8asYQ3v/nNNuyPKFT/J6+55pokNusfLn311VeHxYsXh5UrVx7+7aS+3rFjRxgYGAgTJ05Mqq6xFGPD/lj0vJYAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAzQXGjRtX8xV2d3nxqvqtPtRxtBmXLl0aXvziF4dZs2aFmTNnPnOPG9jjbffu3eGpp55q3Ldt2xbuvvvusHPnzqMNNez3rrjiivCpT30qzJ49e9hjyn5i69atjQ8WlF1Ht+a3Yb9bksYhQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgUEOBhQsXhne+850hXv28rNuTTz4ZfvzjH5c1fUfzdrJZf9myZeH0008Pq1atCvPnz+9onqGhofDII4+EdevWhVtuuSU8/vjjLV/f398ffvSjH4Xzzjuv5bFlHWDDflny5iVAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoBSBV7/61aXM25w0Xkm+Chv2f/Ob34T77ruvWfawjzNmzAjvec97wurVq4c9ptUT8S8fnHDCCY37ueeeG66//vpwzTXXhEOHDo340htuuCGcc845YcKECSMe1+sn418VeP7znx+mT5/e66kLnc8V9gvlNTgBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABArkI/PKXv2y51ClTpoSPfvSjYenSpS2PbfeAuPn+7LPPblyl//LLLx/xZfGvFcSr2C9atGjE47r1ZKxt6tSpYdq0aSF+UGHOnDmN+9y5c0O8P+95z2ts1J81a1a3pkxqHBv2k4pDMQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIVFUgboRvdXv961/f1c36h8+3Zs2aEO+33Xbb4d9+ztdbtmzpaMP+Bz7wgbBv377G1fvjFfzjfXBwMAwNDTWu1N/X19d4jJvz433ixIkhfjAhbtKfNGnSc+bP6Rs27OeUtrUSIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIFCYwLZt21qOfdppp7U8ZiwHxPFbbdg/cOBAR1P06mr8HRVVkYPHV6ROZRIgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQCBpgXhl+Va3/v7+VoeM6fn9+/e3fH2nG/ZbDuiAYQVs2B+WxhMECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBoX+CYY45pefAPfvCDlseM9oCDBw+GG264oeXL58+f3/IYB3RHwIb97jgahQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBzAUWLlzYUuD2228P3/rWt1oe1+kBcbP+F77whbB58+aWL12wYEHLYxzQHYG+7gxjFAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEosD27dtDX1+523QnTpwYZs2aJZAeC6xYsSJMmTIl9Pf3jzjztddeG375y1+Gt771reG4444b8dhWTw4ODoa77747XHXVVWHTpk2tDg/Lli0Lc+bMaXmcA7ojUG4n6M4ajEKAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEAgGYGPfOQjpdcSN2V//OMfL72O3AqYOnVqWLt2bfjBD37Qcunr168P8X7MMceElStXNu4xt/hhi1a33bt3Nzbpr1u3rvG4Z8+eVi955vmzzjrrma99UbyADfvFG5uBAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIFMBM4999xw2223hZ07d7a14q1bt4brr7++cY8vmDZtWpgxY0bjPnPmzMYG/r1794a4Sb95P3DgQFtjP/ugU089NaxaterZ3/bvAgVs2C8Q19AECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECOQlMHv27HDJJZeEyy67LBw6dKjjxcfN+fG+ZcuWjl870gsWLFgQ3ve+94Xx48ePdJjnuixAu8ughiNAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAIG+BF77wheEDH/hA42r5KUgsWbIkfPjDH25ctT+FenKqwYb9nNK2VgIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEeiKwYsWK8Jd/+Zdh6dKlPZlvuEnWrl0bLr300rBo0aLhDvH9AgX6Chzb0AQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEMhWYOHCheGv/uqvws9+9rPw7W9/O2zevLlnFsuXLw/nnHNOePGLX9yzObs50fOf//xw3nnnhV27dh112OnTpx/1+6l904b91BJRDwECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQLICL3rRiyqxAfq0005L1jC3wsaPHx9e+cpXhle84hXh1ltvbdzvvvvu0N/f33WKuXPnhpUrV4YzzzwznHjiiV0fv5cDRrc3velNvZyykLls2C+E1aAECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQJ1FFi1alWId7feCsTN21W/xTX83u/9XuN+8ODB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xCagP8aWiHoIEIhFQH+MJQl1ECAQm4D+GFsi6iFAoGgBfbHoBIxPgECsAvpjrMmoiwCBogX0x6ITMD4BAgQIECBQhIA77BehbsxoBcY+ydKwttHR0YbbbSRAgEDVBPTFqiVqPgQIdEpAf+yUpPMQIFA1Af2xaomaDwECnRLQHzsl6TwECFRFQF+sSpLmQYBApwX0x06LOh8BAlUR0B+rkqR5ECBAgACB9ATGfo8ZX5jcm97UzZgAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECOQvYMF+/sZGIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIEEBSzYTzB0UyZAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACB/AUs2M/f2AgECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgkKCABfsJhm7KBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIJC/gAX7+RsbgQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQSFLBgP8HQTZkAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE8hewYD9/YyMQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQIICFuwnGLopEyBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgED+Ahbs529sBAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBIUMCC/QRDN2UCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQyF/Agv38jY1AgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgkKWLCfYOimTIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQL5C1iwn7+xEQgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEAgQQEL9hMM3ZQJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAIH8BC/bzNzYCAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECCQoYMF+gqGbMgECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAjkL2DBfv7GRiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBBAUs2E8wdFMmQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgfwFLNjP39gIBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIJCggAX7CYZuygQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCQv4AF+/kbG4EAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEEhSwYD/B0E2ZAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBPIXsGA/f2MjECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgECCAhbsJxi6KRMgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBA/gIW7OdvbAQCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQSFDAgv0EQzdlAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEMhfwIL9/I2NQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIJCliwn2DopkyAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEC+QtYsJ+/sREIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAIEEBC/YTDN2UCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQCB/AQv28zc2AgECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgkKGDBfoKhmzIBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI5C9gwX7+xkYgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgQQFLNhPMHRTJkCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIH8BSzYz9/YCAQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCQoIAF+wmGbsoECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgkL+ABfv5GxuBAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBBIUsGA/wdBNmQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgTyF7BgP39jIxAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAggIW7CcYuikTIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQP4CFuznb2wEAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEEhQwIL9BEM3ZQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBDIX8CC/fyNjUCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECCQpYsJ9g6KZMgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAvkLWLCfv7ERCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQCBBAQv2EwzdlAkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEAgfwEL9vM3NgIBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIJChgwX6CoZsyAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECOQvYMF+/sZGIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIEEBSzYTzB0UyZAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACB/AUs2M/f2AjLmJ6SAABAAElEQVQECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgkKCABfsJhm7KBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIJC/gAX7+RsbgQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQSFLBgP8HQTZkAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE8hewYD9/YyMQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQIICFuwnGLopEyBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgED+Ahbs529sBAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBIUMCC/QRDN2UCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQyF/Agv38jY1AgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgkKWLCfYOimTIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQL5C1iwn7+xEQgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEAgQQEL9hMM3ZQJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAIH8BC/bzNzYCAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECCQoYMF+gqGbMgECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAjkL9BTG2J07FH72jMBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECDQnkDP2CM70h322/NzFAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQaChgwX5DHhsJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEB7Ahbst+fmKAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0FDAgv2GPDYSIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIH2BCzYb8/NUQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoKGABfsNeWwkQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQLtCViw356bowgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQEOB/oZbbRwXGB0dDZvufjA8/KN7w+a168LWn24IOzdsCbs2bQt7tu8M+3bsDvt27wkH9u4PB/cfGPu3P4weHH3s30GKBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEAgeYGe3t7Q09sz/q+3vz/09veFvhn9YWBwZhiYPRhmzpkVhubPDbMWDocjjl4YRpYvCUc+4bgwf9XS0NPTk7wfAAIECBAop8Dj/ws2tih9tJxTyKfqA/v2h3tuvDncfs1Xw9qbvhv2bN2Rz0DOSoAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECNQVmHnE7LD86U8KT7z8vLDywjNC34B7FdfFsoEAAQIEohEY+7DZ+Fp9C/YPi2TXlm3hO1d9Ltx69efDjvWbD9vqWwIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKAogdmLRsKaX700nP7yy8LQ8NyiyjAuAQIECBBoKmDB/mFE2R31v3PV9eHrf/Nxd9M/zMa3BAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEAgJoHsrvvnvO5FYwv3n+2O+zEFoxYCBAgQeFzAgv3HKULYePcD4TOvfW9Yf/vaCa/6kgABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEIhZYNETl4fnvP/3w4JVx8RcptoIECBAIEEBC/YfC/32a24Kn3vD34X9u/cm+GNgygQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoNwC/YMzwmXveHV44uVPL/dEVE+AAAEClRKwYH8szm/9/TXhS2//SKWCNRkCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIJCiwAVvekU481WXpzh1cyZAgACBCAVqC/Z7I6ytKyV968pPW6zfFWmDECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACB/AWyG/hmawM9CBAgQIBATAJJLti//Zqbwpf+4qqYclALAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgME2BbG1gtkbQgwABAgQIxCKQ3IL9jXc/ED73hr+LxV8dBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQAcFsjWC2VpBDwIECBAgEINAUgv2D+zbHz7z2veG/bv3xmCvBgIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKDDAtkawWytYLZm0IMAAQIECBQtkNSC/e9cdX1Yf/vaos2NT4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECOQokK0VzNYMehAgQIAAgaIFklmwv2vLtvD1v/l40d7GJ0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBLogkK0ZzNYOehAgQIAAgSIFklmw/52rPhf2bN1RpLWxCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgS4JZGsGs7WDHgQIECBAoEiBJBbsH9i3P9x69eeLdDY2AQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0GWBbO1gtobQgwABAgQIFCWQxIL9u794c9ixfnNRxsYlQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEChDI1g7ec+PNBYxsSAIECBAg8KhAEgv2f3TtV+VNgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIJChw+zXWECYYuykTIEAgGoHKL9gfHR0Na2/6bjTgCiFAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgS6J5CtIczWEnoQIECAAIEiBCq/YH/jjx8Ie7buKMLWmAQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEDBAtkawk13P1hwFYYnQIAAgVQFKr9gf8Md96WarXkTIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECYwIP/+heDgQIECBAoBCByi/Y37x2XSGwBiVAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgTiELCWMI4cVEGAAIEUBSq/YH/rgw+nmKs5EyBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAo8JbP3pBhYECBAgQKAQgcov2N+58ZFCYA1KgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIxCGwc8OWOApRBQECBAgkJ5DAgv2tyYVqwgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgMDPBHZt2vazb3xFgAABAgS6KFD5Bft7d+zqIqehCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgdgE9mzfGVtJ6iFAgACBRAQqv2B/347diURpmgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgMBkAtYSTqbiNQIECBDohkD1F+zv3tMNR2MQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECkQrss5Yw0mSURYAAgeoLVH7B/oG9+6ufohkSIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECdQWsJaxLYwMBAgQI5CxQ+QX7B/cfyJnQ6QkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIGYBawljDkdtREgQKDaAgks2HeH/Wr/CJsdAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBoLHBwv7WEjYVsJUCAAIG8BCq/YH/04Gheds5LgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIlEDAWsIShKREAgQIVFTAgv2KBmtaBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAwKMCFuz7SSBAgACBogQSWLB/sChb4xIgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIRCIwetJYwghiUQIAAgSQFKr9gP8lUTZoAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEChewYL/wCBRAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAlUUsGC/iqmaEwECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgULmDBfuERKIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEqihgwX4VUzUnAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEChcwIL9wiNQAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAhUUcCC/Sqmak4ECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgULiABfuFR6AAAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEKiigAX7VUzVnAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgcAEL9guPQAEECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgUEUBC/armKo5ESBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEDhAhbsFx6BAggQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgigIW7FcxVXMiQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgcIFLNgvPAIFECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEAVBSzYr2Kq5kSAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEChQtYsF94BAogQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgSoKWLBfxVTNiQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQKF7Bgv/AIFECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECVRSwYL+KqZoTAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBQuYMF+4REogAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgSqKGDBfhVTNScCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQKFzAgv3CI1AAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECFRRwIL9KqZqTgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBQuIAF+4VHoAACBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQqKKABftVTNWcCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKBwAQv2C49AAQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBQRQEL9quYqjkRIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQOECFuwXHoECCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKCKAhbsVzFVcyJAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBwgUs2C88AgUQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQBUFLNivYqrmRIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQKFC1iwX3gECiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBKgpYsF/FVM2JAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAoXsGC/8AgUQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQJVFLBgv4qpmhMBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIFC5gwX7hESiAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBKooYMF+FVM1JwIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAoXMCC/cIjUAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIVFHAgv0qpmpOBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIFC4gAX7hUegAAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBCoooAF+1VM1ZwIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoHABC/YLj0ABBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIFBFAQv2q5iqOREgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBA4QIW7BcegQIIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoIoCFuxXMVVzIkCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIHCBSzYLzwCBRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAFQUs2K9iquZEgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAoULWLBfeAQKIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIEqCliwX8VUzYkAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEChewYL/wCBRAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAlUUsGC/iqmaEwECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgULmDBfuERKIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEqihgwX4VUzUnAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEChcwIL9wiNQAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAhUUcCC/Sqmak4ECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgULiABfuFR6AAAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEKiigAX7VUzVnAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgcIH+witQAAECBAgQIECAAAECBAgQIECAQKkE+mYMhDmL509e8+hoeOSB9ZNv8yoBAk0FBmYNhlkL5tXdb+uDD4fRgwfrbrdhegLN/Lf998ZwcN/+6Q3i6MoLNPs5ch1X/kfABAkQIECAAAECBAgQIECAAAECBAgQIHCIgAX7h3D4hgABAgQIECBAgAABAgQIECBAoJnA0U8+KbzkY39Wd7frX/+B8IN/u7HudhsIEKgvcPzFZ4bnvO/36u7wzQ9+Itz0zqvrbrdhegLN/L/3z18In//jD05vEEdXXqDZz5HruPI/AiZIgAABAgQIECBAgAABAgQIECBAgACBQwQs2D+EwzcECBAgQIAAAQIECBAgQIAAgTQEVl50Rjjndb886WT37tgVPvO77w07Nzwy6fZmL845qs7d95sdaDsBAk0F5tb76xZNj7RDJwTmHrWgE6dxjsQFXMeJ/wCYPgECBAgQIECAAAECBAgQIECAAAECyQlYsJ9c5CZMgAABAgQIECBAgAABAgQIEAhh1sgRYcmTjq9LsWj1irD2K7fW3W4DAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECDQX6G2+iz0IECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBqQq4w/5UxexPgAABAgQIECBAgAABAgQIECBAgAABAh0X6J85I8xaOC8c2LsvHDxwMOzatLXjYzghAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKDbAhbsd1vceAQIECBAgAABAgQIECBAgECSAgtPXNb1ee/buSc88sD6ro9rQAIECDQTmLtkQVj+9DVhxflrwqJTVobZC+aFGXOGxg87eOBA6O3rC3t37BrrYQ+HR+5/aOzf+rB57bpwx3VfDzs3PNLs9LYTIECAAAECBAgQIECAAAECBAgQIECAAAECBKIRsGA/migUQoAAAQIECBAgQIAAAQIEqicw+8jhMDhvTukntuknPw2jY3d7ns7jlZ9/33QOb+vY+775g/DPv/LWto6t8kGXvePV4dRffmbdKd749o+Eb//9NXW320CAQHsCPX294eQXPCM85VWXhyNPOrbuSbLF+tljxuyh8f0m7nvhm14xtmj/G+GWj1wX1t16V91z2ECAAAECBAgQIECAAAECBAgQIECAAAECBAgQiEXAgv1YklAHAQIECBAgQIAAAQIECBComMDQyNzwqhs/ML7gsuxT+9A5vxm2rdtY9mmo/zGBhScdV3qLs3/nhQ0XPJd5ggfHPhzz2d//6ylP4dnvek04YunCKR/X6QNuv/Zr4Xsf+49On7bU5+vp7Q2nvOjCkP3cDi9bPK259M0YCKuff/74v//+3o/Dzf90Xbjtk1+e1jmLPHjRySvCWb/1/CJL6NjYD95yR7hlLI/pPIbmHxFec/OHp3OKjh27ZewvO1x5/qs7dj4nIkCAAAECBAgQIECAAAECBAgQIECAAIF0BSzYTzd7MydAgAABAgQIECBAgAABArkKDMwarMRi/VyRnJxAmwLLzj45LD/vSW0eHfdh+/fsa2vB/pLTTwgLVh1T+OT6B2dasD8hhdkLh8Nz3v/74dizT5nwame+POq048Mvvud14cTLzgrX/a/3h73bd3XmxF08y5xFI+EJzz2viyPmN9S8sQ9jTHfBfn7VTf3MPT09Uz/IEQQIECBAgAABAgQIECBAgAABAgQIECBAYBKB3kle8xIBAgQIECBAgAABAgQIECBAgAABAgQIEJiWwDFPXR1e/tl357JYf2Jh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0h0JECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABDfu+AwQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAIAUBDfspoLolAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBDQsO87QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEUhDoT+GebkmAAAECBAgQIECAAAECBAgQINCGwM477gl3XPH9EHrauDiHl+zZ+mAOZ2VKBAhkJXBg93C46eJvZDV8R8fdtenejt7PzQgQIECAAAECBAgQIECAAAECBAgQIECAAIF4BTTsx5tbkREgQIAAAQIECBAgQIAAAQIFE9i/Y0+49Px3FWzWpkuAAIHmBPY9sCtc/sYPNXeyswgQIECAAAECBAgQIECAAAECBAgQIECAAAECkQho2I8kkcIgQIAAAQIECBAgQIAAAQIECBAgQKD4Attu2Rx2bb4v9C9cMGswB3bvm/VzHxIgkB+BPXdvC3vvrf9XZvwe5ydXZkKAAAECBAgQIECAAAECBAgQIECAAIFuCDz8B9anK1s3Buz2GO854UXdHtJ4BAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQM4EXn/nF3M2I9MhQIAAgZgFeipbEl9vzEGKjQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIZCWgYT8reeMSIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQNQCGvajTq/gCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQCArAQ37WckblwABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgSiFtCwH3V6BUeAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECWQlo2M9K3rgECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgELWAhv2o0ys4AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEMhKQMN+VvLGJUCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIGoBTTsR51ewREgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAVgIa9rOSNy4BAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIRC2gYT/q9AqOAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBLIS0LCflbxxCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQCBqAQ37UadXcAQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCQlYCG/azkjUuAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECUQto2I86vYIjQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgawENOxnJW9cAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEIhaQMN+1OkVHAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAhkJaBhPyt54xIgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBA1AIa9qNOr+AIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAICsBDftZyRuXAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBKIW0LAfdXoFR4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQJZCWjYz0reuAQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECAQtYCG/ajTKzgCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQyEpAw35W8sYlQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgagFNOxHnV7BESBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEBWAhr2s5I3LgECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAhELaBhP+r0Co4AAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEshLQsJ+VvHEJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAIGoBDftRp1dwBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIJCVgIb9rOSNS4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQJRC2jYjzq9giNAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBrAQ07Gclb1wCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQiFpAw37U6RUcAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECGQloGE/K3njEiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEDUAhr2o06v4AgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEAgKwEN+1nJG5cAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEohbQsB91egVHgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAlkJaNjPSt64BAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIBC1gIb9qNMrOAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBDISkDDflbyxiVAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBqAU07EedXsERIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQFYCGvazkjcuAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECEQtoGE/6vQKjgABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgSyEtCwn5W8cQkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEAgagEN+1GnV3AECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgkJWAhv2s5I1LgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAlELaNiPOr2CI0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIGsBDTsZyVvXAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBCIWkDDftTpFRwBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIZCWgYT8reeMSIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQNQCGvajTq/gCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQCArAQ37WckblwABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgSiFtCwH3V6BUeAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECWQlo2M9K3rgECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgELWAhv2o0ys4AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEMhKQMN+VvLGJUCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIGoBTTsR51ewREgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAVgIa9rOSNy4BAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIRC2gYT/q9AqOAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBLIS0LCflbxxCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQCBqAQ37UadXcAQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCQlYCG/azkjUuAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECUQto2I86vYIjQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgawENOxnJW9cAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEIhaQMN+1OkVHAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAhkJaBhPyt54xIgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBA1ALRN+z39EYfYtRfUMERIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIH5CuglnK+g6wkQIECgXYHou9l7envatXEdAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgEIGAXsIIkigEAgQIFFRAw35BE2faBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQHMCGvabc3IWAQIECHReIPqG/d7+/s6ruSMBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBQGAG9hIVJlYkSIEAgOoESNOz3RZc0AREgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQLNC/T26yVsXsuZBAgQINBJgegb9vsGrLDfyS+MexEgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgaIJ6CUsWsbMlwABAvEIRN+wv2DRwniyJRICBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgZQG9hC2TuYAAAQIEOiQQf8P+0KIOUbkNAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgUESBBXoJi5g2cyZAgEAUAtE37A8MDUaRKEEQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEC7QksXLK4vQtdRYAAAQIE5ikQfcP+4lXL5knkcgIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKDIAoMrlxZ5+uZOgAABAgUWiL9hf/XyAqfH1AkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIH5CizWSzhfQtcTIECAQJsC0TfsLztmdZs0LiNAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRiENBLGEMWxUCAAIFiCkTfsL9iw9HFzIxZEyBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAh0R0EvYEUY3IUCAAIE2BKJv2F/9qHVtsLiEAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQiEVgzcnrYwlFHAQIECBQMIHoG/ZXnXRcWLhsqGBpMV0CBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgEwJJD+HKjcd24lbuQYAAAQIEWhaIvmG/p6cnbHjir7YM4wICBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECg+AJJD2HSS2gjQIAAAQJZCETfsJ+gnvL8s7OwNSYBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCQsYAewowTYHgCBAiUXKAUDfsnPvWxYWjtipKnWvgECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKBcAknvYNJDaCNAgAABAlkJlKJhv29Bf3jMy8/Jyti4BAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQAYCSe9g0kNoI0CAAAECWQmUomE/wT3jvGeFhcuGsnI2LgECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQINBFgaRnMOkdtBEgQIAAgSwFStOwP7h8aTjrtS/J0trYBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQJcEkp7BpHfQRoAAAQIEshQoTcN+gnzGec8Oa0/ZkKW3sQkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIGUBZJewaRn0EaAAAECBLIWKFXDft+C/vDcD/x56F80kLW78QkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIEUBJIewaRXMOkZtBEgQIAAgawFStWwn2Cv2nhceNa7X521u/EJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBFASSHsGkV9BGgAABAgTyIFC6hv0E/ZTnPzE85c1/mAd/cyBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQ6JJD0BiY9gjYCBAgQIJAXgVI27Cf4j/+j54en/OV5ecmDeRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQLzEEia9ZPeQBsBAgQIEMiTQE9tMtOVrfa+TPtbv3x1uOwNHwwTB8fKFLZYCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAFAL9iwbCs979aivrR5FNQRAgQCAegZ7KlkRT+ob9BGHnpq3hq3/63rD91ruSH20ECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAAQTWnrIhPPcDfx5WbTyuALM1RQIECBAok4CG/RnZnhyfCDdc9LVw3T98PozuHZlx1I8ECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAXgQWLhsKZ732JeGM854d+hb052Va5kGAAAECBB4W0LD/MMUvvzmwe7jSuH9ZuPEzl4eR7Q/98kE/ESBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABApkJDK1dER7z8nMqjfrPCoPLl2Y2DwMTIECAAIG5BDTszyGUrLi/+aofhlu/fE246+r/tOr+HF4OEyBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBNASS1fQ3PPFXwynPPzuc+NTHWlE/DWT3JECAAIGOC2jYb4F0eno67Np0b3jwJ1vCQ3fdH/betyPs37E7HNg1HEb37Q/jIwfD+MHRMDk2EaYmJiuviTA9Nf3z11QLIzmVAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAjEKdDT2xt6enuqr97+/tDb3xf6BvrDgkULw4KhRWHhksVhcOXSsHj18rDsmNVhxYajw5qT14eVG48NlabHOFFERYAAAQLRCmjYjza1AiNAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBLAVqDfu9WU7C2AQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAIFYBDfuxZlZcBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIJCpgIb9TPkNToAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQKxCmjYjzWz4iJAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBTAU07GfKb3ACBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQiFVAw36smRUXAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECGQqoGE/U36DEyBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgECsAhr2Y82suAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEAgUwEN+5nyG5wAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEYhXQsB9rZsVFgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABApkKaNjPlN/gBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIBCrgIb9WDMrLgIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBDIVEDDfqb8BidAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBWAU07MeaWXHNW2Dbtm0hedkIECBA4GcC6qJvAgECBGYXUB9nd/EpAQIE1EffAQIECMwuoD7O7uJTAgTKK6Auljf3IidAoLGA+tjYx1ECBMoroD6WN/ciJ0CAAAECRRboqU1+urLV3tsTIBDC6173uirDhRdeiIMAAQIEKgLqoq8BAQIEZhdQH2d38SkBAgTUR98BAgQIzC6gPs7u4lMCBMoroC6WN/ciJ0CgsYD62NjHUQIEyiugPpY39yInQIAAAQJFFOipbMm8NewXMXvmnLpA8jTuiSeeWB1n8+bN4cgjj0x9TAMQIEAgzwLqYp6zY24ECGQpoD5mqW9sAgTyLKA+5jk75kaAQJYC6mOW+sYmQCCPAupiHrNiTgQI5EFAfcxDFsyBAIE8CqiPecyKOREgQIAAAQKNBGoN+72NTnKMQFkF3vOe94T9+/dXX8l7GwECBMouoC6W/RsgfgIE6gmoj/VkfE6AQNkF1MeyfwPET4BAPQH1sZ6M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CBAgQIAAAQIECBAgQIAAAQIECBAgQKCEAhr2S5h0IRMgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBA+gIa9tM3NgIBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIlFBAw34Jky5kAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEEhfQMN++sZGIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIESCmjYL2HShUyAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEC6Qto2E/f2AgECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgUEIBDfslTLqQCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQCB9AQ376RsbgQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRKKKBhv4RJFzIBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIpC+gYT99YyMQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQAkFNOyXMOlCJkCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIH0BTTsp29sBAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAooYCG/RImXcgECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgkL6Ahv30jY1AgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAiUU0LBfwqQLmQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgTSF9Cwn76xEQgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECghAIa9kuYdCETIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQPoCGvbTNzYCAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECJRQQMN+CZMuZAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBIX0DDfvrGRiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBEgpo2C9h0oVMgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAukLaNhP39gIBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIFBCAQ37JUy6kAkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEAgfQEN++kbG4EAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIESiigYb+ESRcyAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECKQvoGE/fWMjECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEAJBTTslzDpQiZAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACB9AU07KdvbAQCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQKKGAhv0SJl3IBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIJC+gIb99I2NQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIlFNCwX8KkC5kAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE0hfQsJ++sREIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoIQCGvZLmHQhEyBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgED6Ahr20zc2AgECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAiUUEDDfgmTLmQCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQSF9Aw376xkYgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgRIKaNgvYdKFTIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQLpC2jYT9/YCAQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBQQgEN+yVMupAJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAIH0BDfvpGxuBAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBEoooGG/hEkXMgECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAikL6BhP31jIxAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBACQU07Jcw6UImQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgfQFNOynb2wEAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECihgIb9EiZdyAQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEBrZViQAAEAASURBVCCQvoCG/fSNjUCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECJRTQsF/CpAuZAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBNIX0LCfvrERCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKCEAhr2S5h0IRMgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBA+gIa9tM3NgIBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIlFBAw34Jky5kAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEEhfQMN++sZGIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIESCmjYL2HShUyAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEC6Qto2E/f2AgECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgUEIBDfslTLqQCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQCB9gZ7aENOVrfbengABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEGhPoKeyJVdaYb89P1cRIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIGGAhr2G/I4SIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE2hPQsN+em6sIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEBDAQ37DXkcJECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEC7Qlo2G/PzVUECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKChgIb9hjwOEiBAgAABAgQIECBAgAABAgQI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BAgQIECAAAECBAgQIECAAAECOROQsJ+zChEOAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBRDQMJ+MepRKQgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEAgZwIS9nNWIcIhQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgWIISNgvRj0qBQECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAjkTEDCfs4qRDgECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgUAwBCfvFqEelIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIGcCUjYz1mFCIcAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEiiEgYb8Y9agUBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIJAzAQn7OasQ4RAgQIAAAQIECBAgQIAAAQIECBAg0FyBDRs2hPgyESBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEGi3QH+7d2h/BAgQIECAAAECBAgQIECAAAECBAgQaKfApz/96dLuPvOZz7Rzt/ZFgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAIPSUDUayqfzZOwECBAgQIECAAAECBAgQIECAAAECBIogEEfWf8ITnlAqyv333x8WLVpUhGIpAwECBAgQIECAAAECBAgQIECAAAECBAgQIECAQM4FerIphtib8ziFR4AAAQIECBAgQIAAAQIECBAgQIAAgYYF4uj6u3fvLr3KI+03vDErEiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEKhTwAj7dYJZnAABAgQIECBAgAABAgQIECBAgACBNATKo+vHhP04TZ8+PRhlP426EyUBAgQIECBAgAABAgQIECBAgAABAgQIECBAIHUBI+ynXoPiJ0CAAAECBAgQIECAAAECBAgQIECgokB5dP3yQjFx3yj7ZQ3vBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEC7RAwwn47lO2DAAECBAgQIECAAAECBAgQIECAAIG2CoweXb+8c6PslyW8EyBAgAABAgQIECBAgAABAgQIECBAgAABAgQItFLACPut1LVtAgQIECBAgAABAgQIECBAgAABAgQ6KjB6dP1yMEbZL0t4J0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQaIeAEfbboWwfBAgQIECAAAECBAgQIECAAAECBAi0TWC80fXLARhlvyzhnQABAgQIECBAgAABAgQIECBAgAABAgQIECBAoFUCRthvlaztEiBAgAABAgQIECBAgAABAgQIECDQUYHxRtcvB2WU/bKEdwIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgVYLGGG/1cK2T4AAAQIECBAgQIAAAQIECBAgQIBA2wSqja5fDsQo+2UJ7wQIECBAgAABAgQIECBAgAABAgQIECBAgAABAq0QMMJ+K1RtkwABAgQIECBAgAABAgQIECBAgACBjgpUG12/HJxR9ssS3gkQIECAAAECBAgQIECAAAECBAgQIECAAAECBFopYIT9VuraNgECBAgQIECAAAECBAgQIECAAAECbROodXT9ckBG2S9LeCdAgAABAgQIECBAgAABAgQIECBAgAABAgQIEGi2gBH2my1qewQIECBAgAABAgQIECBAgAABAgQIdFSg1tH1y0EaZb8s4Z0AAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKBVAkbYb5Ws7RIgQIAAAQIECBAgQIAAAQIECBAg0DaBekfXLwdmlP2yhHcCBAgQIECAAAECBAgQIECAAAECBAgQIECAAIFmChhhv5matkWAAAECBAgQIECAAAECBAgQIECAQEcF6h1dvxysUfbLEt4JECBAgAABAgQIECBAgAABAgQIECBAgAABAgRaIWCE/Vao2iYBAgQIECBAgAABAgQIECBAgAABAm0TaHR0/XKARtkvS3gnQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBoloAR9pslaTsECBAgQIAAAQIECBAgQIAAAQIECHRUoNHR9ctBG2W/LOGdAAECBAgQIECAAAECBAgQIECAAAECBAgQIECg2QJG2G+2qO0RIECAAAECBAgQIECAAAECBAgQINA2gYmOrl8O1Cj7ZQnvBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECzRAwwn4zFG2DAAECBAgQIECAAAECBAgQIECAAIGOCkx0dP1y8EbZL0t4J0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQaKaAEfabqWlbBAgQIECAAAECBAgQIECAAAECBAi0TaBZo+uXAzbKflnCOwECBAgQIECAAAECBAgQIECAAAECBAgQIECAwEQFjLA/UUHrEyBAgAABAgQIECBAgAABAgQIECDQUYFmja5fLoRR9ssS3gkQIECAAAECBAgQIECAAAECBAgQIECAAAECBJolYIT9ZknaDgECBAgQIECAAAECBAgQIECAAAECbRNo9uj65cCNsl+W8E6AAAECBAgQIECAAAECBAgQIECAAAECBAgQIDARASPsT0TPugQIECBAgAABAgQIECBAgAABAgQIdFSg2aPrlwtjlP2yhHcCBAgQIECAAAECBAgQIECAAAECBAgQIECAAIFmCBhhvxmKtkGAAAECBAgQIECAAAECBAgQIECAQNsEWjW6frkARtkvS3gnQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBoVMAI+43KWY8AAQIECBAgQIAAAQIECBAgQIAAgY4KtGp0/XKhjLJflvBOgAABAgQIECBAgAABAgQIECBAgAABAgQIECAwUQEj7E9U0PoECBAgQIAAAQIECBAgQIAAAQIECLRNoNWj65cLYpT9soR3AgQIECBAgAABAgQIECBAgAABAgQIECBAgACBRgSMsN+ImnUIECBAgAABAgQIECBAgAABAgQIEOioQKtH1y8Xzij7ZQnvBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECExEwwv5E9KxLgAABAgQIECBAgAABAgQIECBAgEDbBNo1un65QEbZL0t4J0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQqFfACPv1ilmeAAECBAgQIECAAAECBAgQIECAAIGOCrRrdP1yIY2yX5bwToAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0KiAEfYblbMeAQIECBAgQIAAAQIECBAgQIAAAQJtE2j36PrlghllvyzhnQABAgQIECBAgAABAgQIECBAgAABAgQIECBAoB4BI+zXo2VZAgQIECBAgAABAgQIECBAgAABAgQ6KtDu0fXLhTXKflnCOwECBAgQIECAAAECBAgQIECAAAECBAgQIECAQCMCRthvRM06BAgQIECAAAECBAgQIECAAAECBAi0TaBTo+uXC2iU/bKEdwIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgVoFjLBfq5TlCBAgQIAAAQIECBAgQIAAAQIECBDoqECnRtcvF9oo+2UJ7wQIECBAgAABAgQIECBAgAABAgQIECBAgAABAvUKGGG/XjHLEyBAgAABAgQIECBAgAABAgQIECCQe4FsxJKKMY6MjFScbyYBAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBiQgYYX8ietYlQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQJVBHqrzDebAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQaEBAwn4DaFYhQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQLVBCTsVxMynwABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQINCAgYb8BNKsQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIFqAhL2qwmZT4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEGhCQsN8AmlUIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEA1AQn71YTMJ0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECDQhI2G8AzSoECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKCagIT9akLmEyBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBBgQk7DeAZhUCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIFBNQMJ+NSHzCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAAwIS9htAswoBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEKgmIGG/mpD5BAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgAQEJ+w2gWYUAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECFQTkLBfTch8AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECDQgICE/QbQrEKAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBKoJSNivJmQ+AQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBoQEDCfgNoViFAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAtUEJOxXEzKfAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAg0ICBhvwE0qxAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgWoCEvarCZlPgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQaEJCw3wCaVQgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQDUBCfvVhMwnQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQINCEjYbwDNKgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoJqAhP1qQuYTIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIEGBCTsN4BmFQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgUE1Awn41IfMJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEADAhL2G0CzCgECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQqCYgYb+akPkECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKABAQn7DaBZhQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIVBOQsF9NyHwCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQINCAgIT9BtCsQoAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEqglI2K8mZD4BAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEGhAQMJ+A2hWIUCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEC1QQk7FcTMp8AAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECDQgIGG/ATSrECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBagIS9qsJmU+AAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBBoQkLDfAJpVCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBANQEJ+9WEzCdAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAg0ISNhvAM0qBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgmoCE/WpC5hMgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgQYEJOw3gGYVAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBQTUDCfjUh8wkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQAMCEvYbQLMKAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBCoJiBhv5qQ+QQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoAEBCfsNoFmFAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAhUE5CwX03IfAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0ICAhP0G0KxCgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgSqCUjYryZkPgECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQaEBAwn4DaFYhQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQLVBCTsVxMynwABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQINCAgYb8BNKsQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIFqAhL2qwmZT4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEGhCQsN8AmlUIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEA1AQn71YTMJ0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECDQhI2G8AzSoECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKCagIT9akLmEyBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBBgQk7DeAZhUCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIFBNQMJ+NSHzCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAAwIS9htAswoBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEKgmIGG/mpD5BAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgAQEJ+w2gWYUAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECFQT6K+2gPkECBAgQIAAAQIECBAgQIAAAQIECBBITWBkZCS1kMVLgAABAgQIECBAgAABAgQIECBAgAABAgQIECBQQAEj7BewUhWJAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBDovIGG/83UgAgIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAooICE/QJWqiIRIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQOcFJOx3vg5EQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIFFJCwX8BKVSQCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ6LyAhP3O14EICBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKCAAhL2C1ipikSAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECnReQsN/5OhABAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBRQQMJ+AStVkQgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECg8wIS9jtfByIgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgQIKSNgvYKUqEgECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAh0XkDCfufrQAQECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgUEABCfsFrFRFIkCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIHOC0jY73wdiIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECiggYb+AlapIBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQINB5AQn7na8DERAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAAQX6C1gmRSJAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoMsEdu7cGc4555yKpX71q18dnvWsZ1VcJoWZ3VTWFOqjUowS9nesO4QAAEAASURBVCvpmEeAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQBICQ0NDYc2aNRVjHRgYqDg/lZndVNZU6mS8OCXsjyfjewIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEJiywb9++sGPHjhBHhe/p6Qnz588Ps2fPnvB2bYBACgIS9lOoJTESIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQSERg3bp14fbbbw8rV64M9957b9izZ8/jIp88eXJYsGBB6XXssceGM888s/T5cQv6gkDiAhL2E69A4RMgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBDIg8A999wTLrroorBixYqq4ezfvz+sXbu29IrJ/RdffHE45ZRTwotf/OLwlKc8pTQSf9WNtHCBgYGB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75y9PRMgQIAAAQIECBRAIN7lPXjPigKURBEIECBAgAABAgQIECBAgAABAgQItF8g9q3FPrY8jY7YfgV7JECAAAECBAgQIECAQFoC06ZNCy94wQvCZZddVjXwDRs2hM997nNh4cKFYenSpWHx4sWht7c3rF+/PqxduzasW7eu6jbKC5x66qlh+fLl5T+9E0hGQMJ+MlUlUAIECBAgQIAAgTwKDG94OIzsGchjaGIiQIAAAQIECBAgQIAAAQIECBAgkHuB2LcW+9j6jjo697EKkAABAgQIECBAgAABAgQeE3jta18b7rjjjpoT7jdt2hTi69Zbb31sI3V8mjx5cnjzm99cxxoWJZAfgd78hCISAgQIECBAgAABAukJHFi3Jr2gRUyAAAECBAgQIECAAAECBAgQIEAgRwL62HJUGUIhQIAAAQIECBAgQIBAjQJxlP33ve99Yfr06TWu0fhicUT+d77znWH+/PmNb8SaBDooIGG/g/h2TYAAAQIECBAgkL7A8KbaH82WfmmVgAABAgQIECBAgAABAgQIECBAgEDzBfSxNd/UFgkQIECAAAECBAgQINAOgaOOOiq85z3vaWnSfk9PTzj77LPDqaee2o4i2QeBlgj0t2SrNkqAAAECBAgQIECgSwSGtzzSJSVVTAIECBAgQIAAAQIECBAgQIAAAQKtERjeurk1G7ZVAgQIECBAgAABAgQIEGi5wMknnxw+/vGPhy9/+cvhvvvua+r+FixYEN7+9reHk046qanb7fTGDhw4EHbt2hV27NgRtm/fHjZu3BjWr18fHnjggbBq1arSTRDLli0LT37ykyuGunPnzrBmzZqKy5iZDwEJ+/moB1EQIECAAAECBAgkKjC8c0eikQubAAECBAgQIECAAAECBAgQIECAQD4Ehndsz0cgoiBAgAABAgQIECBAgACBhgRiYv2HPvShcMkll4TLLrssbNu2raHtlFeaPHlyOPPMM8NrX/vaMHXq1PLXuXz/0Y9+FPbu3RtGRkZKr+Hh4RBfg4ODYf/+/aVX+XNcLibZ7969u2JZHnrooXDKKaeED37wgxWXi87vfe97Ky5jZj4EJOznox5EQYAAAQIECBAgkKjAyC4J+4lWnbAJECBAgAABAgQIECBAgAABAgRyIjAyoI8tJ1UhDAIECBAgQIAAAQIECDQs0NvbG175yleGV7ziFWHFihXhqquuCjfffHOIo8nXOh1zzDHhjDPOCC984QvDjBkzal2to8vFRP3LL7+8qTE8/PDDTd2ejXVeQMJ+5+tABAQIECBAgAABAgkLjOzbk3D0QidAgAABAgQIECBAgAABAgQIECDQeYGRvfrYOl8LIiBAgAABAgQIECBAgEBzBGLi/tOf/vTSa2BgIKxZsyZs2bKl9Nq8eXPYunVrGBoaKiXkz5w5M8yaNSsce+yxYfny5ckk6TdHavytSNgf3ybVORL2U605cRMgQIAAAQIECORCYGTf3lzEIQgCBAgQIECAAAECBAgQIECAAAECqQroY0u15sRNgAABAgQIECBAgACBygJxlPyTTjqp8kJNnjt58uTQ19dXuilgvE3nffT+tWvXhuHh4RBvfjAVQ0DCfjHqUSkIECBAgAABAgQ6JDAyuL9De7ZbAgQIECBAgAABAgQIECBAgAABAsUQ0MdWjHpUCgIECBAgQIAAAQIECORBYPr06eG8886rmLAfR/bP8zQ4OBg2bdoUFi1alOcwxVaHgIT9OrAsSoAAAQIECBAgQOBxAgcOPO4rXxAgQIAAAQIECBAgQIAAAQIECBAgUIeAPrY6sCxKgAABAgQIECBAgAABAtUE8j6CfqX4p02bFpYuXVoaYb/ScualJSBhP636Ei0BAgQIECBAgEDOBEaGJOznrEqEQ4AAAQIECBAgQIAAAQIECBAgkJiAPrbEKky4BAgQIECAAAECBAgQqCAwMDAQ7rrrrgpLhHD88ceH+fPnV1ym0Zn79u0L11133bir9/b2htNPPz1MmjRp3GVaNSPuMz4BYPbs2eGII44ovebMmVN6X7x4cSlRv1UurSqT7dYmIGG/NidLESBAgAABAgQIEBhbYGho7O99S4AAAQIECBAgQIAAAQIECBAgQIBAbQL62GpzshQBAgQIECBAgAABAgQSENi0aVM477zzKkb6jne8I5xxxhkVl2l05p49e8L5559fcfXdu3eHs876v+ydB5gb1fX2z6hLW9x77xjcsY0xxmBMx3QSIIQWIKQACfmHhEASki8VUoAEktBCDb2DQw0GG4xxt3HHBdu41y3aVZ35zh2jZYukuSPNqL73eeaRZu657TfSvaPd95x7SlobkSki9f/yl78kTdP0iPeqqurvxXnimrATTgDicDqdLd57vV7y+XwkXsUhbJDKkwAE++V53zFqEAABEAABEAABEAABqwjwjzAkEAABEAABEAABEAABEAABEAABEAABEAABEACBLAjgb2xZwENREAABEAABEAABEAABEAABEAABswTiko7jQoA/aNAgs9XnzF44AbhcLorFYinbrKqqSpmHjNwRgGA/d6zREgiAAAiAAAiAAAiAQCkS0NRSHBXGBAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAK5I4C/seWONVoCARAAARAAARAAARAAARAAARAoGQJ+v5/+8Y9/6NH+Uw1KiPqR8k8Agv383wP0AARAAARAAARAAARAoJgJIPpXMd899B0EQAAEQAAEQAAEQAAEQAAEQAAEQAAEQKAQCOBvbIVwF9AHEAABEAABEAABEAABEAABEACBIiQAQX5x3DQI9ovjPqGXIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACBUBg06ZNtHz58gLoSfouTJo0ibp165beCLm2E4Bg33bEaAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQEAQWLlyJbVv394WGPX19bbU27rSDRs20Isvvtj6csGdu91uOv300wuuX+XWIQj2y+2OY7wgAAIgAAIgAAIgAAIgkGcCjo5dyD10BCntO5KjugMf7cnRTrx2IKWqnd47raGexKGK1yC/7ttNsc/XUWzTOlIP7MvzCNA8CIAACIAACIAACIAACBQmAUf7TuTsM4BcfQaSs1c//Tlb8QdI8VfyEdA7rTUG9Wds8ao28LHzC4ptWc/P2+tJ3b+nMAeGXoEACIAACIAACIAACIAACIAACIAACIAACIAACJQUgY8++ojEgQQC5UIAgv1yudMYJwiAAAiAAAiAAAiAAAjkkYAQ6XvGTNIPV79Bhj3Rhfss3nc2tzzuNP1MPbifohvXUGThhxRdtYRI05pbWfLe0aUH+aaeYliXFg5R4+tPG9qVk0Hg/Cukhtv49kuk1dVI2cIIBMwS8M+4iBSvT6pY47uvkFZzQMoWRiBQDgQwj5fDXcYYS42As0dv8ow/ljzjjiFnx86Gw1MqqojEkUjDRyfekVpfS9HVyyg8bxbF1q9quo43ICBDwMwzmEx9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7eG8+AhAsF989ww9BgEQAAEQAAEQAAEQAIHSISCE1AfY656PeOmMCiMpBAIsTBc7M2g1hdCZ/PdBiPjidohbWfiv7rFHAJN/asXRA9zb4rhP6GX2BHSxOFeDLUKzZyldQ7iRVD6KImHdT3qbhJg0zkcxJ6xzxXz30Pe8ECimuTsLQGI3MdkU37NT1tQSOzyzWIIRlYAACIAACIAACIAACIAACIAACFhMYPDgwTR69GiLay3M6oQjwQsvvECLFi2S7mDXrl3pe9/7Hscoc7Qo43K56Prrryexg4Go1yjFeHfgl19+mebOnUuXXHIJjRkzxqiIpfkdOnSgfDkKDBgwwNKxlGJlEOyX4l3FmEAABEAABEAABEAABHJHQOxchWjSueONlkAABEAABEAABEAABEAABEAABEAABAqCQOD8K8gzZpJhX0IfvEGhd18xtJM18Iw4UspUFTubsVMXUpEQOLQ7fJF0Ft0EARAAARAAARAAARAAARAAARAoNAK7du2iV155RRfLayY0HN26daOf/exnJHYSSJbEdZF/xx136NH2k9m0vrZ792668847qW/fvnq0/QkTJrRxBmhdxopz4XQwdOhQK6pCHTYQgGDfBqioEgRAAARAAARAAARAoIwIKOxhrSE2fBndcQwVBEAABEAABEAABEAABEAABEDg/7d3rzFyVfcBwP8z+/Yuu971brAxBQsEdjaAwRQjHjaExmARRCAmKoEqruADQqroB4JKkIBPbVU1FqU8pEiNaKRiBJRKUYsiIOERnMZ1HRIw4RU72AYENOAH8a69r5nOHbAFZnc8O8zMzs78jnSZu/e8f8dfOPOfcwkQyAmke/oi3T33iBbtF14aB555PCL3lr0vmtJHL4y28y8uqpmx3/22qHIK1YhAsscmESBAgAABAgQIECBAgACBaQjs378/Nm3aFBs2bIg33nhjGjU/LrpgwYK49dZbY+7cwvsbRx11VL7cunXrYtu2bUX3s3Pnzrj//vsjOcF/xYoVcfbZZ0fyAwGpMQUE7Dfmups1AQIECBAgQIBAuQSc/lUuSe0QIECAAAECBAgQIECAAAECs0hg/K3fR+vS5Ucccfqonmg987wY3fTcEcseqcCcK78TqaamIxXL54/+ZmNR5RSqEQF7bDWyEIZBgAABAgQIECBAgACBjwV27doVb731Vrz99tvR39+f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/qEq9KoLAgQIECBAgAABAgQIECBAgAABAjMjkOrojI5LvhltKy+JVJOvpGdmFfRKgAABAgQIECBAgACB+hAYGBiINWvW1MdkJplFW1tb/umcOXNi8eLFk5Soj0dNTU31MZESZ5E6WC+bSwfvfRIgQIAAAQIECBAgUBmBzNC+GHn+iTjwi59G9qPdlelEqwQIECBAgAABAgQIECBAgAABAgRmQCDV3Rvt530t2lZcEunOrhkYgS4JECBAgAABAgQIECBAoBYF7rnnnti8efOUQ+vr64u77rprynwZBGarQCqXkrE7zmC2rqBxEyBAgAABAgQIzEqB5IvKjtVron3VN2Lst7+O0V/9IsZe3+LU/Vm5mgZNgAABAgQIECBAgAABAgQIECCQnKbfsvjUaD3zvGj5yhlO1PdPggABAgQIECBAgAABAgQIECBwmICA/cNA/EmAAAECBAgQIECgGgLJq8BbTzsrfyUvu8q8/06Mv/tWZP7wbmR2fxiZj/ZGduijyB7YH9mRA5EdG40YH4/sxHjExERE8oKsbObjz2oMWB8ECBAgQIAAAQIECBAgQIAAAQL1LZAc+JZK567cZ+419cn+VTQ3R6qlNVJt7ZFq74hUZ3eku3si3Tsv0gMLonnBn0T66IW5Kode7F7fRmZHgAABAgQIECBAgAABAgQIEChBQMB+CWiqECBAgAABAgQIECinQPKFZtP8Y/NXOdvVFgECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECMyuQOyJBIkCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBMotIGC/3KLaI0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECOQEB+/4ZECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBCgg0V6BNTRIgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQCBWrFgRJ5988pQS7e3tU+bJIFAPAqmDk8jm0sF7nwQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEBpAqlcSmqmS6uuFgECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIFBIQMB+IR15BAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgRAEB+yXCqUaAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAoJCNgvpCOPAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAiUKCBgv0Q41QgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQCEBAfuFdOQRIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIESBQTslwinGgECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQKCQgYL+QjjwCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIFCigID9EuFUI0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEChQQE7BfSkUeAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBEoUELBfIpxqBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgkICA/UI68ggQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQIkCAvZLhFONAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgUEhCwX0hHHgECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQKFFAwH6JcKoRIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIFCAgL2C+nII0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECJQoI2C8RTjUCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIFBIQMB+IR15BAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgRAEB+yXCqUaAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAoJCNgvpCOPAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAiUKCBgv0Q41QgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQCEBAfuFdOQRIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIESBQTslwinGgECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQKCQgYL+QjjwCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIFCigID9EuFUI0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEChQQE7BfSkUeAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBEoUELBfIpxqBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgkICA/UI68ggQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQIkCAvZLhFONAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgUEhCwX0hHHgECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQKFFAwH6JcKoRIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIFCAgL2C+nII0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQF0L/D8EutQmejP5PQAAAABJRU5ErkJggg==)\n","\n"],"metadata":{"id":"tfce7a6ELLGY"}},{"cell_type":"markdown","source":["토큰 분류 작업에서 부분단어 처리 방법\n","
\n","예를 들어 이름 Christa는 Chr와 #ista로 토큰화 됨 이중 어느 단어에 (아니면 두 단어 모두에) B-PER 레이블을 할당해야 할까요?\n","
\n","BERT 논문에서 저자들은 첫번째 부분단어('Chr')에 할당하고 이어지는 부분단어는 무시, 무시한 부분단어를 IGN으로 표시. 나중에 후처리 단계에서 첫 번째 부분단어의 예측 레이블을 후속 부분단어로 쉽게 전파 가능"],"metadata":{"id":"rYnY6i3ANrS2"}},{"cell_type":"markdown","source":["# 트랜스포머 모델 클래스\n","트랜스포머스는 아키텍처와 작업마다 전용 클래스를 제공\n","
\n","작업에 연관된 모델 클래스 이름은 For 형식을 따름. AutoModel 클래스를 사용하는 경우 AutoModelFor\n","

\n","트랜스포머스는 기존 모델을 특정 작업에 맞춰 쉽게 확장 가능하도록 설계됨. 사전 훈련된 모델에서 가중치를 로드하고 작업에 특화된 헬퍼 함수를 사용. 특정 용도의 사용자 정의 모델을 만들 수 있음"],"metadata":{"id":"SNgK8H2mQFzH"}},{"cell_type":"markdown","source":["## 바디와 헤드\n","트랜스포머스의 모델들은 바디(body)와 헤드(head)로 나뉜 모델 구조를 가짐\n","
\n","모델의 마지막 층이 후속 작업에 맞는 층으로 변환. 이 마지막 층이 모델의 **헤드** 이며 작업에 특화\n","
\n","헤드를 제외한 모델의 나머지 부분을 **바디**라 함. 작업에 특화되지 않은 토큰 임베딩과 트랜스포머 층이 포함. 모델의 바디는 BertModel 또는 GPT2Model 같은 클래스로 구현되며 마지막 바디의 마지막 층의 은닉 상태를 반환\n","![Transformer_BodyHead.png](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAKwCAYAAADTBfHAAAABdWlDQ1BrQ0dDb2xvclNwYWNlRGlzcGxheVAzAAAokXWQvUvDUBTFT6tS0DqIDh0cMolD1NIKdnFoKxRFMFQFq1OafgltfCQpUnETVyn4H1jBWXCwiFRwcXAQRAcR3Zw6KbhoeN6XVNoi3sfl/Ticc7lcwBtQGSv2AijplpFMxKS11Lrke4OHnlOqZrKooiwK/v276/PR9d5PiFlNu3YQ2U9cl84ul3aeAlN//V3Vn8maGv3f1EGNGRbgkYmVbYsJ3iUeMWgp4qrgvMvHgtMunzuelWSc+JZY0gpqhrhJLKc79HwHl4plrbWD2N6f1VeXxRzqUcxhEyYYilBRgQQF4X/8044/ji1yV2BQLo8CLMpESRETssTz0KFhEjJxCEHqkLhz634PrfvJbW3vFZhtcM4v2tpCAzidoZPV29p4BBgaAG7qTDVUR+qh9uZywPsJMJgChu8os2HmwiF3e38M6Hvh/GMM8B0CdpXzryPO7RqFn4Er/QcXKWq8UwZBywAAAHhlWElmTU0AKgAAAAgABQESAAMAAAABAAEAAAEaAAUAAAABAAAASgEbAAUAAAABAAAAUgEoAAMAAAABAAIAAIdpAAQAAAABAAAAWgAAAAAAAACQAAAAAQAAAJAAAAABAAKgAgAEAAAAAQAAA4ygAwAEAAAAAQAAArAAAAAAfhJwgQAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAAp5pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDYuMC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+MTQ0PC90aWZmOlhSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WVJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj42ODg8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+OTA4PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CrydZ4AAAEAASURBVHgB7N0HnFxV3fj/78xs32x6JyEJQZJQAihdxCAiKApKVQH/NlARFAREEaOA/hUVG2LhwYYUKYro8/jQHqSDEAw9CSSEUNIhIZtkd7Nlfud7k7vZMuXWmVs+98UwM7ece877zE7ud86554iwIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCAQpkLETy5vFfs0zAggggAACCCCAAAIIIIBAegUyZtHSZ9NLQMkRQAABBBBAAAEEEEAAAQRKCRAwltJhGwIIIIAAAggggAACCCCQYgECxhRXPkVHAAEEEEAAAQQQQAABBEoJEDCW0mEbAggggAACCCCAAAIIIJBiAQLGFFc+RUcAAQQQQAABBBBAAAEESgkQMJbSYRsCCCCA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Evbu7m7Rydt/9rOfySmnnOJ6YBC9J0u7M7rt2nraaacVK2pi1//nP/+Rm266yfKOYiG1BU7vldPpJIJY9HPlZaCZIM5dKA29B/iiiy6yPueFtpdad99994n+YKPdSpuamkrt2m9ba2uraDCnLfBelm9+85ui+S636I9Fen+0l66hV111lbS0tMhll13muPuw3vuorZNXX311uaz53s73mm9CEkAAAQQQSJqA+YeYxafAypUr8+ZzkajHV7/6VUcqpiXDc7nf+c535p988klH51m6dGn+jDPOyJth/V2fz7Q85U2rS9nz/OQnP3Gd9rBhw8qm63cH09KUN4GQ67zZn0nT9TN/zTXX5M1ouZb3E088kTcDEOVN1768CfgLZs/rZ9p06SuYXrGVp59+uudy2eWzn02AXOw0g9a/+uqrns57xBFHDEqr1Aqtu1122cXTubRcu+22W95puUzrXd50F/V8LtMamjc/6JQqTr9tJ510kudzadnmzJmTf+mll/qlWeiN+UEs/4EPfMDXuezPyIUXXljoFIPWJel7zbRYe7IzAwsNcmEFAggggEA6BMy/m9ZCC6MtwfMggcmTJ4u5sBq0vtCKb3zjG6JzrJk/n0KbS6576KGH5B3veId1b+Eee+whem+UPnbeeWfR1lNzMWk9tAurDnThtYuedoN1e79lyYxXeKPef6ktcW5bVe1s3nbbbaKPQosJgOTkk08utKki67RbqrY4+V1mzJjh+b46v+cudbzWnbYyuu1Cbaep3S911FIdmVRbDvXeQe1aPWrUKOs+R504Xnsp6EA55scX+zBPz05bF+3EdX/92/f6d6nT7Ojf+lFHHSWf/OQnxQTWsuOOO4r2QnjttdfkxRdftHow6IioXs9h59XtM99rbsXYHwEEEEAg0QLpiJPDLaXX1hjzwfL0y2+Yx2lLlrZEuVlMF67IlcM2ete73uW4KFFtYdQCmHvLQjEu1mLm9TPttoVRW7RMAOS7bN/61rcc17PuWKkWRj2XllGd7c9kFJ/NPb6uWhe1XLqce+65kS7XQGunLYxatqR8r9HCqLXJggACCCDgRsD8+2kt5W9SsffkOVUCX/ziF8veuzgQREdjdTJQxsDjwn6vrTs//elPwz5NRdLXgYySuOj9cqZro++iRWl01IGF0TLqlDI6MXwUl+nTp1v5c3Lv4sD8f/vb307s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AAIIIIAAAlkTIGDM2hmlPggggAACCCCAAAIIIIBATAIEjDFBkg0CCCCAAAIIIIAAAgggkDUBAsasnVHqgwACCCCAAAIIIIAAAgjEJEDAGBMk2SCAAAIIIIAAAggggAACWRMgYMzaGaU+CCCAAAIIIIAAAggggEBMAgSMMUGSDQIIIIAAAggggAACCCCQNQECxqydUeqDAAIIIIAAAggggAACCMQkQMAYEyTZIIAAAggggAACCCCAAAJZEyBgzNoZpT4IIIAAAggggAACCCCAQEwCBIwxQZINAggggAACCCCAAAIIIJA1AQLGrJ1R6oMAAggggAACCCCAAAIIxCRAwBgTJNkggAACCCCAAAIIIIAAAlkTIGDM2hmlPggggAACCCCAAAIIIIBATAIEjDFBkg0CCCCAAAIIIIAAAgggkDUBAsasnVHqgwACCCCAAAIIIIAAAgjEJEDAGBMk2SCAAAIIIIAAAggggAACWRMgYMzaGaU+CCCAAAIIIIAAAggggEBMAgSMMUGSDQIIIIAAAggggAACCCCQNQECxqydUeqDAAIIIIAAAggggAACCMQkQMAYEyTZIIAAAggggAACCCCAAAJZEyBgzNoZpT4IIIAAAggggAACCCCAQEwCBIwxQZINAggggAACCCCAAAIIIJA1AQLGrJ1R6oMAAggggAACCCCAAAIIxCRAwBgTJNkggAACCCCAAAIIIIAAAlkTIGDM2hmlPggggAACCCCAAAIIIIBATAIEjDFBkg0CCCCAAAIIIIAAAgggkDUBAsasnVHqgwACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCJRd4P8BKj7Yn5c3MfkAAAAASUVORK5CYII=)"],"metadata":{"id":"ZLy-BBzWQeEg"}},{"cell_type":"markdown","source":["## 토큰 분류를 위한 사용자 정의 모델 만들기"],"metadata":{"id":"2cSDj1_vTZMP"}},{"cell_type":"code","source":["import torch.nn as nn\n","from transformers import XLMRobertaConfig\n","from transformers.modeling_outputs import TokenClassifierOutput\n","from transformers.models.roberta.modeling_roberta import RobertaModel\n","from transformers.models.roberta.modeling_roberta import RobertaPreTrainedModel\n","\n","class XLMRobertaForTokenClassification(RobertaPreTrainedModel):\n"," config_class = XLMRobertaConfig\n","\n"," def __init__(self, config):\n"," super().__init__(config)\n"," self.num_labels = config.num_labels\n"," # 모델 바디를 로드\n"," self.roberta = RobertaModel(config, add_pooling_layer=False)\n"," # 토큰 분류 헤드를 준비\n"," self.dropout = nn.Dropout(config.hidden_dropout_prob)\n"," self.classifier = nn.Linear(config.hidden_size, config.num_labels)\n"," # 가중치를 로드하고 초기화\n"," self.init_weights()\n","\n"," def forward(self, input_ids=None, attention_mask=None, token_type_ids=None, labels=None, **kwargs):\n"," # 모델 바디를 사용해 인코더 표현을 얻음\n"," outputs = self.roberta(input_ids, attention_mask=attention_mask, token_type_ids=token_type_ids, **kwargs)\n"," # 인코더 표현을 헤드에 통과\n"," sequence_output = self.dropout(outputs[0])\n"," logits = self.classifier(sequence_output)\n"," # 손실을 계산\n"," loss = None\n"," if labels is not None:\n"," loss_fct = nn.CrossEntropyLoss()\n"," loss = loss_fct(logits.view(-1, self.num_labels), labels.view(-1))\n"," # 모델 출력 객체를 반환\n"," return TokenClassifierOutput(loss=loss, logits=logits, hidden_states=outputs.hidden_states, attentions=outputs.attentions)"],"metadata":{"id":"dUoKNNdjTWk3","executionInfo":{"status":"ok","timestamp":1675821080583,"user_tz":-540,"elapsed":1798,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}}},"execution_count":17,"outputs":[]},{"cell_type":"markdown","source":["- config 클래스는 새로운 모델을 초기화할 때 표준 XLM-R 설정을 사용하도록 도와줌\n","- super() 메서드로 RobertaPreTrainedModel 클래스의 초기화 함수를 호출\n"," - 사전 훈련된 가중치의 초기화나 로딩을 처리\n","- add_pooling_layer=False로 지정하여 [CLS] 토큰에 해당하는 은닉 상태 외에 모든 은닉 상태가 반환되도록 함\n"," - add_pooling_layer의 기본값은 True로 첫 번째 토큰의 은닉 상태만 밀집 층과 활성화 함수에 통과시켜 출력\n","- RobertaPreTrainedModel 클래스에서 상속된 init_weights() 메서드를 호출해 가중치를 초기화\n"," - 모델 바디에 사전훈련된 가중치가 로드되고 토큰 분류 헤드의 가중치가 랜덤하게 초기화 될 것"],"metadata":{"id":"9CHPVLJsjJp6"}},{"cell_type":"code","source":["# [tags를 정의했던 위 코드]\n","# tags = panx_ch[\"de\"][\"train\"].features[\"ner_tags\"].feature\n","# ClassLabel(names=['O', 'B-PER', 'I-PER', 'B-ORG', 'I-ORG', 'B-LOC', 'I-LOC'], id=None)\n","\n","index2tag = {idx: tag for idx, tag in enumerate(tags.names)}\n","tag2index = {tag: idx for idx, tag in enumerate(tags.names)}"],"metadata":{"id":"Bic1OxxBkJGU","executionInfo":{"status":"ok","timestamp":1675821080583,"user_tz":-540,"elapsed":5,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}}},"execution_count":18,"outputs":[]},{"cell_type":"code","source":["from transformers import AutoConfig\n","\n","xlmr_config = AutoConfig.from_pretrained(xlmr_model_name, num_labels=tags.num_classes, id2label=index2tag, label2id=tag2index)"],"metadata":{"id":"kU7yY0YGkWAX","executionInfo":{"status":"ok","timestamp":1675821081789,"user_tz":-540,"elapsed":1210,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}}},"execution_count":19,"outputs":[]},{"cell_type":"markdown","source":["AutoConfig 클래스는 모델 구조의 청사진을 가짐. AutoModel.from_pretrained(model_ckpt)로 모델을 로드할 때 모델에 연관된 설정 파일이 자동으로 다운로드 됨. but, 클래스 개수나 레이블 이름 등을 수정하고자 한다면 커스터마이징 하려는 매개변수로 이 설정 파일을 먼저 로드해야 함"],"metadata":{"id":"oH2i5fvHleg-"}},{"cell_type":"code","source":["# from_pretrained() 함수를 사용해 모델 가중치를 로드\n","import torch\n","\n","device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n","xlmr_model = (XLMRobertaForTokenClassification.from_pretrained(xlmr_model_name, config=xlmr_config).to(device))"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":156,"referenced_widgets":["ee35beb51277432a80c6c507ea941e81","9977e174493d4522b4ad8643c0a7b534","1ba89974c87e4c6a818f6a85c03b55c8","96861e3ec0124949a8dfbbd9a3f8ae4d","52f2ce5e3e4246b8a503b21ad531e9ed","5d26e3b64c4444f3a772c33f95906e7e","42c224b56c9c4b548abd21c97122ad41","e8c85c704de8418eb3363b8ad9a6146c","e8eb5682d2334e1d8833a209f2dbd826","464ca3b6b1694d93becbabba2bc5f2e6","11c5f0454f774718a6d4efb4ba63cae7"]},"id":"g5F0vtmhl9hX","executionInfo":{"status":"ok","timestamp":1675821105942,"user_tz":-540,"elapsed":23379,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"cb75f3fd-ab52-4ab9-b170-291b0cfe1aa3"},"execution_count":20,"outputs":[{"output_type":"display_data","data":{"text/plain":["Downloading (…)\"pytorch_model.bin\";: 0%| | 0.00/1.12G [00:00 ▁Jack ▁Spar row ▁love s ▁Net ▁York ! \n","Input IDs 0 21763 37456 15555 5161 7 10086 5753 38 2"],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
0123456789
Tokens<s>▁Jack▁Sparrow▁loves▁Net▁York!</s>
Input IDs021763374561555551617100865753382
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":21}]},{"cell_type":"code","source":["# 모델에 입력 ID를 전달하고 argmax 함수로 토큰마다 확률이 가장 높은 클래스를 선택해 예측\n","outputs = xlmr_model(input_ids.to(device)).logits\n","predictions = torch.argmax(outputs, dim=-1)\n","print(f\"시퀀스에 있는 토큰 개수: {len(xlmr_tokens)}\")\n","print(f\"출력 크기: {outputs.shape}\")"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"vlbSyjXyoJTG","executionInfo":{"status":"ok","timestamp":1675821109156,"user_tz":-540,"elapsed":3235,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"df541869-115e-4290-ee75-45c55501a5d8"},"execution_count":22,"outputs":[{"output_type":"stream","name":"stdout","text":["시퀀스에 있는 토큰 개수: 10\n","출력 크기: torch.Size([1, 10, 7])\n"]}]},{"cell_type":"markdown","source":["로짓의 크기는 [batch_size, num_tokens, num_tags] 이고 이는 각 토큰에는 일곱 개의 NER 태그와 로짓이 주어졌다는 의미."],"metadata":{"id":"_PU1GEl7ncS2"}},{"cell_type":"code","source":["print(predictions[0])\n","preds = [tags.names[p] for p in predictions[0].cpu().numpy()]\n","pd.DataFrame([xlmr_tokens, preds], index=[\"Tokens\", \"Tags\"])"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":129},"id":"5ZgZTLSOoxQ3","executionInfo":{"status":"ok","timestamp":1675821109156,"user_tz":-540,"elapsed":36,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"d7891b06-b22f-4248-9c7a-406ecfa12a69"},"execution_count":23,"outputs":[{"output_type":"stream","name":"stdout","text":["tensor([5, 1, 1, 1, 5, 1, 3, 3, 1, 5], device='cuda:0')\n"]},{"output_type":"execute_result","data":{"text/plain":[" 0 1 2 3 4 5 6 7 8 9\n","Tokens ▁Jack ▁Spar row ▁love s ▁Net ▁York ! \n","Tags B-LOC B-PER B-PER B-PER B-LOC B-PER B-ORG B-ORG B-PER B-LOC"],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
0123456789
Tokens<s>▁Jack▁Sparrow▁loves▁Net▁York!</s>
TagsB-LOCB-PERB-PERB-PERB-LOCB-PERB-ORGB-ORGB-PERB-LOC
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":23}]},{"cell_type":"markdown","source":["랜덤한 가중치를 가진 토큰 분류 층은 역시나 개선할 여지가 많음. 레이블링된 데이터로 미세 튜닝하여 결과를 더 좋게 만들어야 할걸로 보임"],"metadata":{"id":"oj3AK1bdpzRi"}},{"cell_type":"code","source":["def tag_text(text, tags, model, tokenizer):\n"," # 토큰을 준비\n"," tokens = tokenizer(text).tokens()\n"," # 시퀀스를 입력 ID로 인코딩\n"," input_ids = xlmr_tokenizer(text, return_tensors=\"pt\").input_ids.to(device)\n"," # 가능한 일곱 개의 클래스에 대한 로짓을 출력\n"," outputs = model(input_ids)[0]\n"," # argmax 함수로 토큰마다 가장 가능성이 높은 클래스를 선택\n"," predictions = torch.argmax(outputs, dim=2)\n"," # 데이터프레임으로 변환\n"," preds = [tags.names[p] for p in predictions[0].cpu().numpy()]\n"," return pd.DataFrame([tokens, preds], index=[\"Tokens\", \"Tags\"])"],"metadata":{"id":"RVr30Mhop-PV","executionInfo":{"status":"ok","timestamp":1675821109157,"user_tz":-540,"elapsed":31,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}}},"execution_count":24,"outputs":[]},{"cell_type":"markdown","source":["# NER 작업을 위해 텍스트 토큰화\n","샘플을 인코딩하고 처리하는 토크나이저와 모델을 준비했으므로 다음 단계로 미세 튜닝을 위해 XLM-R 모델에 전달할 전체 데이터셋을 토큰화. 데이터셋은 map() 연산으로 Dataset 객체를 빠르게 토큰화"],"metadata":{"id":"4OcVZdPvp6Zv"}},{"cell_type":"code","source":["# [de_example 정의했던 코드]\n","# de_example = panx_de[\"train\"][0]\n","# pd.DataFrame([de_example[\"tokens\"], de_example[\"ner_tags_str\"]], ['Tokens', 'Tags'])\n","\n","words, labels = de_example[\"tokens\"], de_example[\"ner_tags\"]"],"metadata":{"id":"BauOi1Cvsk6n","executionInfo":{"status":"ok","timestamp":1675821109157,"user_tz":-540,"elapsed":30,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}}},"execution_count":25,"outputs":[]},{"cell_type":"code","source":["# 각 단어를 토큰화, 토크나이저에 is_split_into_words 매개변수를 사용해 입력 문장이 이미 단어로 나눠졌다는 사실을 전달\n","\n","tokenized_input = xlmr_tokenizer(de_example[\"tokens\"], is_split_into_words=True)\n","print(tokenized_input)\n","tokens = xlmr_tokenizer.convert_ids_to_tokens(tokenized_input[\"input_ids\"])\n","pd.DataFrame([tokens], index=[\"Tokens\"])"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":147},"id":"rYXQzYcqtBGA","executionInfo":{"status":"ok","timestamp":1675821109157,"user_tz":-540,"elapsed":30,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"9efee2f0-01ab-4924-9b3a-2a718a581cb6"},"execution_count":26,"outputs":[{"output_type":"stream","name":"stdout","text":["{'input_ids': [0, 70101, 176581, 19, 142, 122, 2290, 708, 1505, 18363, 18, 23, 122, 127474, 15439, 13787, 14, 15263, 18917, 663, 6947, 19, 6, 5, 2], 'attention_mask': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]}\n"]},{"output_type":"execute_result","data":{"text/plain":[" 0 1 2 3 4 5 6 7 8 9 ... 15 \\\n","Tokens ▁2.000 ▁Einwohner n ▁an ▁der ▁Dan zi ger ▁Buch ... ▁Wo \n","\n"," 16 17 18 19 20 21 22 23 24 \n","Tokens i wod schaft ▁Po mmer n ▁ . \n","\n","[1 rows x 25 columns]"],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
0123456789...15161718192021222324
Tokens<s>▁2.000▁Einwohnern▁an▁der▁Danziger▁Buch...▁Woiwodschaft▁Pommern.</s>
\n","

1 rows × 25 columns

\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":26}]},{"cell_type":"markdown","source":["'Einwohnern'을 두 개의 부분 단어 '_Einwohner'와 'n'으로 나눔. '_Einwohner'만 B-LOC 레이블에 연결해야한다는 규칙을 따라야 하므로 첫 번째 부분단어 이후의 부분단어는 마스킹
\n","이 작업에 도움이되는 **word_idx()** 함수가 존재"],"metadata":{"id":"tlkzUfpsuhnQ"}},{"cell_type":"code","source":["word_ids = tokenized_input.word_ids()\n","pd.DataFrame([tokens, word_ids], index=[\"Tokens\", \"Word IDs\"])"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":141},"id":"qRM2SXAAu8L-","executionInfo":{"status":"ok","timestamp":1675821109157,"user_tz":-540,"elapsed":27,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"fa1f0f28-c7dc-4ed9-bbbb-53a9ac316bae"},"execution_count":27,"outputs":[{"output_type":"execute_result","data":{"text/plain":[" 0 1 2 3 4 5 6 7 8 9 ... \\\n","Tokens ▁2.000 ▁Einwohner n ▁an ▁der ▁Dan zi ger ▁Buch ... \n","Word IDs None 0 1 1 2 3 4 4 4 5 ... \n","\n"," 15 16 17 18 19 20 21 22 23 24 \n","Tokens ▁Wo i wod schaft ▁Po mmer n ▁ . \n","Word IDs 9 9 9 9 10 10 10 11 11 None \n","\n","[2 rows x 25 columns]"],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
0123456789...15161718192021222324
Tokens<s>▁2.000▁Einwohnern▁an▁der▁Danziger▁Buch...▁Woiwodschaft▁Pommern.</s>
Word IDsNone011234445...99991010101111None
\n","

2 rows × 25 columns

\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":27}]},{"cell_type":"markdown","source":["word_ids는 각 부분단어를 words 리스트에 있는 해당 단어의 인덱스에 매핑. 같은 특수 토큰과 부분단어의 레이블을 -100으로 설정해 훈련하는 동안 마스킹 처리"],"metadata":{"id":"PJLzO46q1xyj"}},{"cell_type":"code","source":["previous_word_idx = None\n","label_ids = []\n","\n","for word_idx in word_ids:\n"," if word_idx is None or word_idx == previous_word_idx:\n"," label_ids.append(-100)\n"," elif word_idx != previous_word_idx:\n"," label_ids.append(labels[word_idx])\n"," previous_word_idx = word_idx\n","\n","labels = [index2tag[l] if l != -100 else \"IGN\" for l in label_ids]\n","index = [\"Tokens\", \"Word IDs\", \"Label IDs\", \"Labels\"]\n","\n","pd.DataFrame([tokens, word_ids, label_ids, labels], index=index)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":204},"id":"7-zfZERZ1wV3","executionInfo":{"status":"ok","timestamp":1675821109157,"user_tz":-540,"elapsed":26,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"1eddd254-07af-4424-ff1c-1d5a19654005"},"execution_count":28,"outputs":[{"output_type":"execute_result","data":{"text/plain":[" 0 1 2 3 4 5 6 7 8 \\\n","Tokens ▁2.000 ▁Einwohner n ▁an ▁der ▁Dan zi ger \n","Word IDs None 0 1 1 2 3 4 4 4 \n","Label IDs -100 0 0 -100 0 0 5 -100 -100 \n","Labels IGN O O IGN O O B-LOC IGN IGN \n","\n"," 9 ... 15 16 17 18 19 20 21 22 23 \\\n","Tokens ▁Buch ... ▁Wo i wod schaft ▁Po mmer n ▁ . \n","Word IDs 5 ... 9 9 9 9 10 10 10 11 11 \n","Label IDs 6 ... 5 -100 -100 -100 6 -100 -100 0 -100 \n","Labels I-LOC ... B-LOC IGN IGN IGN I-LOC IGN IGN O IGN \n","\n"," 24 \n","Tokens \n","Word IDs None \n","Label IDs -100 \n","Labels IGN \n","\n","[4 rows x 25 columns]"],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
0123456789...15161718192021222324
Tokens<s>▁2.000▁Einwohnern▁an▁der▁Danziger▁Buch...▁Woiwodschaft▁Pommern.</s>
Word IDsNone011234445...99991010101111None
Label IDs-10000-100005-100-1006...5-100-100-1006-100-1000-100-100
LabelsIGNOOIGNOOB-LOCIGNIGNI-LOC...B-LOCIGNIGNIGNI-LOCIGNIGNOIGNIGN
\n","

4 rows × 25 columns

\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":28}]},{"cell_type":"markdown","source":["부분단어 표현을 마스킹하기 위해 ID로 -100을 선택한 이유로는 파이토치에 있는 크로스 엔트로피 손실 클래스의 ignore_index 속성 값이 -100이기 때문, 훈련하는 동안 이 인덱스는 무시되게 됨"],"metadata":{"id":"m89eNitd2-e6"}},{"cell_type":"code","source":["def tokenize_and_align_labels(examples):\n"," tokenized_inputs = xlmr_tokenizer(examples[\"tokens\"], truncation=True, is_split_into_words=True)\n"," \n"," labels = []\n"," for idx, label in enumerate(examples[\"ner_tags\"]):\n"," word_ids = tokenized_inputs.word_ids(batch_index=idx)\n"," previous_word_idx = None\n"," label_ids = []\n"," for word_idx in word_ids:\n"," if word_idx is None or word_idx == previous_word_idx:\n"," label_ids.append(-100)\n"," else:\n"," label_ids.append(label[word_idx])\n"," previous_word_idx = word_idx\n"," labels.append(label_ids)\n"," tokenized_inputs[\"labels\"] = labels\n"," return tokenized_inputs"],"metadata":{"id":"bmWsLeKjV-z2","executionInfo":{"status":"ok","timestamp":1675821109157,"user_tz":-540,"elapsed":25,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}}},"execution_count":29,"outputs":[]},{"cell_type":"code","source":["def encode_panx_dataset(corpus):\n"," return corpus.map(tokenize_and_align_labels, batched=True, remove_columns=['langs', 'ner_tags', 'tokens'])"],"metadata":{"id":"1uvxuo0WXLfZ","executionInfo":{"status":"ok","timestamp":1675821109158,"user_tz":-540,"elapsed":26,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}}},"execution_count":30,"outputs":[]},{"cell_type":"code","source":["panx_de_encoded = encode_panx_dataset(panx_ch[\"de\"])"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":113,"referenced_widgets":["0bf41f331c6347ce8234765a9fcafec9","2692a1f9e28f4c64a1a4fd2550891c13","4148c5ec326741988d19b1d8d0267a0b","df6cd3aa244640d2a78b48112e80bccb","8de43e7ba0a642c3adf25b2638faa5d5","c382f6836bbd400b858ea39956e2e5db","48aa12534f9843e3bbf5921c28653b58","d4c1121465e2434a8892e778a06942b3","1ed3f14248cd455b91a76bd2aa11889f","a9b1f253f089466d96411c9e7562df44","8a43e1fa5c354852b8218c5e8db69fb6","1c0d5ec20f0d42c6ad7fa2885c9be26c","7dece95e5cff46e282161be507beead5","b32512787c384ba682b283f5208eae16","92f6ba0adb9b44d5b4162c4ba62a02b4","e04c275119b64865bfd35e99aabee6d1","afe3bdd6130d47fba48a2841ef258e04","4ac033289560420ab03259fb6ffd20b1","10e064dff423490ca81202ace809a920","ab51d2a5d4e64ab8839ee72a5005d2e4","62201e8a763a4c07bf742defdf11deb3","c2f406629c894c3ab7d1ab0c573de517","0dbf0628de1a4e17a020f36300fd0bb9","96f57e7e3c4c4b16b4c1d4668a9458fc","5a6cd25a886d4a728eb5bedbfa77d991","bc2b0a8fcd8347acbbc58154d21c7b3f","c279a65ea1944618b945a9810ca3043f","c1603434742540d48ab49ec46046c0f0","e81dbce463ea47cc9f5bee10ffbb4def","933e4839e16f4bd8a87c246634bf1173","8d12cf18d4414d538ce8c242299c93b3","d4c960f718754d26b339d4e11371409f","60342e3d9d264b76bcedb75e75606b89"]},"id":"DDKva6SaXZ0i","executionInfo":{"status":"ok","timestamp":1675821111509,"user_tz":-540,"elapsed":2377,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"dae1d3e6-3916-4e4e-c8dd-55062fa0306f"},"execution_count":31,"outputs":[{"output_type":"display_data","data":{"text/plain":[" 0%| | 0/13 [00:00\n","
\n","seqeval 라이브러리를 사용"],"metadata":{"id":"G19YlRxrX2do"}},{"cell_type":"code","source":["!pip install seqeval"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"fPg8R9AaYzo9","executionInfo":{"status":"ok","timestamp":1675821119967,"user_tz":-540,"elapsed":8465,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"374f35ae-a34d-4e8f-d33c-8449201699fb"},"execution_count":32,"outputs":[{"output_type":"stream","name":"stdout","text":["Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n","Collecting seqeval\n"," Downloading seqeval-1.2.2.tar.gz (43 kB)\n","\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m43.6/43.6 KB\u001b[0m \u001b[31m2.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[?25h Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n","Requirement already satisfied: numpy>=1.14.0 in /usr/local/lib/python3.8/dist-packages (from seqeval) (1.21.6)\n","Requirement already satisfied: scikit-learn>=0.21.3 in /usr/local/lib/python3.8/dist-packages (from seqeval) (1.0.2)\n","Requirement already satisfied: scipy>=1.1.0 in /usr/local/lib/python3.8/dist-packages (from scikit-learn>=0.21.3->seqeval) (1.7.3)\n","Requirement already satisfied: threadpoolctl>=2.0.0 in /usr/local/lib/python3.8/dist-packages (from scikit-learn>=0.21.3->seqeval) (3.1.0)\n","Requirement already satisfied: joblib>=0.11 in /usr/local/lib/python3.8/dist-packages (from scikit-learn>=0.21.3->seqeval) (1.2.0)\n","Building wheels for collected packages: seqeval\n"," Building wheel for seqeval (setup.py) ... \u001b[?25l\u001b[?25hdone\n"," Created wheel for seqeval: filename=seqeval-1.2.2-py3-none-any.whl size=16179 sha256=c763e2631784352be3bf6f1d8e2dc9e8819e6ff8c1582528886bfa3a8a170802\n"," Stored in directory: /root/.cache/pip/wheels/ad/5c/ba/05fa33fa5855777b7d686e843ec07452f22a66a138e290e732\n","Successfully built seqeval\n","Installing collected packages: seqeval\n","Successfully installed seqeval-1.2.2\n"]}]},{"cell_type":"code","source":["from seqeval.metrics import classification_report\n","\n","y_true = [[\"O\", \"O\", \"O\", \"B-MISC\", \"I-MISC\", \"I-MISC\", \"O\"], [\"B-PER\", \"I-PER\", \"O\"]]\n","y_pred = [[\"O\", \"O\", \"B-MISC\", \"I-MISC\", \"I-MISC\", \"I-MISC\", \"O\"], [\"B-PER\", \"I-PER\", \"O\"]]\n","\n","print(classification_report(y_true, y_pred))"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"Os-Bhu0EYL-8","executionInfo":{"status":"ok","timestamp":1675821120368,"user_tz":-540,"elapsed":406,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"179b1fe3-9138-4606-ffda-79454d01bf50"},"execution_count":33,"outputs":[{"output_type":"stream","name":"stdout","text":[" precision recall f1-score support\n","\n"," MISC 0.00 0.00 0.00 1\n"," PER 1.00 1.00 1.00 1\n","\n"," micro avg 0.50 0.50 0.50 2\n"," macro avg 0.50 0.50 0.50 2\n","weighted avg 0.50 0.50 0.50 2\n","\n"]}]},{"cell_type":"markdown","source":["seqeval은 리스트의 리스트로 구성된 예측과 레이블을 입력받음. 이런 지표를 훈련 과정에 통합하려면 모델 출력을 seqeval가 기대하는 리스트로 변환하는 함수가 필요. 이를 위해 연속된 부분단어의 레이블 ID는 무시하는 작업이 필요"],"metadata":{"id":"i0OmBlByZSDh"}},{"cell_type":"code","source":["import numpy as np\n","\n","def align_predictions(predictions, label_ids):\n"," preds = np.argmax(predictions, axis=2)\n"," batch_size, seq_len = preds.shape\n"," labels_list, preds_list = [], []\n","\n"," for batch_idx in range(batch_size):\n"," example_labels, example_preds = [], []\n"," for seq_idx in range(seq_len):\n"," # 레이블 IDs = -100 무시\n"," if label_ids[batch_idx, seq_idx] != -100:\n"," example_labels.append(index2tag[label_ids[batch_idx][seq_idx]])\n"," example_preds.append(index2tag[preds[batch_idx][seq_idx]])\n","\n"," labels_list.append(example_labels)\n"," preds_list.append(example_preds)\n","\n"," return preds_list, labels_list"],"metadata":{"id":"4jybU_ppZhRQ","executionInfo":{"status":"ok","timestamp":1675821120368,"user_tz":-540,"elapsed":3,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}}},"execution_count":34,"outputs":[]},{"cell_type":"markdown","source":["# XLM-RoBERTa 미세튜닝\n","PAN-X의 독일어 서브셋에 베이스 모델을 미세튜닝하고 프랑스어, 이태리어, 영어에서 제로샷 교차 언어 성능을 평가. 트랜스포머스 Trainer를 사용해 훈련 루프 처리"],"metadata":{"id":"U6UChFKpa9iq"}},{"cell_type":"code","source":["from transformers import TrainingArguments\n","\n","num_epochs = 3\n","batch_size = 24\n","logging_steps = len(panx_de_encoded[\"train\"])\n","model_name = f\"{xlmr_model_name}-finetuned-panx-de\"\n","training_args = TrainingArguments(output_dir=model_name, \n"," log_level=\"error\",\n"," num_train_epochs=num_epochs,\n"," per_device_train_batch_size=batch_size,\n"," per_device_eval_batch_size=batch_size,\n"," evaluation_strategy=\"epoch\",\n"," save_steps=1e6,\n"," weight_decay=0.01,\n"," disable_tqdm=False,\n"," logging_steps=logging_steps,\n"," push_to_hub=False)"],"metadata":{"id":"XdWVVYu5bJ9a","executionInfo":{"status":"ok","timestamp":1675821120368,"user_tz":-540,"elapsed":3,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}}},"execution_count":35,"outputs":[]},{"cell_type":"markdown","source":["검증 세트에서 평가 지표를 어떻게 계산해야 할지 Trainer로 전달해야 함 "],"metadata":{"id":"gg6J8oMzcT5y"}},{"cell_type":"code","source":["from seqeval.metrics import f1_score\n","\n","def compute_metrics(eval_pred):\n"," y_pred, y_true = align_predictions(eval_pred.predictions, eval_pred.label_ids)\n"," return {\"f1\": f1_score(y_true, y_pred)}"],"metadata":{"id":"i39ycBuhcC9e","executionInfo":{"status":"ok","timestamp":1675821120368,"user_tz":-540,"elapsed":3,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}}},"execution_count":36,"outputs":[]},{"cell_type":"markdown","source":["배치에서 가장 큰 시퀀스 길이로 입력 시퀀스를 패딩하도록 데이터 콜레이터(data collator)를 정의. 트랜스포머스는 토큰 분류를 위해 입력과 레이블을 패딩하는 전용 데이터 콜레이터를 제공"],"metadata":{"id":"Lhwpoa-Pcd1s"}},{"cell_type":"code","source":["from transformers import DataCollatorForTokenClassification\n","\n","data_collator = DataCollatorForTokenClassification(xlmr_tokenizer)"],"metadata":{"id":"lLfASUe6cmtH","executionInfo":{"status":"ok","timestamp":1675821120368,"user_tz":-540,"elapsed":2,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}}},"execution_count":37,"outputs":[]},{"cell_type":"markdown","source":["레이블도 시퀀스이기에 레이블 패딩도 필수"],"metadata":{"id":"F5mwIWiPcz8e"}},{"cell_type":"markdown","source":["Trainer를 위해 매번 새로운 모델을 만들지 않도록 model_init() 함수 제작. train() 메서드를 호출시 이 함수가 호출되어 훈련되지 않은 모델을 로드"],"metadata":{"id":"OiTxzDyAc4NX"}},{"cell_type":"code","source":["def model_init():\n"," return (XLMRobertaForTokenClassification.from_pretrained(xlmr_model_name, config=xlmr_config).to(device))"],"metadata":{"id":"fHxrwxLYdChA","executionInfo":{"status":"ok","timestamp":1675821120368,"user_tz":-540,"elapsed":2,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}}},"execution_count":38,"outputs":[]},{"cell_type":"markdown","source":["Encoding된 데이터셋과 함께 모든 정보를 Trainer에 전달"],"metadata":{"id":"MPGRlJimdoLF"}},{"cell_type":"code","source":["from transformers import Trainer\n","\n","trainer = Trainer(model_init=model_init,\n"," args=training_args,\n"," data_collator=data_collator,\n"," compute_metrics=compute_metrics,\n"," train_dataset=panx_de_encoded[\"train\"],\n"," eval_dataset=panx_de_encoded[\"validation\"],\n"," tokenizer=xlmr_tokenizer)"],"metadata":{"id":"FkzonrDedOZY","executionInfo":{"status":"ok","timestamp":1675821123421,"user_tz":-540,"elapsed":3055,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}}},"execution_count":39,"outputs":[]},{"cell_type":"code","source":["trainer.train()"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":259},"id":"dp6ZZb8RdswR","executionInfo":{"status":"ok","timestamp":1675821640752,"user_tz":-540,"elapsed":517333,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"ffbdff70-13ec-4e23-afff-4cbbcfcb0248"},"execution_count":40,"outputs":[{"output_type":"stream","name":"stderr","text":["/usr/local/lib/python3.8/dist-packages/transformers/optimization.py:306: FutureWarning: This implementation of AdamW is deprecated and will be removed in a future version. Use the PyTorch implementation torch.optim.AdamW instead, or set `no_deprecation_warning=True` to disable this warning\n"," warnings.warn(\n"]},{"output_type":"display_data","data":{"text/plain":[""],"text/html":["\n","
\n"," \n"," \n"," [1575/1575 08:33, Epoch 3/3]\n","
\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
EpochTraining LossValidation LossF1
1No log0.1621390.820606
2No log0.1379300.848582
3No log0.1357940.863830

"]},"metadata":{}},{"output_type":"execute_result","data":{"text/plain":["TrainOutput(global_step=1575, training_loss=0.1560986812531002, metrics={'train_runtime': 513.6597, 'train_samples_per_second': 73.473, 'train_steps_per_second': 3.066, 'total_flos': 863012377186080.0, 'train_loss': 0.1560986812531002, 'epoch': 3.0})"]},"metadata":{},"execution_count":40}]},{"cell_type":"code","source":["text_de = \"Jeff Dean ist ein Informatiker bei Google in Kalifornien\"\n","tag_text(text_de, tags, trainer.model, xlmr_tokenizer)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":112},"id":"KhAcv-0Tg570","executionInfo":{"status":"ok","timestamp":1675821640752,"user_tz":-540,"elapsed":27,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"a3967115-e433-4c8b-a517-e363936451c8"},"execution_count":41,"outputs":[{"output_type":"execute_result","data":{"text/plain":[" 0 1 2 3 4 5 6 7 8 9 \\\n","Tokens ▁Jeff ▁De an ▁ist ▁ein ▁Informati ker ▁bei ▁Google \n","Tags O B-PER I-PER I-PER O O O O O B-ORG \n","\n"," 10 11 12 13 \n","Tokens ▁in ▁Kaliforni en \n","Tags O B-LOC I-LOC I-PER "],"text/html":["\n","

\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
012345678910111213
Tokens<s>▁Jeff▁Dean▁ist▁ein▁Informatiker▁bei▁Google▁in▁Kalifornien</s>
TagsOB-PERI-PERI-PEROOOOOB-ORGOB-LOCI-LOCI-PER
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":41}]},{"cell_type":"markdown","source":["# 오류 분석\n","모델의 실패 유형\n","1. 우연히 너무 많은 토큰을 마스킹, 일부 레이블도 마스킹하여 제대로 훈련되는 것처럼 손실이 감소\n","2. compute_metrics() 함수에 실제 성능을 과대평가하는 버그\n","3. NER에 0 클래스 또는 O개체명이 일반 클래스처럼 포함될 때가 존재\n","\n","
\n","\n","모델의 성능이 기대에 못 미칠 때 오류를 살펴보면, 유용한 통찰을 얻고 코드만 봐서는 찾기 힘든 버그를 발견하게 됨.
\n","오류 분석을 위한 방법으로 **손실이 가장 큰 검증 샘플을 살펴보는 것**. 샘플 시퀀스의 토큰마다 손실을 계산"],"metadata":{"id":"kNA8C7eHhPfM"}},{"cell_type":"code","source":["from torch.nn.functional import cross_entropy\n","\n","def forward_pass_with_label(batch):\n"," # 리스트의 딕셔너리를 데이터 콜레이터에 적합한 딕셔너리의 리스트로 변환\n"," features = [dict(zip(batch, t)) for t in zip(*batch.values())]\n"," # 입력과 레이블을 패딩하고 모든 텐서를 장치에 배치\n"," batch = data_collator(features)\n"," input_ids = batch[\"input_ids\"].to(device)\n"," attention_mask = batch[\"attention_mask\"].to(device)\n"," labels = batch[\"labels\"].to(device)\n"," with torch.no_grad():\n"," # 데이터를 모델에 전달\n"," output = trainer.model(input_ids, attention_mask)\n"," # logit.size: [batch_size, sequence_length, classes]\n"," # 마지막 축을 따라 가장 큰 로짓 값을 가진 클래스를 선택\n"," predicted_label = torch.argmax(output.logits, axis=-1).cpu().numpy()\n"," # 배치 차원을 펼친 다음 토큰마다 손실을 계산\n"," loss = cross_entropy(output.logits.view(-1, 7), labels.view(-1), reduction=\"none\")\n"," # 배치 차원을 다시 만들고 넘파이 배열로 변환\n"," loss = loss.view(len(input_ids), -1).cpu().numpy()\n","\n"," return {\"loss\":loss, \"predicted_label\": predicted_label}"],"metadata":{"id":"6vAZdu1Nh1GH","executionInfo":{"status":"ok","timestamp":1675821640752,"user_tz":-540,"elapsed":7,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}}},"execution_count":42,"outputs":[]},{"cell_type":"code","source":["valid_set = panx_de_encoded[\"validation\"]\n","valid_set = valid_set.map(forward_pass_with_label, batched=True, batch_size=32)\n","df = valid_set.to_pandas()"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":86,"referenced_widgets":["4cc6e9d90ff749db80a80877c4ceb88b","898cd3c6298d42dc9d0bd51adcee9069","c3597b8ec6734c35b028daea5e4a3bbb","31d42d93cd534bb09fc0d962b63ae09e","84ef7a7c8fc342d48da529843f65f2fa","e1fadba579f04906bcf21ff823e366f9","b9c6e83d7b8f4ec48de17c75776fbf59","17d21e082a4e460c956158a271ad48ee","42c79b0e7b364da98319a4cd8522eb13","fbe1408c5e624cc9becac343bcbdfff0","0a17783cd6264c85b3d75c6cbfc189b3"]},"id":"7HHXhKiNq0h5","executionInfo":{"status":"ok","timestamp":1675821669245,"user_tz":-540,"elapsed":28500,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"8a803f54-b85a-4955-8245-fb8242ef7fb7"},"execution_count":43,"outputs":[{"output_type":"stream","name":"stderr","text":["WARNING:datasets.fingerprint:Parameter 'function'= of the transform datasets.arrow_dataset.Dataset._map_single couldn't be hashed properly, a random hash was used instead. Make sure your transforms and parameters are serializable with pickle or dill for the dataset fingerprinting and caching to work. If you reuse this transform, the caching mechanism will consider it to be different from the previous calls and recompute everything. This warning is only showed once. Subsequent hashing failures won't be showed.\n"]},{"output_type":"display_data","data":{"text/plain":[" 0%| | 0/197 [00:00, ▁Ham, a, ▁(, ▁Unternehmen, ▁), ] "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
input_idsattention_masklabelslosspredicted_labelinput_tokens
0[0, 10699, 11, 15, 16104, 1388, 2][1, 1, 1, 1, 1, 1, 1][IGN, B-ORG, IGN, I-ORG, I-ORG, I-ORG, IGN][0.0, 0.01121267, 0.0, 0.012447174, 0.01018930...[I-ORG, B-ORG, I-ORG, I-ORG, I-ORG, I-ORG, I-ORG][<s>, ▁Ham, a, ▁(, ▁Unternehmen, ▁), </s>]
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":44}]},{"cell_type":"markdown","source":["pandas.Series.explode() 함수를 사용하여 한줄 코드로 리스트에 있는 각 원소를 하나의 행으로 만들 수 있음. IGN으로 표시된 패딩 토큰의 손실이 0이므로 이를 제외"],"metadata":{"id":"HQu-saGms15V"}},{"cell_type":"code","source":["df_tokens = df.apply(pd.Series.explode)\n","df_tokens = df_tokens.query(\"labels != 'IGN'\")\n","df_tokens[\"loss\"] = df_tokens[\"loss\"].astype(float).round(2)\n","df_tokens.head(7)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":269},"id":"rYMEatIIs9Ye","executionInfo":{"status":"ok","timestamp":1675821715442,"user_tz":-540,"elapsed":408,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"4105c8c6-2760-4259-c2cb-95e01609f71b"},"execution_count":46,"outputs":[{"output_type":"execute_result","data":{"text/plain":[" input_ids attention_mask labels loss predicted_label input_tokens\n","0 10699 1 B-ORG 0.01 B-ORG ▁Ham\n","0 15 1 I-ORG 0.01 I-ORG ▁(\n","0 16104 1 I-ORG 0.01 I-ORG ▁Unternehmen\n","0 1388 1 I-ORG 0.01 I-ORG ▁)\n","1 56530 1 O 0.00 O ▁WE\n","1 83982 1 B-ORG 2.90 B-PER ▁Luz\n","1 10 1 I-ORG 2.83 I-PER ▁a"],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
input_idsattention_masklabelslosspredicted_labelinput_tokens
0106991B-ORG0.01B-ORG▁Ham
0151I-ORG0.01I-ORG▁(
0161041I-ORG0.01I-ORG▁Unternehmen
013881I-ORG0.01I-ORG▁)
1565301O0.00O▁WE
1839821B-ORG2.90B-PER▁Luz
1101I-ORG2.83I-PER▁a
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":46}]},{"cell_type":"markdown","source":["데이터를 이런 형태로 마들면 입력 토큰을 기준으로 토큰 개수, 토큰 손실의 평균과 합을 계산하기 쉬움. "],"metadata":{"id":"ayD509cXtQBN"}},{"cell_type":"code","source":["# 손실의 총합을 기준으로 정렬해 검증 세트에서 누적 손실이 가장 큰 토큰 확인\n","(\n"," df_tokens.groupby(\"input_tokens\")[[\"loss\"]].agg([\"count\", \"mean\", \"sum\"]).droplevel(level=0, axis=1).sort_values(by=\"sum\", ascending=False).reset_index().round(2).head(10).T\n",")"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":175},"id":"AfNhDvEptchO","executionInfo":{"status":"ok","timestamp":1675821857551,"user_tz":-540,"elapsed":535,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"f89f88d1-7118-480e-cf17-999749e51a01"},"execution_count":48,"outputs":[{"output_type":"execute_result","data":{"text/plain":[" 0 1 2 3 4 5 6 7 \\\n","input_tokens ▁ ▁in ▁der ▁von ▁und ▁/ ▁'' ▁( \n","count 6066 989 1388 808 1171 163 2898 246 \n","mean 0.03 0.14 0.09 0.13 0.07 0.46 0.02 0.28 \n","sum 203.8 143.31 129.16 105.29 81.04 75.43 70.93 69.69 \n","\n"," 8 9 \n","input_tokens ▁) ▁A \n","count 246 125 \n","mean 0.26 0.46 \n","sum 63.74 57.43 "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
0123456789
input_tokens▁in▁der▁von▁und▁/▁''▁(▁)▁A
count6066989138880811711632898246246125
mean0.030.140.090.130.070.460.020.280.260.46
sum203.8143.31129.16105.2981.0475.4370.9369.6963.7457.43
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":48}]},{"cell_type":"markdown","source":["- 공백 토큰의 손실 총합이 가장 큼. 하지만 평균 손실은 다른 토큰에 비해 훨씬 낮아 모델이 이 토큰을 구분하는 데 큰 힘을 들이지 않는다는 의미\n","- 'in', 'von', 'der', 'und' 같은 단어가 비교적 자주 등장. 개체명과 함께 등장하거나 개체명의 일부인 경우가 많아 모델이 혼동하기 쉬움\n","- 단어 시작 부분의 괄호, 슬래시, 대문자는 드물지만 평균 손실이 매우 높음"],"metadata":{"id":"50cIVFjwxFYb"}},{"cell_type":"markdown","source":["레이블ID로 그룹핑해 각 클래스에 대한 손실도 확인 가능"],"metadata":{"id":"BsTGa7MmxdAq"}},{"cell_type":"code","source":["(\n"," df_tokens.groupby(\"labels\")[[\"loss\"]].agg([\"count\", \"mean\", \"sum\"]).droplevel(level=0, axis=1).sort_values(by=\"mean\", ascending=False).reset_index().round(2).T\n",")"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":175},"id":"IYFkJNjHxcRA","executionInfo":{"status":"ok","timestamp":1675822050165,"user_tz":-540,"elapsed":533,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"52ab611b-889d-48f7-99b6-e23570e39959"},"execution_count":49,"outputs":[{"output_type":"execute_result","data":{"text/plain":[" 0 1 2 3 4 5 6\n","labels B-ORG I-LOC I-ORG B-LOC B-PER I-PER O\n","count 2683 1462 3820 3172 2893 4139 43648\n","mean 0.62 0.61 0.48 0.33 0.27 0.19 0.03\n","sum 1675.56 897.82 1826.57 1035.34 792.12 786.43 1337.71"],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
0123456
labelsB-ORGI-LOCI-ORGB-LOCB-PERI-PERO
count26831462382031722893413943648
mean0.620.610.480.330.270.190.03
sum1675.56897.821826.571035.34792.12786.431337.71
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":49}]},{"cell_type":"markdown","source":["B-ORG의 평균 손실이 가장 높음. 이는 모델이 조직 이름의 시작 부분을 결정하기가 어렵다는 의미"],"metadata":{"id":"CCI8APArxzUz"}},{"cell_type":"markdown","source":["토큰 분류의 오차 행렬"],"metadata":{"id":"venW3kIhx-q1"}},{"cell_type":"code","source":["from sklearn.metrics import ConfusionMatrixDisplay, confusion_matrix\n","\n","import matplotlib.pyplot as plt\n","\n","def plot_confusion_matrix(y_preds, y_true, labels):\n"," cm = confusion_matrix(y_true, y_preds, normalize=\"true\")\n"," fig, ax = plt.subplots(figsize=(6,6))\n"," disp = ConfusionMatrixDisplay(confusion_matrix=cm, display_labels=labels)\n"," disp.plot(cmap=\"Blues\", values_format=\".2f\", ax=ax, colorbar=False)\n"," plt.title(\"Normalized confusion matrix\")\n"," plt.show()\n","\n","plot_confusion_matrix(df_tokens[\"labels\"], df_tokens[\"predicted_label\"], tags.names)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":404},"id":"Rr_DPaOWyCBJ","executionInfo":{"status":"ok","timestamp":1675822306178,"user_tz":-540,"elapsed":588,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"737d11c2-6a7d-4c47-8477-7d67570ab268"},"execution_count":52,"outputs":[{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"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\n"},"metadata":{"needs_background":"light"}}]},{"cell_type":"markdown","source":["모델이 B-ORG와 I-ORG를 가장 많이 혼동하는 경향을 보임"],"metadata":{"id":"et1XMNfoyyVo"}},{"cell_type":"markdown","source":["토큰 수준에서의 오류를 조사했으니 높은 손실을 내는 시퀀스를 확인.
\n","explode() 함수를 적용하기 전의 원래 DataFrame을 사용하여 토큰당 손실을 합산해 총 손실을 계산"],"metadata":{"id":"jIxU_vpQy7nn"}},{"cell_type":"code","source":["def get_samples(df):\n"," for _, row in df.iterrows():\n"," labels, preds, tokens, losses = [], [], [], []\n"," for i, mask in enumerate(row[\"attention_mask\"]):\n"," if i not in {0, len(row[\"attention_mask\"])}:\n"," labels.append(row[\"labels\"][i])\n"," preds.append(row[\"predicted_label\"][i])\n"," tokens.append(row[\"input_tokens\"][i])\n"," losses.append(f\"{row['loss'][i]:.2f}\")\n"," df_tmp = pd.DataFrame({\"tokens\": tokens, \"labels\": labels, \"preds\": preds, \"losses\": losses}).T\n"," yield df_tmp\n","\n","df[\"total_loss\"] = df[\"loss\"].apply(sum)\n","df_tmp = df.sort_values(by=\"total_loss\", ascending=False).head(3)\n","\n","for sample in get_samples(df_tmp):\n"," display(sample)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":490},"id":"gQ8-n0qQzErD","executionInfo":{"status":"ok","timestamp":1675822882048,"user_tz":-540,"elapsed":789,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"14c60418-8e39-4c8b-83de-e1190849dea6"},"execution_count":54,"outputs":[{"output_type":"display_data","data":{"text/plain":[" 0 1 2 3 4 5 6 7 8 9 \\\n","tokens ▁' ▁'' ▁Τ Κ ▁'' ▁' ▁' ▁'' ▁T ▁'' \n","labels O O O IGN O O B-LOC I-LOC I-LOC I-LOC \n","preds O O B-ORG B-ORG O O O O B-ORG O \n","losses 0.00 0.00 3.44 0.00 0.00 0.00 10.46 10.07 8.27 9.45 \n","\n"," 10 11 12 13 14 15 16 17 18 \n","tokens ▁' ri ▁'' ▁' k ▁'' ▁' ala \n","labels I-LOC IGN I-LOC I-LOC IGN I-LOC I-LOC IGN IGN \n","preds O O O O O O O O O \n","losses 10.15 0.00 9.87 10.14 0.00 10.09 10.17 0.00 0.00 "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
0123456789101112131415161718
tokens▁'▁''▁ΤΚ▁''▁'▁'▁''▁T▁''▁'ri▁''▁'k▁''▁'ala</s>
labelsOOOIGNOOB-LOCI-LOCI-LOCI-LOCI-LOCIGNI-LOCI-LOCIGNI-LOCI-LOCIGNIGN
predsOOB-ORGB-ORGOOOOB-ORGOOOOOOOOOO
losses0.000.003.440.000.000.0010.4610.078.279.4510.150.009.8710.140.0010.0910.170.000.00
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{}},{"output_type":"display_data","data":{"text/plain":[" 0 1 2 3 4 5 6 7 8 9 \\\n","tokens ▁'' 8 . ▁Juli ▁'' ▁: ▁Protest camp ▁auf ▁dem \n","labels B-ORG IGN IGN I-ORG I-ORG I-ORG I-ORG IGN I-ORG I-ORG \n","preds O O O O O O O O O O \n","losses 8.55 0.00 0.00 8.53 7.80 8.47 7.80 0.00 9.04 9.79 \n","\n"," 10 11 12 13 14 15 16 17 \n","tokens ▁Gelände ▁der ▁Republika n ischen ▁Gar de \n","labels I-ORG I-ORG I-ORG IGN IGN I-ORG IGN IGN \n","preds O O B-ORG I-ORG I-ORG I-ORG I-ORG O \n","losses 8.70 7.25 5.87 0.00 0.00 0.01 0.00 0.00 "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
01234567891011121314151617
tokens▁''8.▁Juli▁''▁:▁Protestcamp▁auf▁dem▁Gelände▁der▁Republikanischen▁Garde</s>
labelsB-ORGIGNIGNI-ORGI-ORGI-ORGI-ORGIGNI-ORGI-ORGI-ORGI-ORGI-ORGIGNIGNI-ORGIGNIGN
predsOOOOOOOOOOOOB-ORGI-ORGI-ORGI-ORGI-ORGO
losses8.550.000.008.537.808.477.800.009.049.798.707.255.870.000.000.010.000.00
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{}},{"output_type":"display_data","data":{"text/plain":[" 0 1 2 3 4 5 6 \\\n","tokens ▁United ▁Nations ▁Multi dimensional ▁Integra ted ▁Stabil \n","labels B-PER I-PER I-PER IGN I-PER IGN I-PER \n","preds B-ORG I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG \n","losses 6.26 5.70 6.25 0.00 6.13 0.00 5.89 \n","\n"," 7 8 9 10 11 12 13 14 \n","tokens ization ▁Mission ▁in ▁the ▁Central ▁African ▁Republic \n","labels IGN I-PER I-PER I-PER I-PER I-PER I-PER IGN \n","preds I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG \n","losses 0.00 5.74 5.50 5.81 5.95 5.88 5.63 0.00 "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
01234567891011121314
tokens▁United▁Nations▁Multidimensional▁Integrated▁Stabilization▁Mission▁in▁the▁Central▁African▁Republic</s>
labelsB-PERI-PERI-PERIGNI-PERIGNI-PERIGNI-PERI-PERI-PERI-PERI-PERI-PERIGN
predsB-ORGI-ORGI-ORGI-ORGI-ORGI-ORGI-ORGI-ORGI-ORGI-ORGI-ORGI-ORGI-ORGI-ORGI-ORG
losses6.265.706.250.006.130.005.890.005.745.505.815.955.885.630.00
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{}}]},{"cell_type":"markdown","source":["United Nations와 Central African Republic 이 모두 사람(PER)으로 레이블링 됨\n","
\n","PAN-X 데이터셋의 레이블이 자동으로 생성된것으로 보임. 이런 레이블을 '실버 스탠다드(silver standard)'라 함(사람이 생성한 레이블은 골드 스탠다드(gold standard)라 함)\n","
\n","괄호와 슬래시의 손실이 비교적 높음"],"metadata":{"id":"pO2taj-T1C9r"}},{"cell_type":"markdown","source":["# 교차 언어 전이\n","독일어에서 XLM-R을 미세 튜닝 했으므로 Trainer 클래스의 predict() 메서드를 사용해 다른 언어로 전이되는 능력을 평가"],"metadata":{"id":"J2fULCVG11Ff"}},{"cell_type":"code","source":["def get_f1_score(trainer, dataset):\n"," return trainer.predict(dataset).metrics[\"test_f1\"]"],"metadata":{"id":"HilLTf3k19gR","executionInfo":{"status":"ok","timestamp":1675823275711,"user_tz":-540,"elapsed":514,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}}},"execution_count":55,"outputs":[]},{"cell_type":"markdown","source":["테스트 세트의 성능을 평가"],"metadata":{"id":"rAGw8lNS2gwz"}},{"cell_type":"code","source":["f1_scores = defaultdict(dict)\n","f1_scores[\"de\"][\"de\"] = get_f1_score(trainer, panx_de_encoded[\"test\"])\n","print(f\"[de] 데이터셋에서 [de] 모델의 F1 점수: {f1_scores['de']['de']:.3f}\")"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":34},"id":"3Xxms1Eq2i85","executionInfo":{"status":"ok","timestamp":1675823425440,"user_tz":-540,"elapsed":18895,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"9b8c1ea4-a2a2-4d2d-f01e-af6e9398b8a6"},"execution_count":57,"outputs":[{"output_type":"display_data","data":{"text/plain":[""],"text/html":[]},"metadata":{}},{"output_type":"stream","name":"stdout","text":["[de] 데이터셋에서 [de] 모델의 F1 점수: 0.867\n"]}]},{"cell_type":"code","source":["# 프랑스어에서 점수 확인\n","text_fr = \"Jeff Dean est informaticien chez Google en californie\"\n","tag_text(text_fr, tags, trainer.model, xlmr_tokenizer)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":112},"id":"E_6LJ02q3DUC","executionInfo":{"status":"ok","timestamp":1675823477858,"user_tz":-540,"elapsed":722,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"567ca3c6-2f71-41d3-f85f-e38b489897fb"},"execution_count":58,"outputs":[{"output_type":"execute_result","data":{"text/plain":[" 0 1 2 3 4 5 6 7 8 \\\n","Tokens ▁Jeff ▁De an ▁est ▁informatic ien ▁chez ▁Google \n","Tags I-PER B-PER I-PER I-PER O O O O B-ORG \n","\n"," 9 10 11 12 13 \n","Tokens ▁en ▁cali for nie \n","Tags O B-LOC I-LOC I-LOC I-PER "],"text/html":["\n","
\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
012345678910111213
Tokens<s>▁Jeff▁Dean▁est▁informaticien▁chez▁Google▁en▁californie</s>
TagsI-PERB-PERI-PERI-PEROOOOB-ORGOB-LOCI-LOCI-LOCI-PER
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":58}]},{"cell_type":"code","source":["def evaluate_lang_performance(lang, trainer):\n"," panx_ds = encode_panx_dataset(panx_ch[lang])\n"," return get_f1_score(trainer, panx_ds[\"test\"])\n","\n","f1_scores[\"de\"][\"fr\"] = evaluate_lang_performance(\"fr\", trainer)\n","print(f\"[fr] 데이터셋에서 [de]모델의 F1 점수: {f1_scores['de']['fr']:.3f}\")"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":130,"referenced_widgets":["2ea4ca5a4cae4e34a6110d3e9d88c651","91bda3f45e6c4e85a09ed28d5289c696","bfd5babd9bc84ddfa5c6128295166523","68fb9a2ada674f3d86c8af1f8ca42294","4ea838d6f2f045ff9aa15422ded0e4c9","bb67aae5d54d42c699ccbbc7d3e3d55b","c7c6dae6f18c471c97c554070b51bc4c","9db304751d0a4e25bca672129340ac4a","4e6377999bcd45fd947ffff3204aa56b","2247badab8cd4517bcf9e31b1d5714da","cd6a61a9d1ea402e976ed526792cd16d","94ceb13d56594d3f99d3a03abced58cc","d99fd5f7c40443678da1082688c42c65","1bd42bc9adbc4857ae37e1c0b0b0b6c5","c1e2a78143484aea8f371e11c69ab6e3","f8b527cfca1742578a268ad2b607a872","2e16d295cf4e4cbc9d509f9c26e6ee06","65edf3b8401e47eb96a50a2cdbf9a662","4db9ba3f1aff47a99f307d3d9fa41a6d","74dabcf2946a4b6dbf9af8fe2e264ef8","e2a450d30a654f57a00194b9c59b0419","eef29186386d49b8a6db1a4cd2b6534c","1a3cfbc170a245b19ffe0fa947628a7e","94840fc04ab14cd59fee3dc4c604a2a5","7541382dc9c44afdbfa3f41e3633a0e4","566b0e89a9bc4bb5b238178f8d8ae0a6","9bca7b9835e845a3be6371a04c77ad81","edd2a3b1783d48f2be1acfd71f1c8bb4","90f2604c031b4b279e069ea7d2881c1a","24530917c4f54d44a4341f0c84fbab06","7b103fd3144f4eb8b733cb65ec51c91f","4de7e750ea0f407a9b5b205421147d50","ebd1823852cc4db588f99706e590343a"]},"id":"pNGBR4ap3kb0","executionInfo":{"status":"ok","timestamp":1675823696812,"user_tz":-540,"elapsed":6427,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"663bdfa2-adf8-4aef-9be0-6785dfd392c0"},"execution_count":59,"outputs":[{"output_type":"display_data","data":{"text/plain":[" 0%| | 0/5 [00:00"],"text/html":[]},"metadata":{}},{"output_type":"stream","name":"stdout","text":["[fr] 데이터셋에서 [de]모델의 F1 점수: 0.696\n"]}]},{"cell_type":"code","source":["f1_scores[\"de\"][\"it\"] = evaluate_lang_performance(\"it\", trainer)\n","print(f\"[fr] 데이터셋에서 [de]모델의 F1 점수: {f1_scores['de']['it']:.3f}\")"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":130,"referenced_widgets":["195e10dbbb5b48ab9e398a66758dde13","d35d0b468d914833a56e4fcd52aca4e8","d146b5d96e45412d97f5079b140930e6","4461809827d74d86ad4eedb80d42942d","ba555485343d4f399028b953501f71ed","f96d049dddc142e78dbc2d63de5f8901","69080edf86894d588459022e04b3a423","71116a1c3046472ebd41de2a251c9b4f","c109c485393a4ca0873a72868a39936c","5af63ad216444ffbbbcd529af95cb22b","635fc65327a5438594ce1473362e8200","930adae80e9d4e9999acee0c4fc323e4","56d8530176d140c19704c0bd74613441","90f26840fb2c46448d33fcea56bad086","64a431cd1ace4a6f94a07a6a5cb703a6","b310cb126eb7460cb424ac80ffded79e","9701bf14e9784508bb3f12295aba919e","235ace930bb44693b9fe92a781bcf376","197ebb4e52f24882af7bd0d39095aea6","60908eeb9bad47ad9165e195b2cf92f9","08d772af60f6440a802b0b412b287698","e9de5adfeec2456fbb81305ecd597480","eacf66ae9ce54d368c4418c72c421860","aa3195e2c70d4e709cdcf50c49e8dca4","6ad96368e58c43b688eb5d41df83878f","31dcedf6b7d34474a5bd0f95ddb6837c","fa1d95ea5db140a1b8f79ff4ad1f9773","438c35fceffa4c0e96151cc1e28ac273","0ca091f5848644c189ed0c13be310b0e","0e6981685a534d8a9577361131ed4b5e","b8831dc27dbe4052b94d94c214ca947e","61447819912d4ff399f1e411dbce3229","36933e871b114325836b7a7f5d3408ca"]},"id":"XZq7n6UW4GYQ","executionInfo":{"status":"ok","timestamp":1675823725336,"user_tz":-540,"elapsed":2847,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"e43e74b3-0e36-4861-8a33-ad5a7fc17c8e"},"execution_count":60,"outputs":[{"output_type":"display_data","data":{"text/plain":[" 0%| | 0/2 [00:00"],"text/html":[]},"metadata":{}},{"output_type":"stream","name":"stdout","text":["[fr] 데이터셋에서 [de]모델의 F1 점수: 0.656\n"]}]},{"cell_type":"code","source":["f1_scores[\"de\"][\"en\"] = evaluate_lang_performance(\"en\", trainer)\n","print(f\"[en] 데이터셋에서 [de]모델의 F1 점수: {f1_scores['de']['en']:.3f}\")"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":106},"id":"aYeah7_J4MVv","executionInfo":{"status":"ok","timestamp":1675823768887,"user_tz":-540,"elapsed":1802,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"483cc49b-a88f-435c-8c9f-ed059e44873f"},"execution_count":62,"outputs":[{"output_type":"stream","name":"stderr","text":["WARNING:datasets.arrow_dataset:Loading cached processed dataset at /root/.cache/huggingface/datasets/xtreme/PAN-X.en/1.0.0/29f5d57a48779f37ccb75cb8708d1095448aad0713b425bdc1ff9a4a128a56e4/cache-67b25ecca7eb6275.arrow\n","WARNING:datasets.arrow_dataset:Loading cached processed dataset at /root/.cache/huggingface/datasets/xtreme/PAN-X.en/1.0.0/29f5d57a48779f37ccb75cb8708d1095448aad0713b425bdc1ff9a4a128a56e4/cache-47a0aa212a54f269.arrow\n","WARNING:datasets.arrow_dataset:Loading cached processed dataset at /root/.cache/huggingface/datasets/xtreme/PAN-X.en/1.0.0/29f5d57a48779f37ccb75cb8708d1095448aad0713b425bdc1ff9a4a128a56e4/cache-38556abcbf0fe146.arrow\n"]},{"output_type":"display_data","data":{"text/plain":[""],"text/html":[]},"metadata":{}},{"output_type":"stream","name":"stdout","text":["[en] 데이터셋에서 [de]모델의 F1 점수: 0.594\n"]}]},{"cell_type":"markdown","source":["## 제로샷 전이가 유용할때\n","프랑스어 말뭉치로 훈련 세트의 크기를 증가시키면서 XLM-R을 미세 튜닝해 독일어 XLM-R로 교차 언어 전이한 것보다 나은 결과를 내는 훈련 세트 크기를 구한 후 실제로 레이블링된 데이터를 더 많이 수집해야 하는지 판단"],"metadata":{"id":"XKOxtsBn4YAF"}},{"cell_type":"code","source":["def train_on_subset(dataset, num_samples):\n"," train_ds = dataset[\"train\"].shuffle(seed=42).select(range(num_samples))\n"," valid_ds = dataset[\"validation\"]\n"," test_ds = dataset[\"test\"]\n"," training_args.logging_steps = len(train_ds) // batch_size\n","\n"," trainer = Trainer(model_init=model_init, \n"," args=training_args, \n"," data_collator=data_collator,\n"," compute_metrics=compute_metrics,\n"," train_dataset=train_ds,\n"," eval_dataset=valid_ds,\n"," tokenizer=xlmr_tokenizer)\n"," trainer.train()\n"," \n"," f1_score = get_f1_score(trainer, test_ds)\n"," return pd.DataFrame.from_dict({\"num_samples\": [len(train_ds)], \"f1_score\": [f1_score]})"],"metadata":{"id":"yNJ8zAd346gI","executionInfo":{"status":"ok","timestamp":1675824167014,"user_tz":-540,"elapsed":514,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}}},"execution_count":63,"outputs":[]},{"cell_type":"markdown","source":["독일어 말뭉치 미세튜닝처럼 프랑스어 말뭉치를 입력 ID, 어텐션 마스크, 레이블 ID로 인코딩"],"metadata":{"id":"QMDf11Wr59rN"}},{"cell_type":"code","source":["panx_fr_encoded = encode_panx_dataset(panx_ch[\"fr\"])"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":104,"referenced_widgets":["30c6a6fbd2944377ace47d48bc4a4aea","6af4cd75f04b4a6abed43abd8f3b30a3","dbf5ba978d06434ab1910c2f8e932f48","a18cc967159849caac2877ce9b3dc6a2","66200da357d74e4fb357f1f561d01cad","0f439a2b3fba46f3a60f1ca4762becee","472c551e7eba4817affcb192af57e973","1822ae06b53641028266009060997372","c2bc8eb70e324e83906f1990f9033cad","3b0af0519c10406ea44b7f4bb812f6a1","92da5753833b4007b2194cbe6715c4ff"]},"id":"-mMv0ERZ6EAB","executionInfo":{"status":"ok","timestamp":1675824242235,"user_tz":-540,"elapsed":1284,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"22dd73df-4199-4203-f4a9-b7f83b136485"},"execution_count":64,"outputs":[{"output_type":"display_data","data":{"text/plain":[" 0%| | 0/5 [00:00"],"text/html":["\n","
\n"," \n"," \n"," [33/33 00:23, Epoch 3/3]\n","
\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
EpochTraining LossValidation LossF1
11.7979001.3821640.110526
21.3065001.1313930.170438
31.0843001.0356120.185041

"]},"metadata":{}},{"output_type":"display_data","data":{"text/plain":[""],"text/html":[]},"metadata":{}},{"output_type":"execute_result","data":{"text/plain":[" num_samples f1_score\n","0 250 0.167937"],"text/html":["\n","

\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
num_samplesf1_score
02500.167937
\n","
\n"," \n"," \n"," \n","\n"," \n","
\n","
\n"," "]},"metadata":{},"execution_count":65}]},{"cell_type":"markdown","source":["샘플 250개 사용시 프랑스어에서 미세 튜닝한 성능이 독일어에서 제로샷 전이로 얻은 결과보다 떨어짐\n","
\n","\n","훈련 세트 크기를 늘릴 경우 확인"],"metadata":{"id":"qgCQcAHU6gzI"}},{"cell_type":"code","source":["for num_samples in [500, 1000, 2000, 4000]:\n"," metrics_df = metrics_df.append(train_on_subset(panx_fr_encoded, num_samples), ignore_index=True)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":751},"id":"PaHHmz6Z6on2","executionInfo":{"status":"ok","timestamp":1675824780020,"user_tz":-540,"elapsed":349629,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"37a1da11-39c5-4708-d265-60192b1b6daf"},"execution_count":66,"outputs":[{"output_type":"stream","name":"stderr","text":["WARNING:datasets.arrow_dataset:Loading cached shuffled indices for dataset at /root/.cache/huggingface/datasets/xtreme/PAN-X.fr/1.0.0/29f5d57a48779f37ccb75cb8708d1095448aad0713b425bdc1ff9a4a128a56e4/cache-6b17d58cd0d6e4ba.arrow\n","/usr/local/lib/python3.8/dist-packages/transformers/optimization.py:306: FutureWarning: This implementation of AdamW is deprecated and will be removed in a future version. Use the PyTorch implementation torch.optim.AdamW instead, or set `no_deprecation_warning=True` to disable this warning\n"," warnings.warn(\n"]},{"output_type":"display_data","data":{"text/plain":[""],"text/html":["\n","
\n"," \n"," \n"," [63/63 00:30, Epoch 3/3]\n","
\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
EpochTraining LossValidation LossF1
11.4925001.0510980.185071
20.8999000.7051760.569553
30.5873000.5841220.618641

"]},"metadata":{}},{"output_type":"display_data","data":{"text/plain":[""],"text/html":[]},"metadata":{}},{"output_type":"stream","name":"stderr","text":["WARNING:datasets.arrow_dataset:Loading cached shuffled indices for dataset at /root/.cache/huggingface/datasets/xtreme/PAN-X.fr/1.0.0/29f5d57a48779f37ccb75cb8708d1095448aad0713b425bdc1ff9a4a128a56e4/cache-6b17d58cd0d6e4ba.arrow\n"]},{"output_type":"display_data","data":{"text/plain":[""],"text/html":["\n","

\n"," \n"," \n"," [126/126 00:46, Epoch 3/3]\n","
\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
EpochTraining LossValidation LossF1
11.2053000.6068730.550045
20.4814000.4259440.702297
30.3301000.3903020.704059

"]},"metadata":{}},{"output_type":"display_data","data":{"text/plain":[""],"text/html":[]},"metadata":{}},{"output_type":"stream","name":"stderr","text":["WARNING:datasets.arrow_dataset:Loading cached shuffled indices for dataset at /root/.cache/huggingface/datasets/xtreme/PAN-X.fr/1.0.0/29f5d57a48779f37ccb75cb8708d1095448aad0713b425bdc1ff9a4a128a56e4/cache-6b17d58cd0d6e4ba.arrow\n"]},{"output_type":"display_data","data":{"text/plain":[""],"text/html":["\n","

\n"," \n"," \n"," [252/252 01:19, Epoch 3/3]\n","
\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
EpochTraining LossValidation LossF1
10.8057000.4084410.737765
20.3310000.3504250.780576
30.2171000.3336290.810279

"]},"metadata":{}},{"output_type":"display_data","data":{"text/plain":[""],"text/html":[]},"metadata":{}},{"output_type":"stream","name":"stderr","text":["WARNING:datasets.arrow_dataset:Loading cached shuffled indices for dataset at /root/.cache/huggingface/datasets/xtreme/PAN-X.fr/1.0.0/29f5d57a48779f37ccb75cb8708d1095448aad0713b425bdc1ff9a4a128a56e4/cache-6b17d58cd0d6e4ba.arrow\n"]},{"output_type":"display_data","data":{"text/plain":[""],"text/html":["\n","

\n"," \n"," \n"," [501/501 02:24, Epoch 3/3]\n","
\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
EpochTraining LossValidation LossF1
10.6054000.3374640.781681
20.2712000.2854580.813073
30.1821000.2872940.833361

"]},"metadata":{}},{"output_type":"display_data","data":{"text/plain":[""],"text/html":[]},"metadata":{}}]},{"cell_type":"code","source":["fig, ax = plt.subplots()\n","ax.axhline(f1_scores[\"de\"][\"fr\"], ls=\"--\", color=\"r\")\n","metrics_df.set_index(\"num_samples\").plot(ax=ax)\n","plt.legend([\"Zero-shot from de\", \"Fine-tuned on fr\"], loc=\"lower right\")\n","plt.ylim((0,1))\n","plt.xlabel(\"Number of Training Samples\")\n","plt.ylabel(\"F1 Score\")\n","plt.show()"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":283},"id":"vgzTqZib7Dij","executionInfo":{"status":"ok","timestamp":1675824867616,"user_tz":-540,"elapsed":729,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"3a949aca-49c3-4812-96ea-8f03f2e063c4"},"execution_count":67,"outputs":[{"output_type":"display_data","data":{"text/plain":["

"],"image/png":"iVBORw0KGgoAAAANSUhEUgAAAYIAAAEKCAYAAAAfGVI8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3deXwV9b3/8dcnCSEEAkiCCrKDgkBYZBFE3KoVawW1Vqu2VWtLxar1av2p12Ktvb23Vm21ltqq13JdWnFpe6mlV69eKCqohH1T9kriwiIEAgSyfH5/zCScrATIyTnJvJ+Px3kwZ2bOzCcTMp+Z7/fM52vujoiIRFdKogMQEZHEUiIQEYk4JQIRkYhTIhARiTglAhGRiFMiEBGJuLglAjN72sy2mNmKOpabmf3KzNaZ2TIzOyVesYiISN3ieUcwHZhQz/ILgBPD12Tg8TjGIiIidYhbInD3ucDn9awyCXjGA+8CHc2sS7ziERGR2qUlcN8nAJtj3ueH8z6pvqKZTSa4a6Bt27YjBgwY0CQBioi0FAsXLtzm7p1rW5bIRNBg7v4E8ATAyJEjPS8vL8ERiYg0L2b2z7qWJfJbQwVA95j33cJ5IiLShBKZCGYC3wy/PTQGKHT3Gs1CIiISX3FrGjKzPwJnATlmlg/8CGgF4O6/BWYBXwLWAXuB6+IVi4iI1C1uicDdrzzEcge+F6/9i4hIw+jJYhGRiFMiEBGJOCUCEZGIUyIQEYk4JQIRkYhTIhARiTglAhGRiFMiEBGJOCUCEZGIUyIQEYk4JQIRkYhTIhARiTglAhGRiFMiEBGJOCUCEZGIUyIQEYk4JQIRkYhTIhARiTglAhGRiFMiEBGJOCUCEZGIUyIQEYk4JQIRkYhTIhARiTglAhGRiFMiEBGJOCUCEZGIS0t0ACIiUtP+0jL27i+jaH8pew8E/3Y/pg3Hts9o9H0pEYiIHKXycmdvSRl79peGrzL2HAinD1Sdv/dAaZWTe/C+jL3V5pWUeY39/NvFg/n6mJ6NHr8SgYhEirtzoKw8OFnvLw1P2MH03gOxJ/HY5QdP6Aev0sMT+IHgBN5QGa1SaJueRtvWaWSmp9KudRod2rTihI4ZZKan0S6c37Z1Gm0r/g3n9T8+Ky7HRIlARJJaY11tx65fWl7zars2KUZ4Qk6jbevUyumuHTPCk3Ma7VqnHjyBt04NT+Th+uEJv+Kzma1SSUtNvq5ZJQIRaTSHutouij1Zx1xZx+tqu214td21Q0aNK+y26alktj54Bd6u8sR+8ITeOi0FM4vjEUsOSgQiEVZe7uwJT7a62o4uJQKRZuKIr7ZjT+7V2r/3lTT8art1WkrlCbniJKyr7ZZBiUAkTmKvtqufnCuurJv+artV5dX2wRN3asy6NedXrKur7ZYrronAzCYAjwKpwFPu/rNqy3sA/wV0DNe5y91nxTMmkcORv2MvKwp2VT2B62pbWpi4JQIzSwWmAecB+cACM5vp7qtiVvsh8KK7P25mA4FZQK94xSRyKDv2HGD+hu28s24b76zbxqbte2usk2Ic7JCsbLdOpWv49b/arqp1tS3JLJ53BKOBde6+AcDMXgAmAbGJwIH24XQH4OM4xiNSQ3FJGQs2fc7b67Yxb912VnxciDu0TU9lTJ9svjG2FyN7HkPHzFaVJ/SMVrralpYlnongBGBzzPt84NRq69wHvG5mNwNtgXNr25CZTQYmA/To0aPRA5XoKC0rZ3lBIfPWb+fttdtY+NEODpSW0yrVGN79GG79wkmcfmI2Q7p1pJWu0iUiEt1ZfCUw3d0fNrOxwLNmNtjdy2NXcvcngCcARo4c2bDeMhGCb9qs37qnsqln/obt7C4uBeDkLu355piejDsxh9G9OtG2daL/HEQSI57/8wuA7jHvu4XzYl0PTABw9/lmlgHkAFviGJe0cJ/tKuadddsqm3s+3VUMwAkd23BhbhdO65fDaX2zyWnXOsGRiiSHeCaCBcCJZtabIAF8Dbiq2jofAV8AppvZyUAGsDWOMUkLtKu4hPc2fF558l+3pQiAjpmtGNc3h3H9chjXL5senTLVti9Si7glAncvNbObgNcIvhr6tLuvNLP7gTx3nwncDjxpZv9C0HF8rbur6Ufqtb+0jEX/3Mm89cGJf1l+IWXlTkarFEb16sRXR3RjXL8cBnZpT0qKTvwih2LN7bw7cuRIz8vLS3QY0oTKy51Vn+wK2vnXb+f9jdspLiknxWBo946VV/2n9OxI67TURIcrkpTMbKG7j6xtmXrHJCl9tH0vb4cdvPPWb2PH3hIA+h3bjq+N6sG4fjmc2qcT7TNaJThSkeZPiUCSwrai/cxbv515YTt//o59ABzXvjVnDziW0/vlcFrfHI7v0PijM4lEnRKBJMSe/aW8v+lz3lkbNPes/mQXAFkZaYztk813xvdhXL8c+nZuqw5ekThTIpAmUVJWzrL8nby9NijfsHjzDkrKnPTUFEb0PIY7zu/PaX2zyT2hg8otiDQxJQKJC3dnzWdFlQ9yvbthO3sOlGEGg7q251un9+b0fjmM7NmJNunq4BVJJCUCaTQFO/cFnbvht3u27t4PQK/sTCYNP4HT++Uwtk82x7RNT3CkIhJLiUCOWOHeEuZv2BZ+u2c7G7ftASC7bXrlQ1yn9c2he6fMBEcqIvVRIpAGKy4pI2/TDt5ZHzT3LC8IKnVmpqdyau9OXH1q8LXO/sdl6UEukWZEiUDqVFburCgoDGr2rN/Ggk1Bpc60FGNY947ccs6JnH5iDkO7dSQ9TR28Is2VEoFUcnc2bttTWbNn/vrt7AordQ44Pouvn9qT00/MZnTvbNqpUqdIi6G/5ojbsruYeeu2Vz7F+0nhwUqdEwYfz7h+OYztm82xWXqQS6SlUiKImN0VlTrDdv41nwWVOju0acVpfbP53tk5nN4vh57ZqtQpEhVKBC3cgdJyFn+0o7K5Z2lYqbN1Wgqje3fikuHdOL1fDgO7tidVHbwikaRE0EKt+ngXT721gb+v+JR9JWWkGOR268gNZ/ZhXN8cTul5DBmt9CCXiCgRtCjuztvrtvHE3A28tXYbmempXDz8BM7q35kxfbLp0EaVOkWkpuaXCD78EM46q+q8yy+HG2+EvXvhS1+q+Zlrrw1e27bBZZfVXD5lClxxBWzeDN/4Rs3lt98OF10U7Pu73625/Ic/hHPPhSVL4NZbay7/93+H006DefPgX/+15vJHHoFhw+CNN+Df/q3m8t/9Dvr3h7/+FR5+uMbikunP8LcdqTwxcyGr9qXS+UARd3y6iKs/W0rHucXw8svQphVMnx68qps1CzIz4Te/gRdfrLl8zpzg34cegldfrbqsTRv4+9+D6Z/8BN58s+ry7Gx45ZVg+u67Yf78qsu7dYPnngumb701OIaxTjoJnngimJ48Gdasqbp82LDg+AF8/euQn191+dix8B//EUx/5SuwfXvV5V/4AkydGkxfcAHs21d1+Ze/DD/4QTBd/f8dRP7/Hs8+C927w4wZ8PjjNZe//DLk5Oj/XjL+34vR/BKBVNqdms6MzkN4+rkP+LiohL6tjQfW/w8Xb1tFay9LdHgi0kxohLJm6NPCYn4/byN/eO8jdheXcmrvTkw+ow9n9z9WT/SKSK00QlkL8eGnu3li7gZmLi2grNy5YHAXvnNGH4Z175jo0ESkGVMiSHLuzvz12/nd3A38Y81W2rRK5arRPbj+9D70yFYxNxE5ekoESaq0rJy/Lf+EJ9/awIqCXeS0S+f2807i62N6qoyziDQqJYIks2d/KTMWbOY/395Iwc599Mlpy39cmsslw0/Q9/5FJC6UCJLEll3FTJ+3iefe/Se7iksZ1esYfnTRQM49+Th1AItIXCkRJNi6LUEH8F8Wf0xJeTkTBh3Pd87owyk9jkl0aCISEUoECeDuvLfxc56cu4E3P9hC67QULh/VjW+f3odeOW0THZ6IRIwSQRMqLSvnf1Z+ypNzN7A0v5BObdO59dwT+caYnmS3a53o8EQkopQImsDeA6W8lJfPU29vYPPn++iVncm/XTyYr5zSjTbp6gAWkcRSIoijrbv388z8TTz77j/ZubeEU3p05J4vDeS8gcep5LOIJA0lgjhYv7WIp97awCuLCigpK+e8k49j8hl9GNmrU6JDExGpQYmgkbg7ef/cwe/+sYE3Vn9GeloKl43oxvWn96Zv53aJDk9EpE5KBEeprNx5feWnPPHWBhZ/tJOOma245Zx+fPO0XuSoA1hEmgElgqPw4oLN/GbOOjZt30uPTpncP2kQl43oRma6DquINB86Yx2hFQWF/L9XlpF7Qgd+c/UpnD/oeHUAi0izpERwhBZ/tAOA335jBCd0bJPgaEREjlxKPDduZhPM7EMzW2dmd9WxzuVmtsrMVprZH+IZT2Naml9Idtt0unbISHQoIiJHJW53BGaWCkwDzgPygQVmNtPdV8WscyJwNzDO3XeY2bHxiqexLc8vZEi3DpipOUhEmrd43hGMBta5+wZ3PwC8AEyqts53gGnuvgPA3bfEMZ5Gs/dAKWu37Ca3m0YGE5HmL56J4ARgc8z7/HBerJOAk8zsHTN718wm1LYhM5tsZnlmlrd169Y4hdtwKwp2Ue4wtFuHRIciInLU4tpH0ABpwInAWcCVwJNmVuMy292fcPeR7j6yc+fOTRxiTcvydwKQq0QgIi1AgxKBmZ1uZteF053NrHcDPlYAdI953y2cFysfmOnuJe6+EVhDkBiS2rL8Qrp0yODYLHUUi0jzd8hEYGY/Au4k6NQFaAU814BtLwBONLPeZpYOfA2YWW2dvxDcDWBmOQRNRRsaFHkCLS8oJPcE3Q2ISMvQkDuCS4CJwB4Ad/8YyDrUh9y9FLgJeA1YDbzo7ivN7H4zmxiu9hqw3cxWAbOBO9x9++H/GE2ncF8JG7ftYWh3dRSLSMvQkK+PHnB3NzMHMLMGD6Hl7rOAWdXm3Rsz7cBt4atZWFFQCKA7AhFpMRpyR/Cimf0O6Ghm3wHeAJ6Mb1jJa2nYUTxEHcUi0kLUe0dgwdNSM4ABwC6gP3Cvu/9vE8SWlJbnF9KjUyYdM9MTHYqISKOoNxGETUKz3D0XiOzJP9ay/EKG91D/gIi0HA1pGlpkZqPiHkkzsK1oPwU796lZSERalIZ0Fp8KXG1m/yT45pAR3CwMiWtkSWh5ftBRPESlJUSkBWlIIjg/7lE0E8vyCzGDwfrGkIi0IIdsGnL3fwIdgYvCV8dwXuQsy99J387taNdawziISMvRkCeLvw88Dxwbvp4zs5vjHViycXeWFRQyRHcDItLCNOTS9nrgVHffA2BmDwDzgcfiGViy+XRXMVt371dHsYi0OA351pABZTHvy8J5kbIs7CjWGAQi0tI05I7g98B7Zvbn8P3FwH/GL6TktCx/J6kpxqCu7RMdiohIozpkInD3X5jZHOD0cNZ17r44rlEloWX5hZx0XBYZrVITHYqISKM6ZCIwszHASndfFL5vb2anuvt7cY8uSbg7ywsKmTDo+ESHIiLS6BrSR/A4UBTzviicFxmbP9/Hzr0lGpFMRFqkBnUWh+WiAXD3chrWt9BiVFQcHaqOYhFpgRqSCDaY2S1m1ip8fZ9mMIpYY1peUEh6WgonHXfI8XhERJqdhiSCG4DTCMYbLiCoPTQ5nkElm6Wbd3Jyl/akpzVoiGcRkWalId8a2kIw3nAklZc7KwoK+cqIbokORUQkLuq8xDWz75jZieG0mdnTZlZoZsvM7JSmCzGxNmwrYs+BMg1NKSItVn1tHd8HNoXTVwJDgT4E4ws/Gt+wksfSzcETxRqsXkRaqvoSQam7l4TTXwaecfft7v4G0OAB7Ju75QWFZKan0rdzu0SHIiISF/UlgnIz62JmGcAXCAatr9AmvmElj6X5OxnctQOpKZErryQiEVFfIrgXyCNoHprp7isBzOxMIvL10ZKyclZ9vEsPkolIi1bnt4bc/VUz6wlkufuOmEV5wBVxjywJrPlsN/tLy1V6WkRatHq/PurupcCOavP2xDWiJKIxikUkCvSEVD2W5heSlZFGr+zMRIciIhI3SgT1WF6wkyHdOmCmjmIRabmOKBGY2YDGDiTZFJeU8cEnu9UsJCIt3pHeEbzeqFEkoQ8+3U1puWuwehFp8ersLDazX9W1CGjxl8nLwtLTQ/REsYi0cPV9a+g64HZgfy3LroxPOMljWX4h2W3T6dohI9GhiIjEVX2JYAGwwt3nVV9gZvfFLaIksSxfHcUiEg319RFcBiypbYG7945POMlhz/5S1m0pIlcdxSISAfUlgnbuvrfJIkkiKz/eRbnDUD1RLCIRUF8i+EvFhJm90gSxJI2KjmLVGBKRKKgvEcQ2jvc5ko2b2QQz+9DM1pnZXfWs9xUzczMbeST7aWzL8gvp0iGDY7PUUSwiLV99icDrmG4QM0sFpgEXAAOBK81sYC3rZREMgvPe4e4jXpYXFGpEMhGJjPoSwVAz22Vmu4Eh4fQuM9ttZrsasO3RwDp33+DuB4AXgEm1rPcT4AGg+LCjj4PCfSVs3LZHI5KJSGTUmQjcPdXd27t7lrunhdMV79s3YNsnAJtj3ueH8yqFYx93d/e/1bchM5tsZnlmlrd169YG7PrIrSgIKo7qjkBEoiJhRefMLAX4BcFDa/Vy9yfcfaS7j+zcuXNc41pa8USxOopFJCLimQgKgO4x77uF8ypkAYOBOWa2CRgDzEx0h/Hy/EJ6dMqkY2Z6IsMQEWky8UwEC4ATzay3maUDXwNmVix090J3z3H3Xu7eC3gXmOjueXGM6ZCW5RfqbkBEIiVuiSAc3ewm4DVgNfCiu680s/vNbGK89ns0thXtp2DnPiUCEYmUeoeqPFruPguYVW3evXWse1Y8Y2kIDU0pIlGkEcpiLM3fiRkM1jeGRCRClAhiLM8vpG/ndrRrHdcbJRGRpKJEEHJ3lqqjWEQiSIkg9OmuYrYV7dfQlCISOUoEoaWbw45ilZYQkYhRIggtL9hJWooxsEtDqmeIiLQcSgShZfmFnHRcFhmtUhMdiohIk1IiIOgo1hPFIhJVSgTAR5/vpXBfiR4kE5FIUiIgaBYCVRwVkWhSIiAYozg9LYWTjstKdCgiIk1OiYDgjuDkLu1JT9PhEJHoifyZr6zcWVFQyFA1C4lIREU+EWzcVsSeA2UamlJEIivyiaDiiWINVi8iURX5RLC8oJDM9FT6dm6X6FBERBIi8olgaf5OBnftQGqKJToUEZGEiHQiKCkrZ9XHu8hVR7GIRFikE8Gaz3azv7RcD5KJSKRFOhFojGIRkYgngqX5hWRlpNErOzPRoYiIJEykE8Hygp0M6dYBM3UUi0h0RTYRFJeU8cEnu9UsJCKRF9lEsPqTXZSWu8YoFpHIi2wiWF6gMYpFRCDCiWDp5kKy26bTtUNGokMREUmoyCYCdRSLiAQimQj27C9l3ZYictVRLCISzUSw8uNdlDsag0BEhIgmgmX5OwFUY0hEhMgmgkK6dMjg2Cx1FIuIRDQR7NSIZCIiocglgsK9JWzavlcjkomIhCKXCCoeJNMdgYhIIK6JwMwmmNmHZrbOzO6qZfltZrbKzJaZ2Ztm1jOe8QAsKwg6ijUGgYhIIG6JwMxSgWnABcBA4EozG1httcXASHcfArwM/Dxe8VRYtrmQntmZdMxMj/euRESahXjeEYwG1rn7Bnc/ALwATIpdwd1nu/ve8O27QLc4xgMETUNqFhIROSieieAEYHPM+/xwXl2uB/5e2wIzm2xmeWaWt3Xr1iMOaFvRfgp27mOonigWEamUFJ3FZvZ1YCTwYG3L3f0Jdx/p7iM7d+58xPupGJpSD5KJiByUFsdtFwDdY953C+dVYWbnAvcAZ7r7/jjGw9L8nZjBYDUNiYhUiucdwQLgRDPrbWbpwNeAmbErmNlw4HfARHffEsdYgOCOoG/ndrRrHc/8JyLSvMQtEbh7KXAT8BqwGnjR3Vea2f1mNjFc7UGgHfCSmS0xs5l1bK4x4mFpfqG+NioiUk1cL43dfRYwq9q8e2Omz43n/mN9uquYbUX7NTSliEg1kWkjWbpZQ1NK9JSUlJCfn09xcXGiQ5EmkpGRQbdu3WjVqlWDPxOZRLB+axFpKcbALu0THYpIk8nPzycrK4tevXppNL4IcHe2b99Ofn4+vXv3bvDnkuLro03he2f3Y8E955LRKjXRoYg0meLiYrKzs5UEIsLMyM7OPuw7wMgkAoBj2qqshESPkkC0HMnvO1KJQEREalIiEJG4+fOf/8ywYcOqvFJSUvj732utJtPo5syZw5e//OXD+swjjzzC3r17a1321ltvMWjQIIYNG8a+ffsaI8QGadeuXVy3r0QgInFzySWXsGTJksrXjTfeyPjx4zn//PMb9Hl3p7y8PM5RVlVfInj++ee5++67WbJkCW3atKmcX1pa2lThxYUSgUiUnHVWzddvfhMs27u39uXTpwfLt22ruewwrFmzhvvvv59nn32WlJTg1PPggw8yatQohgwZwo9+9CMANm3aRP/+/fnmN7/J4MGD2bx5M3fccQeDBw8mNzeXGTNm1Lr9f/zjH5V3HcOHD2f37t0AFBUVcdlllzFgwACuvvpq3B2AN998k+HDh5Obm8u3vvUt9u/fz69+9Ss+/vhjzj77bM4+++wq23/qqad48cUXmTp1KldffTVz5sxh/PjxTJw4kYEDB1JcXMx1111Hbm4uw4cPZ/bs2QBMnz6diy++mPPOO49evXrx61//ml/84hcMHz6cMWPG8Pnnn9f4WTZu3MjYsWPJzc3lhz/8YZVltR2zo6VEICJxV1JSwlVXXcXDDz9Mjx49AHj99ddZu3Yt77//PkuWLGHhwoXMnTsXgLVr13LjjTeycuVK8vLyWLJkCUuXLuWNN97gjjvu4JNPPqmxj4ceeohp06axZMkS3nrrrcor9sWLF/PII4+watUqNmzYwDvvvENxcTHXXnstM2bMYPny5ZSWlvL4449zyy230LVrV2bPnl15Iq/w7W9/m4kTJ/Lggw/y/PPPA7Bo0SIeffRR1qxZw7Rp0zAzli9fzh//+Eeuueaaym/vrFixgj/96U8sWLCAe+65h8zMTBYvXszYsWN55plnavws3//+95kyZQrLly+nS5culfPrO2ZHIzLPEYgIMGdO3csyM+tfnpNT//J6TJ06lUGDBnHFFVdUznv99dd5/fXXGT58OBBcua9du5YePXrQs2dPxowZA8Dbb7/NlVdeSWpqKscddxxnnnkmCxYsYOLEiVX2MW7cOG677TauvvpqLr30Urp1C4Y3GT16dOX0sGHD2LRpE1lZWfTu3ZuTTjoJgGuuuYZp06Zx6623HtbPNXr06Mrv67/99tvcfPPNAAwYMICePXuyZs0aAM4++2yysrLIysqiQ4cOXHTRRQDk5uaybNmyGtt95513eOWVVwD4xje+wZ133lnvMTvjjDMOK+7qlAhEJK7mzJnDK6+8wqJFi6rMd3fuvvtuvvvd71aZv2nTJtq2bXvI7U6bNo0nn3wSgFmzZnHXXXdx4YUXMmvWLMaNG8drr70GQOvWrSs/k5qa2qjt+Q2Js3oMKSkple9TUlLqjKe2r4HWdcyOlpqGRCRuduzYwXXXXcczzzxDVlZWlWXnn38+Tz/9NEVFRQAUFBSwZUvNIsTjx49nxowZlJWVsXXrVubOncvo0aP53ve+V9kJ3bVrV9avX09ubi533nkno0aN4oMPPqgzrv79+7Np0ybWrVsHwLPPPsuZZ54JQFZWVmX/wuEYP358ZZPRmjVr+Oijj+jfv/9hbweCu5sXXngBoHKb0PBjdrh0RyAicfPb3/6WLVu2MGXKlCrz7777bq644gpWr17N2LFjgeArks899xypqVWf/r/kkkuYP38+Q4cOxcz4+c9/zvHHH19jX4888gizZ88mJSWFQYMGccEFFzB//vxa48rIyOD3v/89X/3qVyktLWXUqFHccMMNAEyePJkJEyZU9hU01I033siUKVPIzc0lLS2N6dOnV7kTOByPPvooV111FQ888ACTJh0c4feLX/xircfs2GOPPaL9VLCKHvTmYuTIkZ6Xl5foMESahdWrV3PyyScnOgxpYrX93s1sobuPrG19NQ2JiEScEoGISMQpEYiIRJwSgYhIxCkRiIhEnBKBiEjEKRGISFylpqZWKUO9adMmTjvttEbZ9s6dO/lNRdG8ODvrrLOIx1fXr7zySoYMGcIvf/nLRt92Q+mBMhGJqzZt2rBkyZIq8+bNm9co265IBDfeeGOjbK+pffrppyxYsKDyCedYpaWlpKU1zSlaiUAkIn7815Ws+nhXo25zYNf2/OiiQYf9uXbt2lFUVMScOXO47777yMnJYcWKFYwYMYLnnnsOM2PhwoXcdtttFBUVkZOTw/Tp06tU4gS46667WL9+PcOGDeO8887jwgsv5KGHHuLVV18F4KabbmLkyJFce+219OrVi2uuuYa//vWvlJSU8NJLLzFgwAD27NnDzTffzIoVKygpKeG+++5j0qRJ7Nu3j+uuu46lS5cyYMCAOgeiefPNN/nBD35Q+YTy448/TuvWrevcX6wvfvGLFBQUMGzYMB577DGmTp3KsGHDKgvt3X777Yd9bI+EmoZEJK727dtX2Sx0ySWX1FheW5nokpISbr75Zl5++WUWLlzIt771Le65554an/3Zz35G3759WbJkCQ8++OAhY8nJyWHRokVMmTKFhx56CICf/vSnnHPOObz//vvMnj2bO+64gz179vD444+TmZnJ6tWr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\n"},"metadata":{"needs_background":"light"}}]},{"cell_type":"markdown","source":["훈련 샘플이 약 750개일때까지는 제로샷이 앞섬
\n","문서를 일일이 레이블링 하는 비용을 생각했을때 제로샷이 경제적으로 더 우위를 점하고 괜찮음"],"metadata":{"id":"JIalkzgV7gFI"}},{"cell_type":"markdown","source":["# 다국어에서 동시에 미세튜닝하기\n","성능 감소 폭을 줄이는 방법 하나는 다국어에서 동시에 미세튜닝을 하는것"],"metadata":{"id":"sOkBGZr-7_Pv"}},{"cell_type":"code","source":["from datasets import concatenate_datasets\n","\n","def concatenate_splits(corpora):\n"," multi_corpus = DatasetDict()\n"," for split in corpora[0].keys():\n"," multi_corpus[split] = concatenate_datasets([corpus[split] for corpus in corpora]).shuffle(seed=42)\n"," return multi_corpus\n","\n","panx_de_fr_encoded = concatenate_splits([panx_de_encoded, panx_fr_encoded])"],"metadata":{"id":"Vvfd7NRp8ElJ","executionInfo":{"status":"ok","timestamp":1675824873243,"user_tz":-540,"elapsed":2,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}}},"execution_count":68,"outputs":[]},{"cell_type":"code","source":["training_args.logging_steps = len(panx_de_fr_encoded[\"train\"]) // batch_size\n","training_args.push_to_hub = False\n","training_args.output_dir = \"xlm-roberta-base-finetuned-panx-de-fr\"\n","\n","trainer = Trainer(model_init=model_init,\n"," args=training_args,\n"," data_collator=data_collator,\n"," compute_metrics=compute_metrics,\n"," tokenizer=xlmr_tokenizer,\n"," train_dataset=panx_de_fr_encoded[\"train\"],\n"," eval_dataset=panx_de_fr_encoded[\"validation\"])\n","\n","trainer.train()"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":259},"id":"prfwfMh68nhG","executionInfo":{"status":"ok","timestamp":1675825757936,"user_tz":-540,"elapsed":700206,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"db544003-a225-4230-81f4-0f0c4c931d26"},"execution_count":69,"outputs":[{"output_type":"stream","name":"stderr","text":["/usr/local/lib/python3.8/dist-packages/transformers/optimization.py:306: FutureWarning: This implementation of AdamW is deprecated and will be removed in a future version. Use the PyTorch implementation torch.optim.AdamW instead, or set `no_deprecation_warning=True` to disable this warning\n"," warnings.warn(\n"]},{"output_type":"display_data","data":{"text/plain":[""],"text/html":["\n","
\n"," \n"," \n"," [2145/2145 11:33, Epoch 3/3]\n","
\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
EpochTraining LossValidation LossF1
10.2905000.1782590.830973
20.1461000.1599580.845506
30.0948000.1656460.858905

"]},"metadata":{}},{"output_type":"execute_result","data":{"text/plain":["TrainOutput(global_step=2145, training_loss=0.17714588014118043, metrics={'train_runtime': 694.0678, 'train_samples_per_second': 74.171, 'train_steps_per_second': 3.09, 'total_flos': 1140291491923584.0, 'train_loss': 0.17714588014118043, 'epoch': 3.0})"]},"metadata":{},"execution_count":69}]},{"cell_type":"markdown","source":["각 언어의 테스트 세트에서 모델의 성능 확인"],"metadata":{"id":"37XkUPr59WEv"}},{"cell_type":"code","source":["for lang in langs:\n"," f1 = evaluate_lang_performance(lang, trainer)\n"," print(f\"[{lang}] 데이터셋에서 [de-fr] 모델의 f1 점수: {f1:.3f}\")"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":359,"referenced_widgets":["40ee5833271c494cb982535613847865","9cd43cf140984ac594dc4449ea856e1a","d2656be4605a408b8960d620155d6872","40c9c94449694fbbaf08b0a4da3a2470","5fa3437f023c44d3887654afac5164f6","5ee625774f254d7bbfdb58fc2b88c032","6e949eae282e4fcfb12a5fa8f678b3f8","aca5de1935654297aa171b16d4ae2117","8ada8e3b825043589a33076d479fa97a","33cc02879cb148b998f9da0fff984862","b1a1ce3dadb3403bb8c20f2ca16e3513","323822f38a9e48a0b69b9e72713ad9fd","5b58cd19a040458785de40b350d0a0a2","afb03e48c9a64e459182c7969105d693","0f3f7f44d66a40ccb0c4c0d409aceff1","78d9f1251e3f43368ef4400057df0e9c","f475fece0cc94fc3875d60e697b712f9","be5245964f2f496792d8513dbd681e42","2d428917487c4f18abc84819b6ddbcde","6a24b1cebe05436da45963e95550b673","d14809e23834488fb4f2a385f0bb03c1","c992e5f51eb94d079c00d433f819606f","d6c483f1f2a74e0b88a864e9524a52f6","4894b9cf2ee5495bafa58b8e78af5497","90c9e7c500534b758f21b5a9567252c6","1dfee2d2e19c40e0b5606e01a4f1b1ac","5207663a59f642c9935f742990337395","521599d1ca3047fbb6736a55a84386a7","345d1df57cd347979e56b8434bbe9579","700d93168336461a9b5c221f06b778a4","a0e796962708476a8d43898e8f9e7eb4","b54b5dd342c147a98f0c859f3e80d807","ea15d48dae7d4f3f810df52a2c445966"]},"id":"epQuCOif9Yk1","executionInfo":{"status":"ok","timestamp":1675825989266,"user_tz":-540,"elapsed":29774,"user":{"displayName":"HanGyo Jung","userId":"11224950994115057744"}},"outputId":"bc69b4b0-bf53-4cb0-c82a-6c49455d40c2"},"execution_count":70,"outputs":[{"output_type":"display_data","data":{"text/plain":[" 0%| | 0/13 [00:00"],"text/html":[]},"metadata":{}},{"output_type":"stream","name":"stderr","text":["WARNING:datasets.arrow_dataset:Loading cached processed dataset at /root/.cache/huggingface/datasets/xtreme/PAN-X.fr/1.0.0/29f5d57a48779f37ccb75cb8708d1095448aad0713b425bdc1ff9a4a128a56e4/cache-1dce373a1b796a7e.arrow\n","WARNING:datasets.arrow_dataset:Loading cached processed dataset at /root/.cache/huggingface/datasets/xtreme/PAN-X.fr/1.0.0/29f5d57a48779f37ccb75cb8708d1095448aad0713b425bdc1ff9a4a128a56e4/cache-6c6f6ff4a59e7dd1.arrow\n","WARNING:datasets.arrow_dataset:Loading cached processed dataset at /root/.cache/huggingface/datasets/xtreme/PAN-X.fr/1.0.0/29f5d57a48779f37ccb75cb8708d1095448aad0713b425bdc1ff9a4a128a56e4/cache-bd9403b1b214a85b.arrow\n"]},{"output_type":"stream","name":"stdout","text":["[de] 데이터셋에서 [de-fr] 모델의 f1 점수: 0.869\n"]},{"output_type":"display_data","data":{"text/plain":[""],"text/html":[]},"metadata":{}},{"output_type":"stream","name":"stderr","text":["WARNING:datasets.arrow_dataset:Loading cached processed dataset at /root/.cache/huggingface/datasets/xtreme/PAN-X.it/1.0.0/29f5d57a48779f37ccb75cb8708d1095448aad0713b425bdc1ff9a4a128a56e4/cache-3b79d468ccf0c113.arrow\n","WARNING:datasets.arrow_dataset:Loading cached processed dataset at /root/.cache/huggingface/datasets/xtreme/PAN-X.it/1.0.0/29f5d57a48779f37ccb75cb8708d1095448aad0713b425bdc1ff9a4a128a56e4/cache-cabbeaac000ca811.arrow\n","WARNING:datasets.arrow_dataset:Loading cached processed dataset at /root/.cache/huggingface/datasets/xtreme/PAN-X.it/1.0.0/29f5d57a48779f37ccb75cb8708d1095448aad0713b425bdc1ff9a4a128a56e4/cache-32c6f859b24f0a36.arrow\n"]},{"output_type":"stream","name":"stdout","text":["[fr] 데이터셋에서 [de-fr] 모델의 f1 점수: 0.866\n"]},{"output_type":"display_data","data":{"text/plain":[""],"text/html":[]},"metadata":{}},{"output_type":"stream","name":"stderr","text":["WARNING:datasets.arrow_dataset:Loading cached processed dataset at /root/.cache/huggingface/datasets/xtreme/PAN-X.en/1.0.0/29f5d57a48779f37ccb75cb8708d1095448aad0713b425bdc1ff9a4a128a56e4/cache-67b25ecca7eb6275.arrow\n","WARNING:datasets.arrow_dataset:Loading cached processed dataset at /root/.cache/huggingface/datasets/xtreme/PAN-X.en/1.0.0/29f5d57a48779f37ccb75cb8708d1095448aad0713b425bdc1ff9a4a128a56e4/cache-47a0aa212a54f269.arrow\n","WARNING:datasets.arrow_dataset:Loading cached processed dataset at /root/.cache/huggingface/datasets/xtreme/PAN-X.en/1.0.0/29f5d57a48779f37ccb75cb8708d1095448aad0713b425bdc1ff9a4a128a56e4/cache-38556abcbf0fe146.arrow\n"]},{"output_type":"stream","name":"stdout","text":["[it] 데이터셋에서 [de-fr] 모델의 f1 점수: 0.795\n"]},{"output_type":"display_data","data":{"text/plain":[""],"text/html":[]},"metadata":{}},{"output_type":"stream","name":"stdout","text":["[en] 데이터셋에서 [de-fr] 모델의 f1 점수: 0.702\n"]}]},{"cell_type":"markdown","source":["- 다중 언어 학습은 성능상 큰 이득을 제공, 특히 유사한 언어군에서 데이터가 부족한 언어로 교차 언어 전이를 수행할 때 큰 이득을 얻게 됨\n","- 일반적 전략으로 한국어처럼 다른 종류의 텍스트를 다룰 때는 한 어족(language family) 내에서 교차 언어 전이에 초점을 맞추는 것이 좋음"],"metadata":{"id":"lhF39TZI-UHS"}}]} \ No newline at end of file diff --git a/Transformer/03_MultiLanguageDetection/images/NER_Transformer_Structure.png b/Transformer/03_MultiLanguageDetection/images/NER_Transformer_Structure.png new file mode 100644 index 0000000..7b35ad9 Binary files /dev/null and b/Transformer/03_MultiLanguageDetection/images/NER_Transformer_Structure.png differ diff --git a/Transformer/03_MultiLanguageDetection/images/Transformer_BodyHead.png b/Transformer/03_MultiLanguageDetection/images/Transformer_BodyHead.png new file mode 100644 index 0000000..863d81d Binary files /dev/null and b/Transformer/03_MultiLanguageDetection/images/Transformer_BodyHead.png differ diff --git a/Transformer/jupyternotebook/MotionClassifier.ipynb b/Transformer/jupyternotebook/MotionClassifier.ipynb new file mode 100644 index 0000000..c62292c --- /dev/null +++ b/Transformer/jupyternotebook/MotionClassifier.ipynb @@ -0,0 +1,1396 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 3, + "id": "2f3c6918", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "현재 허브에는 18210개의 데이터셋이 존재\n", + "처음 10개 데이터셋: ['acronym_identification', 'ade_corpus_v2', 'adversarial_qa', 'aeslc', 'afrikaans_ner_corpus', 'ag_news', 'ai2_arc', 'air_dialogue', 'ajgt_twitter_ar', 'allegro_reviews']\n" + ] + } + ], + "source": [ + "from datasets import list_datasets\n", + "\n", + "all_datasets = list_datasets()\n", + "print(f\"현재 허브에는 {len(all_datasets)}개의 데이터셋이 존재\")\n", + "print(f\"처음 10개 데이터셋: {all_datasets[:10]}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "feed8efa", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "83e024c2b83843538cbc56569f44625a", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Downloading builder script: 0%| | 0.00/3.97k [00:00=1.16.5 and <1.23.0 is required for this version of SciPy (detected version 1.23.2\n", + " warnings.warn(f\"A NumPy version >={np_minversion} and <{np_maxversion}\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Downloading and preparing dataset emotion/split to /Users/hangyojeong/.cache/huggingface/datasets/emotion/split/1.0.0/cca5efe2dfeb58c1d098e0f9eeb200e9927d889b5a03c67097275dfb5fe463bd...\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "afe2d3661e3d4d349f96c2c09c9b1421", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Downloading data files: 0%| | 0/3 [00:00\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
textlabel
0i didnt feel humiliated0
1i can go from feeling so hopeless to so damned...0
2im grabbing a minute to post i feel greedy wrong3
3i am ever feeling nostalgic about the fireplac...2
4i am feeling grouchy3
\n", + "" + ], + "text/plain": [ + " text label\n", + "0 i didnt feel humiliated 0\n", + "1 i can go from feeling so hopeless to so damned... 0\n", + "2 im grabbing a minute to post i feel greedy wrong 3\n", + "3 i am ever feeling nostalgic about the fireplac... 2\n", + "4 i am feeling grouchy 3" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pandas as pd\n", + "\n", + "emotions.set_format(type=\"pandas\")\n", + "df = emotions[\"train\"][:]\n", + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "44b1fd35", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "

\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
textlabellabel_name
0i didnt feel humiliated0sadness
1i can go from feeling so hopeless to so damned...0sadness
2im grabbing a minute to post i feel greedy wrong3anger
3i am ever feeling nostalgic about the fireplac...2love
4i am feeling grouchy3anger
\n", + "
" + ], + "text/plain": [ + " text label label_name\n", + "0 i didnt feel humiliated 0 sadness\n", + "1 i can go from feeling so hopeless to so damned... 0 sadness\n", + "2 im grabbing a minute to post i feel greedy wrong 3 anger\n", + "3 i am ever feeling nostalgic about the fireplac... 2 love\n", + "4 i am feeling grouchy 3 anger" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def label_int2str(row):\n", + " return emotions[\"train\"].features[\"label\"].int2str(row)\n", + "\n", + "df[\"label_name\"] = df[\"label\"].apply(label_int2str)\n", + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "b96c7176", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkUAAAGzCAYAAAAhXWNYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA1RElEQVR4nO3de5zXc/7//9t7ao5NM9NJTVQ6SWeqjaRCh9GBkkiiqFiLJeTQ9l0VUuu4WCWi9rNbYhE2ijYlJYnOSps0CpHQTInpMM/fH116/8x2HNQcul0vl9flMu/X6/l6vh6v53suzb3n6/V6vyMhhIAkSdIxLqagC5AkSSoMDEWSJEkYiiRJkgBDkSRJEmAokiRJAgxFkiRJgKFIkiQJMBRJkiQBhiJJkiTAUCRJv4k1a9bQoUMHUlNTiUQivPzyy79Jv1dccQUnnnjib9KXpIMzFElFzIQJE4hEIvtd7rjjjoIu75jVt29fli9fzogRI/jHP/5Bs2bNDto+Ozub4cOH07hxY5KTk0lMTKRBgwbcfvvtfPnll0epakk/V7KgC5D0y9x1111Ur149z7oGDRoUUDXHth9//JH58+czZMgQrr/++kO2//TTT2nXrh3r16/noosu4uqrryYuLo5ly5bx9NNPM2XKFP773/8ehcol/ZyhSCqiOnbseMjZiL1++ukn4uLiiIlxcvhI+OabbwBIS0s7ZNtdu3bRvXt3vv76a2bPns2ZZ56ZZ/uIESP4y1/+ciTKlHQI/gspFTOzZ88mEokwefJk/t//+38cf/zxJCUlkZ2dDcCCBQs499xzSU1NJSkpiTZt2jBv3rx9+pk7dy6/+93vSEhIoGbNmowdO5Zhw4YRiUSibTIzM4lEIkyYMGGf/SORCMOGDcuz7osvvqBfv35UrFiR+Ph46tevzzPPPLPf+p9//nlGjBjBCSecQEJCAm3btuWTTz7Z5zgLFiygU6dOlClThlKlStGoUSMeeeQRAMaPH08kEmHx4sX77HfvvfdSokQJvvjii4OO5+LFi+nYsSMpKSkkJyfTtm1b3nvvvej2YcOGUa1aNQBuvfVWIpHIQe8BevHFF1m6dClDhgzZJxABpKSkMGLEiIPW9MADD3DGGWdQrlw5EhMTadq0KS+88MI+7WbMmMGZZ55JWloaycnJ1KlThz/96U952jz22GPUr1+fpKQkypQpQ7NmzZg0aVKeNofzvh1uX1Jh5kyRVERlZWWxefPmPOvKly8f/fnuu+8mLi6OQYMGkZOTQ1xcHG+99RYdO3akadOmDB06lJiYGMaPH88555zDO++8Q/PmzQFYvnw5HTp0oEKFCgwbNoxdu3YxdOhQKlas+Ivr/frrrzn99NOJRCJcf/31VKhQgWnTptG/f3+ys7MZOHBgnvajRo0iJiaGQYMGkZWVxX333Ufv3r1ZsGBBtM2MGTPo0qUL6enp3HjjjVSqVIlVq1YxdepUbrzxRnr06MF1113HxIkTOfXUU/P0P3HiRM466yyOP/74A9b80Ucf0apVK1JSUrjtttuIjY1l7NixnHXWWbz99tucdtppdO/enbS0NG666SZ69epFp06dSE5OPmCfr776KgCXX375LxjFPR555BHOP/98evfuzY4dO5g8eTIXXXQRU6dOpXPnztHau3TpQqNGjbjrrruIj4/nk08+yROAn3rqKW644QZ69OjBjTfeyE8//cSyZctYsGABl156KXD479vh9CUVekFSkTJ+/PgA7HcJIYRZs2YFINSoUSNs3749ul9ubm6oXbt2yMjICLm5udH127dvD9WrVw/t27ePruvWrVtISEgIn332WXTdypUrQ4kSJcLP/9lYt25dAML48eP3qRMIQ4cOjb7u379/SE9PD5s3b87T7pJLLgmpqanRWvfWX7du3ZCTkxNt98gjjwQgLF++PIQQwq5du0L16tVDtWrVwvfff5+nz5+fX69evULlypXD7t27o+sWLVp0wLp/rlu3biEuLi6sXbs2uu7LL78MpUuXDq1bt95nHO6///6D9hdCCKeeempITU09ZLu9+vbtG6pVq5Zn3c/f1xBC2LFjR2jQoEE455xzousefvjhAIRvvvnmgH137do11K9f/6DHP9z37XD6kgo7L59JRdTjjz/OjBkz8iw/17dvXxITE6OvlyxZwpo1a7j00kv59ttv2bx5M5s3b+aHH36gbdu2zJkzh9zcXHbv3s0bb7xBt27dqFq1anT/unXrkpGR8YtqDSHw4osvct555xFCiB578+bNZGRkkJWVxaJFi/Lsc+WVVxIXFxd93apVK2DPTcqw57LWunXrGDhw4D738vz8El+fPn348ssvmTVrVnTdxIkTSUxM5MILLzxgzbt37+bNN9+kW7du1KhRI7o+PT2dSy+9lLlz50YvSeZHdnY2pUuXzvd+P/fz9/X7778nKyuLVq1a5RnDvWPyyiuvkJubu99+0tLS+Pzzz1m4cOF+t+fnfTtUX1JR4OUzqYhq3rz5QW+0/t8n09asWQPsCUsHkpWVRU5ODj/++CO1a9feZ3udOnV4/fXX813rN998w5YtW3jyySd58skn99tm06ZNeV7/PJABlClTBtgTAgDWrl0LHPqJu/bt25Oens7EiRNp27Ytubm5PPvss3Tt2vWg4eSbb75h+/bt1KlTZ59tdevWJTc3lw0bNlC/fv2DHv9/paSkRIPdLzV16lTuuecelixZQk5OTnT9z8Ngz549GTduHAMGDOCOO+6gbdu2dO/enR49ekRvuL/99tv5z3/+Q/PmzalVqxYdOnTg0ksvpWXLlkD+3rdD9SUVBYYiqZj6+WwCEJ0tuP/++znllFP2u09ycnKeP7KH8vM/wj+3e/fu/R77sssuO2Aoa9SoUZ7XJUqU2G+7EMJh17e3n0svvZSnnnqK0aNHM2/ePL788ksuu+yyfPXzWzn55JNZvHgxGzZsoEqVKvne/5133uH888+ndevWjB49mvT0dGJjYxk/fnyem5oTExOZM2cOs2bN4rXXXmP69Ok899xznHPOObz55puUKFGCunXrsnr1aqZOncr06dN58cUXGT16NHfeeSfDhw/P1/t2qL6kosBQJB0jatasCeyZqWjXrt0B21WoUIHExMTozNLPrV69Os/rvbM3W7ZsybP+s88+26fP0qVLs3v37oMeOz/2ns+KFSsO2WefPn148MEH+fe//820adOoUKHCIS8FVqhQgaSkpH3OGeDjjz8mJibmF4Wa8847j2effZZ//vOfDB48ON/7v/jiiyQkJPDGG28QHx8fXT9+/Ph92sbExNC2bVvatm3LQw89xL333suQIUOYNWtWdMxKlSpFz5496dmzJzt27KB79+6MGDGCwYMH5/t9O1hfCQkJ+T5X6WjzniLpGNG0aVNq1qzJAw88wLZt2/bZvvezdkqUKEFGRgYvv/wy69evj25ftWoVb7zxRp59UlJSKF++PHPmzMmzfvTo0XlelyhRggsvvJAXX3yRFStWHPDY+dGkSROqV6/OX//6131C2f/OJjVq1IhGjRoxbtw4XnzxRS655BJKljz4/wlLlChBhw4deOWVV8jMzIyu//rrr5k0aRJn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TPjoo4/CVVddFdLS0sLXX39d0KUVOq+//noYMmRIeOmllwIQpkyZkmf7qFGjQmpqanj55ZfD0qVLw/nnnx+qV68efvzxx2ibc889NzRu3Di899574Z133gm1atUKvXr1im7PysoKFStWDL179w4rVqwIzz77bEhMTAxjx449WqdZYDIyMsL48ePDihUrwpIlS0KnTp1C1apVw7Zt26JtrrnmmlClSpUwc+bM8MEHH4TTTz89nHHGGdHtu3btCg0aNAjt2rULixcvDq+//nooX758GDx4cLTNp59+GpKSksLNN98cVq5cGR577LFQokSJMH369KN6vkfbq6++Gl577bXw3//+N6xevTr86U9/CrGxsWHFihUhBMf2t/L++++HE088MTRq1CjceOON0fWO768zdOjQUL9+/bBx48bo8s0330S3O76HZig6DM2bNw/XXXdd9PXu3btD5cqVw8iRIwuwqsLvf0NRbm5uqFSpUrj//vuj67Zs2RLi4+PDs88+G0IIYeXKlQEICxcujLaZNm1aiEQi4YsvvgghhDB69OhQpkyZkJOTE21z++23hzp16hzhMyp8Nm3aFIDw9ttvhxD2jGdsbGz417/+FW2zatWqAIT58+eHEPYE15iYmPDVV19F24wZMyakpKREx/S2224L9evXz3Osnj17hoyMjCN9SoVOmTJlwrhx4xzb38jWrVtD7dq1w4wZM0KbNm2iocjx/fWGDh0aGjduvN9tju/h8fLZIezYsYMPP/yQdu3aRdfFxMTQrl075s+fX4CVFT3r1q3jq6++yjOWqampnHbaadGxnD9/PmlpaTRr1izapl27dsTExLBgwYJom9atWxMXFxdtk5GRwerVq/n++++P0tkUDllZWQCULVsWgA8//JCdO3fmGeOTTz6ZqlWr5hnjhg0bUrFixWibjIwMsrOz+eijj6Jtft7H3jbH0u/87t27mTx5Mj/88AMtWrRwbH8j1113HZ07d95nDBzf38aaNWuoXLkyNWrUoHfv3qxfvx5wfA+XoegQNm/ezO7du/P8kgBUrFiRr776qoCqKpr2jtfBxvKrr77iuOOOy7O9ZMmSlC1bNk+b/fXx82McC3Jzcxk4cCAtW7akQYMGwJ7zj4uLIy0tLU/b/x3jQ43fgdpkZ2fz448/HonTKTSWL19OcnIy8fHxXHPNNUyZMoV69eo5tr+ByZMns2jRIkaOHLnPNsf31zvttNOYMGEC06dPZ8yYMaxbt45WrVqxdetWx/cwlSzoAiT9Mtdddx0rVqxg7ty5BV1KsVKnTh2WLFlCVlYWL7zwAn379uXtt98u6LKKvA0bNnDjjTcyY8YMEhISCrqcYqljx47Rnxs1asRpp51GtWrVeP7550lMTCzAyooOZ4oOoXz58pQoUWKfO/S//vprKlWqVEBVFU17x+tgY1mpUiU2bdqUZ/uuXbv47rvv8rTZXx8/P0Zxd/311zN16lRmzZrFCSecEF1fqVIlduzYwZYtW/K0/98xPtT4HahNSkpKsf/HNS4ujlq1atG0aVNGjhxJ48aNeeSRRxzbX+nDDz9k06ZNNGnShJIlS1KyZEnefvttHn30UUqWLEnFihUd399YWloaJ510Ep988om/v4fJUHQIcXFxNG3alJkzZ0bX5ebmMnPmTFq0aFGAlRU91atXp1KlSnnGMjs7mwULFkTHskWLFmzZsoUPP/ww2uatt94iNzeX0047Ldpmzpw57Ny5M9pmxowZ1KlThzJlyhylsykYIQSuv/56pkyZwltvvUX16tXzbG/atCmxsbF5xnj16tWsX78+zxgvX748T/icMWMGKSkp1KtXL9rm533sbXMs/s7n5uaSk5Pj2P5Kbdu2Zfny5SxZsiS6NGvWjN69e0d/dnx/W9u2bWPt2rWkp6f7+3u4CvpO76Jg8uTJIT4+PkyYMCGsXLkyXH311SEtLS3PHfraY+vWrWHx4sVh8eLFAQgPPfRQWLx4cfjss89CCHseyU9LSwuvvPJKWLZsWejatet+H8k/9dRTw4IFC8LcuXND7dq18zySv2XLllCxYsVw+eWXhxUrVoTJkyeHpKSkY+KR/D/84Q8hNTU1zJ49O89jt9u3b4+2ueaaa0LVqlXDW2+9FT744IPQokWL0KJFi+j2vY/ddujQISxZsiRMnz49VKhQYb+P3d56661h1apV4fHHHy9Wj90eyB133BHefvvtsG7durBs2bJwxx13hEgkEt58880QgmP7W/v502chOL6/1i233BJmz54d1q1bF+bNmxfatWsXypcvHzZt2hRCcHwPh6HoMD322GOhatWqIS4uLjRv3jy89957BV1SoTRr1qwA7LP07ds3hLDnsfw///nPoWLFiiE+Pj60bds2rF69Ok8f3377bejVq1dITk4OKSkp4corrwxbt27N02bp0qXhzDPPDPHx8eH4448Po0aNOlqnWKD2N7ZAGD9+fLTNjz/+GK699tpQpkyZkJSUFC644IKwcePGPP1kZmaGjh07hsTExFC+fPlwyy23hJ07d+ZpM2vWrHDKKaeEuLi4UKNGjTzHKK769esXqlWrFuLi4kKFChVC27Zto4EoBMf2t/a/ocjx/XV69uwZ0tPTQ1xcXDj++ONDz549wyeffBLd7vgeWiSEEApmjkqSJKnw8J4iSZIkDEWSJEmAoUiSJAkwFEmSJAGGIkmSJMBQJEmSBBiKJEmSAEORJEkSYCiSJEkCDEWSJEmAoUiSJAmA/w/53yIr76reFAAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "# plot.barh() : Make a horizontal bar plot\n", + "df[\"label_name\"].value_counts(ascending=True).plot.barh()\n", + "plt.title(\"Frequency of Classes\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "50520dc3", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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zNSUKVO0bds2derUSWlpafr888+rY3MAAKAOqZbwMn36dI0aNUoPPPCA2rVrp5deekmBgYF65ZVXqmNzAACgDvF6eCkrK1N2drb69+///xvx9VX//v21adMmb28OAADUMV6/q/SxY8d09uxZRUVFuU2Pioq66L0tSktLVVpa6jwvLi72dkkAAOA6UuOjjaZNm6awsDDnERsbW9MlAQCAWszrV14aNWqkevXqqaCgwG16QUGBoqOjL1h+0qRJyszMdJ4XFRWpefPmXIEBAKAOOf+5X5n7RXs9vDRo0EDJyclauXKlhgwZIkmqqKjQypUrNXbs2AuWd7lccrlczvPzxXMFBgCAuufrr79WWFjYZZfxeniRpMzMTGVkZKhLly7q2rWrnn/+eZWUlOiBBx644roxMTE6ePCgQkJC5OPjUx3leU1xcbFiY2N18ODBK96+G5XDMa0eHFfv45h6H8e0ethyXI0x+vrrrxUTE3PFZaslvNx111364osvNHnyZB09elQ33nijli9ffkEn3ovx9fVVs2bNqqOsahMaGlqrTwgbcUyrB8fV+zim3scxrR42HNcrXXE5r1rCiySNHTv2ol8TAQAAVEWNjzYCAADwBOGlClwul6ZMmeLW4RhVwzGtHhxX7+OYeh/HtHpcj8fVx1RmTBIAAEAtwZUXAABgFcILAACwCuEFAABYhfCCameM0ejRoxURESEfHx/l5OTUdEnXneHDhzu/aI2rc/PNN2vChAk1XUad4ePjo7fffrumy8A3PP7447rxxhtruoxKqbbfeQHOW758uebNm6c1a9aoRYsWatSoUU2XdN2ZOXNmpe4HAgCXMnHiRI0bN66my6gUwkstU15ervr169d0GV61Z88eNW3aVKmpqdW2jbKyMjVo0KDa2q/tKvurlACuX1f7PmiM0dmzZxUcHKzg4OBqqMz76uzXRsuXL1fPnj0VHh6uyMhIff/739eePXskSfv27ZOPj4/++te/6pZbblFgYKA6deqkTZs2ubUxZ84cxcbGKjAwUD/4wQ80ffp0hYeHuy3zzjvvqHPnzvL391eLFi00depUnTlzxpnv4+OjWbNm6fbbb1dQUJCeeuqpat/3a2n48OEaN26cDhw4IB8fH8XHx6uiokLTpk1TQkKCAgIC1KlTJ7355pvOOmfPntWIESOc+W3bttXMmTMvaHfIkCF66qmnFBMTo7Zt217rXatVvvm1UWlpqcaPH68mTZrI399fPXv21NatWyWde5Nq1aqVnnvuObf1c3Jy5OPjo927d1/r0mulr776Svfff78aNmyowMBADRw4UPn5+ZLO3ScmICBAy5Ytc1tnyZIlCgkJ0cmTJyVJBw8e1A9/+EOFh4crIiJCgwcP1r59+671rnjNm2++qQ4dOiggIECRkZHq37+/SkpKtHXrVg0YMECNGjVSWFiY+vTpo23btrmtm5+fr969e8vf31/t2rXTBx984Da/su+5GzZsUK9evRQQEKDY2FiNHz9eJSUlzvwXX3xRrVu3lr+/v6KiojR06NAr1l/TLlXXxb7GHDJkiIYPH+48j4+P169//Wvdf//9Cg0N1ejRo51juXDhQqWmpsrf31833HCD1q5d66y3Zs0a+fj4aNmyZUpOTpbL5dKGDRsu+NpozZo16tq1q4KCghQeHq4ePXpo//79zvwrfb5VK1NHvfnmm+att94y+fn5Zvv27WbQoEGmQ4cO5uzZs2bv3r1GkklMTDTvvvuuycvLM0OHDjVxcXGmvLzcGGPMhg0bjK+vr3n22WdNXl6eycrKMhERESYsLMzZxrp160xoaKiZN2+e2bNnj3n//fdNfHy8efzxx51lJJkmTZqYV155xezZs8fs37//Wh+KalVYWGieeOIJ06xZM3PkyBHz+eefmyeffNIkJiaa5cuXmz179pi5c+cal8tl1qxZY4wxpqyszEyePNls3brV/Otf/zKvvfaaCQwMNG+88YbTbkZGhgkODjb33Xef2bFjh9mxY0dN7WKtkJGRYQYPHmyMMWb8+PEmJibGvPfee+bTTz81GRkZpmHDhub48ePGGGOeeuop065dO7f1x48fb3r37n2ty65V+vTpYx555BFjjDG33367SUpKMuvWrTM5OTkmLS3NtGrVypSVlRljjBk6dKgZNmyY2/rp6enOtLKyMpOUlGQefPBB889//tPs3LnT/OhHPzJt27Y1paWl13S/vOHw4cPGz8/PTJ8+3ezdu9f885//NFlZWebrr782K1euNPPnzze5ublm586dZsSIESYqKsoUFxcbY4w5e/asueGGG0y/fv1MTk6OWbt2rbnpppuMJLNkyRJjjKnUe+7u3btNUFCQmTFjhvnss8/Mxo0bzU033WSGDx9ujDFm69atpl69embBggVm3759Ztu2bWbmzJlXrL8mXa6ub56P5w0ePNhkZGQ4z+Pi4kxoaKh57rnnzO7du83u3budY9msWTPz5ptvmp07d5qRI0eakJAQc+zYMWOMMatXrzaSTMeOHc37779vdu/ebY4fP26mTJliOnXqZIwxpry83ISFhZmJEyea3bt3m507d5p58+Y5n1GV+XyrTnU2vHzbF198YSSZTz75xPnH/9Of/uTM//TTT40kk5uba4wx5q677jK33XabWxv33nuvW3jp16+f+c1vfuO2zPz5803Tpk2d55LMhAkTqmGPao8ZM2aYuLg4Y4wxp0+fNoGBgebDDz90W2bEiBHmnnvuuWQbY8aMMenp6c7zjIwMExUVZeUHQXU4H15OnDhh6tevb15//XVnXllZmYmJiTHPPPOMMcaYQ4cOmXr16pktW7Y48xs1amTmzZtXI7XXFuc/LD777DMjyWzcuNGZd+zYMRMQEGAWLVpkjDFmyZIlJjg42JSUlBhjjCkqKjL+/v5m2bJlxphzr/O2bduaiooKp43S0lITEBBgVqxYcQ33yjuys7ONJLNv374rLnv27FkTEhJili5daowxZsWKFcbPz88cOnTIWWbZsmUXDS+Xe88dMWKEGT16tNu21q9fb3x9fc2pU6fMW2+9ZUJDQ53QdLX1X0uXq6uy4WXIkCFuy5w/lk8//bQzrby83DRr1sz89re/Ncb8f3h5++233db9Zng5fvy4keT8Ufltlfl8q0519muj/Px83XPPPWrRooVCQ0MVHx8vSTpw4ICzTMeOHZ3/b9q0qSTp888/lyTl5eWpa9eubm1++/nHH3+sJ554wvkeMTg4WKNGjdKRI0ecS8uS1KVLF6/uW222e/dunTx5UgMGDHA7Ln/+85+dr+0kKSsrS8nJyWrcuLGCg4M1e/Zst38bSerQoUOd7udyMXv27FF5ebl69OjhTKtfv766du2q3NxcSVJMTIxuu+02vfLKK5KkpUuXqrS0VHfeeWeN1Fzb5Obmys/PT926dXOmRUZGqm3bts4xvPXWW1W/fn397//+ryTprbfeUmhoqPr37y/p3Gt/9+7dCgkJcc7xiIgInT592u08t0WnTp3Ur18/dejQQXfeeafmzJmjr776SpJUUFCgUaNGqXXr1goLC1NoaKhOnDjhvF5zc3MVGxurmJgYp72UlJSLbudy77kf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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df[\"Words Per Tweet\"] = df[\"text\"].str.split().apply(len)\n", + "df.boxplot(\"Words Per Tweet\", by=\"label_name\", grid=False, showfliers=False, color=\"black\")\n", + "plt.suptitle(\"\")\n", + "plt.xlabel(\"\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "bae0a4c8", + "metadata": {}, + "outputs": [], + "source": [ + "# 데이터셋의 출력 포맷 초기화\n", + "emotions.reset_format()" + ] + }, + { + "cell_type": "markdown", + "id": "530d7e4a", + "metadata": {}, + "source": [ + "# 토큰화" + ] + }, + { + "cell_type": "markdown", + "id": "b397f12b", + "metadata": {}, + "source": [ + "## 문자 토큰화\n", + "각 문자를 개별로 모델에 주입
\n", + "파이썬의 str 객체 내부는 사실 배열이므로 문자 수준의 토큰화가 손쉽게 가능" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "9b5c18a4", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['T', 'o', 'k', 'e', 'n', 'i', 'z', 'i', 'n', 'g', ' ', 't', 'e', 'x', 't', ' ', 'i', 's', ' ', 'a', ' ', 'c', 'o', 'r', 'e', ' ', 't', 'a', 's', 'k', ' ', 'o', 'f', ' ', 'N', 'L', 'P', '.']\n" + ] + } + ], + "source": [ + "text = \"Tokenizing text is a core task of NLP.\"\n", + "tokenized_text = list(text)\n", + "print(tokenized_text)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "acf0acdd", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{' ': 0, '.': 1, 'L': 2, 'N': 3, 'P': 4, 'T': 5, 'a': 6, 'c': 7, 'e': 8, 'f': 9, 'g': 10, 'i': 11, 'k': 12, 'n': 13, 'o': 14, 'r': 15, 's': 16, 't': 17, 'x': 18, 'z': 19}\n" + ] + } + ], + "source": [ + "token2idx = {ch: idx for idx, ch in enumerate(sorted(set(tokenized_text)))}\n", + "print(token2idx)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "ff118c22", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[5, 14, 12, 8, 13, 11, 19, 11, 13, 10, 0, 17, 8, 18, 17, 0, 11, 16, 0, 6, 0, 7, 14, 15, 8, 0, 17, 6, 16, 12, 0, 14, 9, 0, 3, 2, 4, 1]\n" + ] + } + ], + "source": [ + "input_ids = [token2idx[token] for token in tokenized_text]\n", + "print(input_ids)" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "id": "8508c09d", + "metadata": {}, + "outputs": [], + "source": [ + "import torch\n", + "import torch.nn.functional as F" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "id": "4ce2e4e1", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/rz/96n_vjq17kg53f0rgc21grc40000gn/T/ipykernel_1858/3674191911.py:1: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", + " input_ids = torch.tensor(input_ids)\n" + ] + }, + { + "data": { + "text/plain": [ + "torch.Size([38, 20])" + ] + }, + "execution_count": 54, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "input_ids = torch.tensor(input_ids)\n", + "one_hot_encodings = F.one_hot(input_ids, num_classes=len(token2idx))\n", + "one_hot_encodings.shape" + ] + }, + { + "cell_type": "markdown", + "id": "8b8449c2", + "metadata": {}, + "source": [ + "38개의 입력 토큰 각각에 20차원의 원-핫 벡터가 만들어짐\n", + "\n", + "5 .....len(20)
\n", + "14.....len(20)
\n", + "12.....len(20)
\n", + ".\n", + ".\n", + ". .....len(20)
\n", + "2 .....len(20)
\n", + "4 .....len(20)
\n", + "1 .....len(20)
\n", + "\n", + "각 토큰별 20개의 원소를 가진 벡터가 만들어짐" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "id": "58874e4b", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "토큰: Tokenizing\n", + "텐서 인덱스: 5\n", + "원-핫 인코딩: tensor([0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])\n" + ] + } + ], + "source": [ + "print(f\"토큰: {tokenized_text[0]}\")\n", + "print(f\"텐서 인덱스: {input_ids[0]}\")\n", + "print(f\"원-핫 인코딩: {one_hot_encodings[0]}\")" + ] + }, + { + "cell_type": "markdown", + "id": "5729671a", + "metadata": {}, + "source": [ + "## 단어 토큰화\n", + "텍스트를 문자가 아닌 단어로 분할하고 각 단어를 정수로 매핑" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "id": "6fbe209f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['this', 'is', 'a', 'test']\n" + ] + } + ], + "source": [ + "tokenized_text = text.split()\n", + "print(tokenized_text)" + ] + }, + { + "cell_type": "markdown", + "id": "f8988f71", + "metadata": {}, + "source": [ + "단어 토큰화는 단어에 곡용, 활용형, 철자 오류가 포함되어 어휘 사전이 금세 수백만 개까지 늘어나게 됨" + ] + }, + { + "cell_type": "markdown", + "id": "bfb042f0", + "metadata": {}, + "source": [ + "단어를 토큰화 하게 되면 어휘사전이 커지게 되고 이러면 신경망의 파라미터 역시 많이 필요하게 됨\n", + "
\n", + "- 어휘 사전의 크기를 제한하는 일반적인 방법은 드물게 등장하는 단어는 무시하는 것. 이러한 단어는 'UNK' 토큰으로 매핑\n", + "- 하지만 이렇게 되면 토큰화 과정에서 중요 정보 일부를 잃게 됨\n", + "- 모든 입력 정보와 일부 입력 구조를 유지하는 문자 토큰화와 단어 토큰화를 절충하는 방법으로 **부분단어 토큰화(subword tokenization)** 라는 방법" + ] + }, + { + "cell_type": "markdown", + "id": "95a96577", + "metadata": {}, + "source": [ + "## 부분단어 토큰화\n", + "- 부분단어 토큰화는 문자 단어 토큰화 + 단어 토큰화 의 장점을 결합\n", + "- 드물게 등장하는 단어를 더 작은 단위로 나누면 모델이 복잡한 단어나 철자 오류를 처리하기 용이\n", + "- 다른 방법으론 입력 길이를 적절한 크기로 유지하기 위해 자주 등장하는 단어를 고유한 항목으로 유지\n", + "

\n", + "- NLP 분야에서 널리 사용되는 부분단어 토큰화 중 먼저 BERT와 DistilBERT의 토크나이저 **WordPiece**" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "id": "2379be10", + "metadata": {}, + "outputs": [], + "source": [ + "from transformers import AutoTokenizer\n", + "\n", + "model_ckpt = \"distilbert-base-uncased\"\n", + "tokenizer = AutoTokenizer.from_pretrained(model_ckpt)" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "id": "6b1e2b90", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "this is a test\n", + "{'input_ids': [101, 2023, 2003, 1037, 3231, 102], 'attention_mask': [1, 1, 1, 1, 1, 1]}\n" + ] + } + ], + "source": [ + "encoded_text = tokenizer(text)\n", + "print(text)\n", + "print(encoded_text)" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "id": "0b85a1b6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['[CLS]', 'this', 'is', 'a', 'test', '[SEP]']\n" + ] + } + ], + "source": [ + "tokens = tokenizer.convert_ids_to_tokens(encoded_text.input_ids)\n", + "print(tokens)" + ] + }, + { + "cell_type": "markdown", + "id": "94b6f7c5", + "metadata": {}, + "source": [ + "1. 특수 토큰 [CLS], [SEP]가 시퀀스 처음과 끝에 추가\n", + "2. 토큰이 모두 소문자로 변환\n", + "3. 'tokenizing'과 'NLP'가 각각 2개의 토큰으로 나뉘어짐. 자주 등장하는 단어가 아니기 때문 ##izing, ##p에 있는 #은 공백이 아님을 의미\n", + "\n", + "이런 접두사가 붙은 토큰은 문자열로 다시 바꿀 때 앞의 토큰과 합침" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "id": "259920c8", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CLS] this is a test [SEP]\n" + ] + } + ], + "source": [ + "print(tokenizer.convert_tokens_to_string(tokens))" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "id": "46c19084", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "30522" + ] + }, + "execution_count": 61, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# 어휘 사전 크기 확인\n", + "tokenizer.vocab_size" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "id": "15e57040", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "512" + ] + }, + "execution_count": 62, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# 모델 최대 문맥 크기\n", + "tokenizer.model_max_length" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "id": "dbbba4bb", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['input_ids', 'attention_mask']" + ] + }, + "execution_count": 63, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# 모델이 정방향 패스(forward pass)\n", + "tokenizer.model_input_names" + ] + }, + { + "cell_type": "markdown", + "id": "f8fa19c9", + "metadata": {}, + "source": [ + "# 전체 데이터셋 토큰화\n" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "id": "5e5a58d3", + "metadata": {}, + "outputs": [], + "source": [ + "def tokenize(batch):\n", + " return tokenizer(batch[\"text\"], padding=True, truncation=True)" + ] + }, + { + "cell_type": "markdown", + "id": "db6da0cc", + "metadata": {}, + "source": [ + "Tokenizer를 샘플 배치에 적용\n", + "
\n", + "- padding=True: 배치에 있는 가장 긴 샘플 크기에 맞춰 샘플을 0으로 패딩\n", + "- truncation=True: 모델의 최대 문맥 크기에 맞춰 샘플을 잘라냄" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "id": "9658e034", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'input_ids': [[101, 1045, 2134, 2102, 2514, 26608, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [101, 1045, 2064, 2175, 2013, 3110, 2061, 20625, 2000, 2061, 9636, 17772, 2074, 2013, 2108, 2105, 2619, 2040, 14977, 1998, 2003, 8300, 102]], 'attention_mask': [[1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]}\n" + ] + } + ], + "source": [ + "print(tokenize(emotions[\"train\"][:2]))" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "id": "03458041", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Loading cached processed dataset at /Users/hangyojeong/.cache/huggingface/datasets/emotion/split/1.0.0/cca5efe2dfeb58c1d098e0f9eeb200e9927d889b5a03c67097275dfb5fe463bd/cache-6316da5de5436960.arrow\n", + "Loading cached processed dataset at /Users/hangyojeong/.cache/huggingface/datasets/emotion/split/1.0.0/cca5efe2dfeb58c1d098e0f9eeb200e9927d889b5a03c67097275dfb5fe463bd/cache-2cb11f4abdb48d91.arrow\n", + "Loading cached processed dataset at /Users/hangyojeong/.cache/huggingface/datasets/emotion/split/1.0.0/cca5efe2dfeb58c1d098e0f9eeb200e9927d889b5a03c67097275dfb5fe463bd/cache-1983a40220248de7.arrow\n" + ] + } + ], + "source": [ + "emotions_encoded = emotions.map(tokenize, batched=True, batch_size=None)" + ] + }, + { + "cell_type": "markdown", + "id": "ceffe2fe", + "metadata": {}, + "source": [ + "map() 메서드는 말뭉치에 있는 모든 샘플에 개별적으로 작용
\n", + "\n", + "- batched=True: 트윗을 배치로 인코딩\n", + "- batch_size=None: 전체 데이터셋이 하나의 배치로 tokenize() 함수에 적용, 입력 텐서와 어텐션 마스크는 전역적으로 동일한 크기로 생성" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "id": "3de1ab5c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['text', 'label', 'input_ids', 'attention_mask']\n" + ] + } + ], + "source": [ + "print(emotions_encoded[\"train\"].column_names)" + ] + }, + { + "cell_type": "markdown", + "id": "c3d9224c", + "metadata": {}, + "source": [ + "# 텍스트 분류 모델 훈련\n", + "\n", + "### 특성 추출\n", + "사전 훈련된 모델을 수정하지 않고 은닉 상태를 특성(feature)으로 사용해 분류 모델을 훈련\n", + "\n", + "### 미세 튜닝\n", + "사전 훈련된 모델의 파라미터도 업데이트하기 위해 전체 모델을 엔드-투-엔드로 훈련" + ] + }, + { + "cell_type": "markdown", + "id": "2b923107", + "metadata": {}, + "source": [ + "## 특성 추출 방법\n" + ] + }, + { + "cell_type": "markdown", + "id": "c6560f7f", + "metadata": {}, + "source": [ + "사전 훈련된 모델 사용하기" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "id": "e6f48da5", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Some weights of the model checkpoint at distilbert-base-uncased were not used when initializing DistilBertModel: ['vocab_projector.bias', 'vocab_projector.weight', 'vocab_transform.weight', 'vocab_transform.bias', 'vocab_layer_norm.bias', 'vocab_layer_norm.weight']\n", + "- This IS expected if you are initializing DistilBertModel from the checkpoint of a model trained on another task or with another architecture (e.g. initializing a BertForSequenceClassification model from a BertForPreTraining model).\n", + "- This IS NOT expected if you are initializing DistilBertModel from the checkpoint of a model that you expect to be exactly identical (initializing a BertForSequenceClassification model from a BertForSequenceClassification model).\n" + ] + } + ], + "source": [ + "from transformers import AutoModel\n", + "\n", + "model_ckpt = \"distilbert-base-uncased\"\n", + "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n", + "model = AutoModel.from_pretrained(model_ckpt).to(device)" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "id": "5e3da298", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "입력 텐서 크기: torch.Size([1, 6])\n" + ] + } + ], + "source": [ + "text = \"this is a test\"\n", + "inputs = tokenizer(text, return_tensors=\"pt\")\n", + "print(f\"입력 텐서 크기: {inputs['input_ids'].size()}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "id": "4f99ad6f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dict_items([('input_ids', tensor([[ 101, 2023, 2003, 1037, 3231, 102]])), ('attention_mask', tensor([[1, 1, 1, 1, 1, 1]]))])" + ] + }, + "execution_count": 70, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "inputs.items()" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "id": "a81ee80b", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "k: input_ids\n", + "v: tensor([[ 101, 2023, 2003, 1037, 3231, 102]])\n", + "k: attention_mask\n", + "v: tensor([[1, 1, 1, 1, 1, 1]])\n" + ] + } + ], + "source": [ + "for k, v in inputs.items():\n", + " print(f\"k: {k}\")\n", + " print(f\"v: {v}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "id": "c3d5a3ca", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "BaseModelOutput(last_hidden_state=tensor([[[-0.1565, -0.1862, 0.0528, ..., -0.1188, 0.0662, 0.5470],\n", + " [-0.3575, -0.6484, -0.0618, ..., -0.3040, 0.3508, 0.5221],\n", + " [-0.2772, -0.4459, 0.1818, ..., -0.0948, -0.0076, 0.9958],\n", + " [-0.2841, -0.3917, 0.3753, ..., -0.2151, -0.1173, 1.0526],\n", + " [ 0.2661, -0.5094, -0.3180, ..., -0.4203, 0.0144, -0.2149],\n", + " [ 0.9441, 0.0112, -0.4714, ..., 0.1439, -0.7288, -0.1619]]]), hidden_states=None, attentions=None)\n" + ] + } + ], + "source": [ + "inputs = {k:v.to(device) for k,v in inputs.items()}\n", + "with torch.no_grad():\n", + " outputs = model(**inputs)\n", + " \n", + "print(outputs)" + ] + }, + { + "cell_type": "code", + "execution_count": 73, + "id": "a7b6ba5d", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "torch.Size([1, 6, 768])" + ] + }, + "execution_count": 73, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "outputs.last_hidden_state.size()" + ] + }, + { + "cell_type": "markdown", + "id": "7f551af1", + "metadata": {}, + "source": [ + "은닉 상태 텐서의 크기는 [batch_size, n_tokens, hidden_dim]
\n", + "-> 6개의 입력 토큰마다 768차원의 벡터가 반환" + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "id": "9a5b950a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "torch.Size([1, 768])" + ] + }, + "execution_count": 74, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "outputs.last_hidden_state[:,0].size()" + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "id": "c6eb5006", + "metadata": {}, + "outputs": [], + "source": [ + "def extract_hidden_states(batch):\n", + " inputs = {k:v.to(device) for k,v in batch.items() if k in tokenizer.model_input_names}\n", + " \n", + " # 마지막 은닉 상태를 추출\n", + " with torch.no_grad():\n", + " last_hidden_state = model(**inputs).last_hidden_state\n", + " \n", + " # [CLS] 토큰에 대한 벡터를 반환\n", + " return {\"hidden_state\": last_hidden_state[:,0].cpu().numpy()}" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "id": "1faae4d9", + "metadata": {}, + "outputs": [ + { + "ename": "ValueError", + "evalue": "PyTorch needs to be installed to be able to return PyTorch tensors.", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[77], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43memotions_encoded\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mset_format\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mtype\u001b[39;49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mtorch\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcolumns\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43minput_ids\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mattention_mask\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mlabel\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/miniforge3/envs/m1_tf_keras/lib/python3.9/site-packages/datasets/dataset_dict.py:548\u001b[0m, in \u001b[0;36mDatasetDict.set_format\u001b[0;34m(self, type, columns, output_all_columns, **format_kwargs)\u001b[0m\n\u001b[1;32m 546\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_check_values_type()\n\u001b[1;32m 547\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m dataset \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mvalues():\n\u001b[0;32m--> 548\u001b[0m \u001b[43mdataset\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mset_format\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mtype\u001b[39;49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mtype\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcolumns\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcolumns\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43moutput_all_columns\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43moutput_all_columns\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mformat_kwargs\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/miniforge3/envs/m1_tf_keras/lib/python3.9/site-packages/datasets/fingerprint.py:480\u001b[0m, in \u001b[0;36mfingerprint_transform.._fingerprint..wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 476\u001b[0m validate_fingerprint(kwargs[fingerprint_name])\n\u001b[1;32m 478\u001b[0m \u001b[38;5;66;03m# Call actual function\u001b[39;00m\n\u001b[0;32m--> 480\u001b[0m out \u001b[38;5;241m=\u001b[39m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 482\u001b[0m \u001b[38;5;66;03m# Update fingerprint of in-place transforms + update in-place history of transforms\u001b[39;00m\n\u001b[1;32m 484\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m inplace: \u001b[38;5;66;03m# update after calling func so that the fingerprint doesn't change if the function fails\u001b[39;00m\n", + "File \u001b[0;32m~/miniforge3/envs/m1_tf_keras/lib/python3.9/site-packages/datasets/arrow_dataset.py:2326\u001b[0m, in \u001b[0;36mDataset.set_format\u001b[0;34m(self, type, columns, output_all_columns, **format_kwargs)\u001b[0m\n\u001b[1;32m 2324\u001b[0m \u001b[38;5;66;03m# Check that the format_type and format_kwargs are valid and make it possible to have a Formatter\u001b[39;00m\n\u001b[1;32m 2325\u001b[0m \u001b[38;5;28mtype\u001b[39m \u001b[38;5;241m=\u001b[39m get_format_type_from_alias(\u001b[38;5;28mtype\u001b[39m)\n\u001b[0;32m-> 2326\u001b[0m _ \u001b[38;5;241m=\u001b[39m \u001b[43mget_formatter\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mtype\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfeatures\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfeatures\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mformat_kwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2328\u001b[0m \u001b[38;5;66;03m# Check filter column\u001b[39;00m\n\u001b[1;32m 2329\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(columns, \u001b[38;5;28mstr\u001b[39m):\n", + "File \u001b[0;32m~/miniforge3/envs/m1_tf_keras/lib/python3.9/site-packages/datasets/formatting/__init__.py:127\u001b[0m, in \u001b[0;36mget_formatter\u001b[0;34m(format_type, **format_kwargs)\u001b[0m\n\u001b[1;32m 125\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m _FORMAT_TYPES[format_type](\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mformat_kwargs)\n\u001b[1;32m 126\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m format_type \u001b[38;5;129;01min\u001b[39;00m _FORMAT_TYPES_ALIASES_UNAVAILABLE:\n\u001b[0;32m--> 127\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m _FORMAT_TYPES_ALIASES_UNAVAILABLE[format_type]\n\u001b[1;32m 128\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 129\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\n\u001b[1;32m 130\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mReturn type should be None or selected in \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mlist\u001b[39m(\u001b[38;5;28mtype\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m \u001b[38;5;28mtype\u001b[39m \u001b[38;5;129;01min\u001b[39;00m _FORMAT_TYPES\u001b[38;5;241m.\u001b[39mkeys() \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mtype\u001b[39m \u001b[38;5;241m!=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m)\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m, but got \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mformat_type\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 131\u001b[0m )\n", + " \u001b[0;31m[... skipping hidden 1 frame]\u001b[0m\n", + "Cell \u001b[0;32mIn[76], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43memotions_encoded\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mset_format\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mtorch\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcolumns\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43minput_ids\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mattention_mask\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mlabel\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/miniforge3/envs/m1_tf_keras/lib/python3.9/site-packages/datasets/dataset_dict.py:548\u001b[0m, in \u001b[0;36mDatasetDict.set_format\u001b[0;34m(self, type, columns, output_all_columns, **format_kwargs)\u001b[0m\n\u001b[1;32m 546\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_check_values_type()\n\u001b[1;32m 547\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m dataset \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mvalues():\n\u001b[0;32m--> 548\u001b[0m \u001b[43mdataset\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mset_format\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mtype\u001b[39;49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mtype\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcolumns\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcolumns\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43moutput_all_columns\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43moutput_all_columns\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mformat_kwargs\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/miniforge3/envs/m1_tf_keras/lib/python3.9/site-packages/datasets/fingerprint.py:480\u001b[0m, in \u001b[0;36mfingerprint_transform.._fingerprint..wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 476\u001b[0m validate_fingerprint(kwargs[fingerprint_name])\n\u001b[1;32m 478\u001b[0m \u001b[38;5;66;03m# Call actual function\u001b[39;00m\n\u001b[0;32m--> 480\u001b[0m out \u001b[38;5;241m=\u001b[39m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 482\u001b[0m \u001b[38;5;66;03m# Update fingerprint of in-place transforms + update in-place history of transforms\u001b[39;00m\n\u001b[1;32m 484\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m inplace: \u001b[38;5;66;03m# update after calling func so that the fingerprint doesn't change if the function fails\u001b[39;00m\n", + "File \u001b[0;32m~/miniforge3/envs/m1_tf_keras/lib/python3.9/site-packages/datasets/arrow_dataset.py:2326\u001b[0m, in \u001b[0;36mDataset.set_format\u001b[0;34m(self, type, columns, output_all_columns, **format_kwargs)\u001b[0m\n\u001b[1;32m 2324\u001b[0m \u001b[38;5;66;03m# Check that the format_type and format_kwargs are valid and make it possible to have a Formatter\u001b[39;00m\n\u001b[1;32m 2325\u001b[0m \u001b[38;5;28mtype\u001b[39m \u001b[38;5;241m=\u001b[39m get_format_type_from_alias(\u001b[38;5;28mtype\u001b[39m)\n\u001b[0;32m-> 2326\u001b[0m _ \u001b[38;5;241m=\u001b[39m \u001b[43mget_formatter\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mtype\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfeatures\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfeatures\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mformat_kwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2328\u001b[0m \u001b[38;5;66;03m# Check filter column\u001b[39;00m\n\u001b[1;32m 2329\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(columns, \u001b[38;5;28mstr\u001b[39m):\n", + "File \u001b[0;32m~/miniforge3/envs/m1_tf_keras/lib/python3.9/site-packages/datasets/formatting/__init__.py:127\u001b[0m, in \u001b[0;36mget_formatter\u001b[0;34m(format_type, **format_kwargs)\u001b[0m\n\u001b[1;32m 125\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m _FORMAT_TYPES[format_type](\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mformat_kwargs)\n\u001b[1;32m 126\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m format_type \u001b[38;5;129;01min\u001b[39;00m _FORMAT_TYPES_ALIASES_UNAVAILABLE:\n\u001b[0;32m--> 127\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m _FORMAT_TYPES_ALIASES_UNAVAILABLE[format_type]\n\u001b[1;32m 128\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 129\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\n\u001b[1;32m 130\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mReturn type should be None or selected in \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mlist\u001b[39m(\u001b[38;5;28mtype\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m \u001b[38;5;28mtype\u001b[39m \u001b[38;5;129;01min\u001b[39;00m _FORMAT_TYPES\u001b[38;5;241m.\u001b[39mkeys() \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mtype\u001b[39m \u001b[38;5;241m!=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m)\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m, but got \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mformat_type\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 131\u001b[0m )\n", + " \u001b[0;31m[... skipping hidden 1 frame]\u001b[0m\n", + "Cell \u001b[0;32mIn[76], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43memotions_encoded\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mset_format\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mtorch\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcolumns\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43minput_ids\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mattention_mask\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mlabel\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/miniforge3/envs/m1_tf_keras/lib/python3.9/site-packages/datasets/dataset_dict.py:548\u001b[0m, in \u001b[0;36mDatasetDict.set_format\u001b[0;34m(self, type, columns, output_all_columns, **format_kwargs)\u001b[0m\n\u001b[1;32m 546\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_check_values_type()\n\u001b[1;32m 547\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m dataset \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mvalues():\n\u001b[0;32m--> 548\u001b[0m \u001b[43mdataset\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mset_format\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mtype\u001b[39;49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mtype\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcolumns\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcolumns\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43moutput_all_columns\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43moutput_all_columns\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mformat_kwargs\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/miniforge3/envs/m1_tf_keras/lib/python3.9/site-packages/datasets/fingerprint.py:480\u001b[0m, in \u001b[0;36mfingerprint_transform.._fingerprint..wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 476\u001b[0m validate_fingerprint(kwargs[fingerprint_name])\n\u001b[1;32m 478\u001b[0m \u001b[38;5;66;03m# Call actual function\u001b[39;00m\n\u001b[0;32m--> 480\u001b[0m out \u001b[38;5;241m=\u001b[39m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 482\u001b[0m \u001b[38;5;66;03m# Update fingerprint of in-place transforms + update in-place history of transforms\u001b[39;00m\n\u001b[1;32m 484\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m inplace: \u001b[38;5;66;03m# update after calling func so that the fingerprint doesn't change if the function fails\u001b[39;00m\n", + "File \u001b[0;32m~/miniforge3/envs/m1_tf_keras/lib/python3.9/site-packages/datasets/arrow_dataset.py:2326\u001b[0m, in \u001b[0;36mDataset.set_format\u001b[0;34m(self, type, columns, output_all_columns, **format_kwargs)\u001b[0m\n\u001b[1;32m 2324\u001b[0m \u001b[38;5;66;03m# Check that the format_type and format_kwargs are valid and make it possible to have a Formatter\u001b[39;00m\n\u001b[1;32m 2325\u001b[0m \u001b[38;5;28mtype\u001b[39m \u001b[38;5;241m=\u001b[39m get_format_type_from_alias(\u001b[38;5;28mtype\u001b[39m)\n\u001b[0;32m-> 2326\u001b[0m _ \u001b[38;5;241m=\u001b[39m \u001b[43mget_formatter\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mtype\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfeatures\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfeatures\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mformat_kwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2328\u001b[0m \u001b[38;5;66;03m# Check filter column\u001b[39;00m\n\u001b[1;32m 2329\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(columns, \u001b[38;5;28mstr\u001b[39m):\n", + "File \u001b[0;32m~/miniforge3/envs/m1_tf_keras/lib/python3.9/site-packages/datasets/formatting/__init__.py:127\u001b[0m, in \u001b[0;36mget_formatter\u001b[0;34m(format_type, **format_kwargs)\u001b[0m\n\u001b[1;32m 125\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m _FORMAT_TYPES[format_type](\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mformat_kwargs)\n\u001b[1;32m 126\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m format_type \u001b[38;5;129;01min\u001b[39;00m _FORMAT_TYPES_ALIASES_UNAVAILABLE:\n\u001b[0;32m--> 127\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m _FORMAT_TYPES_ALIASES_UNAVAILABLE[format_type]\n\u001b[1;32m 128\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 129\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\n\u001b[1;32m 130\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mReturn type should be None or selected in \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mlist\u001b[39m(\u001b[38;5;28mtype\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m \u001b[38;5;28mtype\u001b[39m \u001b[38;5;129;01min\u001b[39;00m _FORMAT_TYPES\u001b[38;5;241m.\u001b[39mkeys() \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mtype\u001b[39m \u001b[38;5;241m!=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m)\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m, but got \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mformat_type\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 131\u001b[0m )\n", + " \u001b[0;31m[... skipping hidden 1 frame]\u001b[0m\n", + "Cell \u001b[0;32mIn[51], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43memotions_encoded\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mset_format\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mtorch\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/miniforge3/envs/m1_tf_keras/lib/python3.9/site-packages/datasets/dataset_dict.py:548\u001b[0m, in \u001b[0;36mDatasetDict.set_format\u001b[0;34m(self, type, columns, output_all_columns, **format_kwargs)\u001b[0m\n\u001b[1;32m 546\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_check_values_type()\n\u001b[1;32m 547\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m dataset \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mvalues():\n\u001b[0;32m--> 548\u001b[0m \u001b[43mdataset\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mset_format\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mtype\u001b[39;49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mtype\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcolumns\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcolumns\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43moutput_all_columns\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43moutput_all_columns\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mformat_kwargs\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/miniforge3/envs/m1_tf_keras/lib/python3.9/site-packages/datasets/fingerprint.py:480\u001b[0m, in \u001b[0;36mfingerprint_transform.._fingerprint..wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 476\u001b[0m validate_fingerprint(kwargs[fingerprint_name])\n\u001b[1;32m 478\u001b[0m \u001b[38;5;66;03m# Call actual function\u001b[39;00m\n\u001b[0;32m--> 480\u001b[0m out \u001b[38;5;241m=\u001b[39m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 482\u001b[0m \u001b[38;5;66;03m# Update fingerprint of in-place transforms + update in-place history of transforms\u001b[39;00m\n\u001b[1;32m 484\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m inplace: \u001b[38;5;66;03m# update after calling func so that the fingerprint doesn't change if the function fails\u001b[39;00m\n", + "File \u001b[0;32m~/miniforge3/envs/m1_tf_keras/lib/python3.9/site-packages/datasets/arrow_dataset.py:2326\u001b[0m, in \u001b[0;36mDataset.set_format\u001b[0;34m(self, type, columns, output_all_columns, **format_kwargs)\u001b[0m\n\u001b[1;32m 2324\u001b[0m \u001b[38;5;66;03m# Check that the format_type and format_kwargs are valid and make it possible to have a Formatter\u001b[39;00m\n\u001b[1;32m 2325\u001b[0m \u001b[38;5;28mtype\u001b[39m \u001b[38;5;241m=\u001b[39m get_format_type_from_alias(\u001b[38;5;28mtype\u001b[39m)\n\u001b[0;32m-> 2326\u001b[0m _ \u001b[38;5;241m=\u001b[39m \u001b[43mget_formatter\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mtype\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfeatures\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfeatures\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mformat_kwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2328\u001b[0m \u001b[38;5;66;03m# Check filter column\u001b[39;00m\n\u001b[1;32m 2329\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(columns, \u001b[38;5;28mstr\u001b[39m):\n", + "File \u001b[0;32m~/miniforge3/envs/m1_tf_keras/lib/python3.9/site-packages/datasets/formatting/__init__.py:127\u001b[0m, in \u001b[0;36mget_formatter\u001b[0;34m(format_type, **format_kwargs)\u001b[0m\n\u001b[1;32m 125\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m _FORMAT_TYPES[format_type](\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mformat_kwargs)\n\u001b[1;32m 126\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m format_type \u001b[38;5;129;01min\u001b[39;00m _FORMAT_TYPES_ALIASES_UNAVAILABLE:\n\u001b[0;32m--> 127\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m _FORMAT_TYPES_ALIASES_UNAVAILABLE[format_type]\n\u001b[1;32m 128\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 129\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\n\u001b[1;32m 130\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mReturn type should be None or selected in \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mlist\u001b[39m(\u001b[38;5;28mtype\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m \u001b[38;5;28mtype\u001b[39m \u001b[38;5;129;01min\u001b[39;00m _FORMAT_TYPES\u001b[38;5;241m.\u001b[39mkeys() \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mtype\u001b[39m \u001b[38;5;241m!=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m)\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m, but got \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mformat_type\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 131\u001b[0m )\n", + " \u001b[0;31m[... skipping hidden 1 frame]\u001b[0m\n", + "Cell \u001b[0;32mIn[76], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43memotions_encoded\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mset_format\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mtorch\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcolumns\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43minput_ids\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mattention_mask\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mlabel\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/miniforge3/envs/m1_tf_keras/lib/python3.9/site-packages/datasets/dataset_dict.py:548\u001b[0m, in \u001b[0;36mDatasetDict.set_format\u001b[0;34m(self, type, columns, output_all_columns, **format_kwargs)\u001b[0m\n\u001b[1;32m 546\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_check_values_type()\n\u001b[1;32m 547\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m dataset \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mvalues():\n\u001b[0;32m--> 548\u001b[0m \u001b[43mdataset\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mset_format\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mtype\u001b[39;49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mtype\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcolumns\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcolumns\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43moutput_all_columns\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43moutput_all_columns\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mformat_kwargs\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/miniforge3/envs/m1_tf_keras/lib/python3.9/site-packages/datasets/fingerprint.py:480\u001b[0m, in \u001b[0;36mfingerprint_transform.._fingerprint..wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 476\u001b[0m validate_fingerprint(kwargs[fingerprint_name])\n\u001b[1;32m 478\u001b[0m \u001b[38;5;66;03m# Call actual function\u001b[39;00m\n\u001b[0;32m--> 480\u001b[0m out \u001b[38;5;241m=\u001b[39m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 482\u001b[0m \u001b[38;5;66;03m# Update fingerprint of in-place transforms + update in-place history of transforms\u001b[39;00m\n\u001b[1;32m 484\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m inplace: \u001b[38;5;66;03m# update after calling func so that the fingerprint doesn't change if the function fails\u001b[39;00m\n", + "File \u001b[0;32m~/miniforge3/envs/m1_tf_keras/lib/python3.9/site-packages/datasets/arrow_dataset.py:2326\u001b[0m, in \u001b[0;36mDataset.set_format\u001b[0;34m(self, type, columns, output_all_columns, **format_kwargs)\u001b[0m\n\u001b[1;32m 2324\u001b[0m \u001b[38;5;66;03m# Check that the format_type and format_kwargs are valid and make it possible to have a Formatter\u001b[39;00m\n\u001b[1;32m 2325\u001b[0m \u001b[38;5;28mtype\u001b[39m \u001b[38;5;241m=\u001b[39m get_format_type_from_alias(\u001b[38;5;28mtype\u001b[39m)\n\u001b[0;32m-> 2326\u001b[0m _ \u001b[38;5;241m=\u001b[39m \u001b[43mget_formatter\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mtype\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfeatures\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfeatures\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mformat_kwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2328\u001b[0m \u001b[38;5;66;03m# Check filter column\u001b[39;00m\n\u001b[1;32m 2329\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(columns, \u001b[38;5;28mstr\u001b[39m):\n", + "File \u001b[0;32m~/miniforge3/envs/m1_tf_keras/lib/python3.9/site-packages/datasets/formatting/__init__.py:127\u001b[0m, in \u001b[0;36mget_formatter\u001b[0;34m(format_type, **format_kwargs)\u001b[0m\n\u001b[1;32m 125\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m _FORMAT_TYPES[format_type](\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mformat_kwargs)\n\u001b[1;32m 126\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m format_type \u001b[38;5;129;01min\u001b[39;00m _FORMAT_TYPES_ALIASES_UNAVAILABLE:\n\u001b[0;32m--> 127\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m _FORMAT_TYPES_ALIASES_UNAVAILABLE[format_type]\n\u001b[1;32m 128\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 129\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\n\u001b[1;32m 130\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mReturn type should be None or selected in \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mlist\u001b[39m(\u001b[38;5;28mtype\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m \u001b[38;5;28mtype\u001b[39m \u001b[38;5;129;01min\u001b[39;00m _FORMAT_TYPES\u001b[38;5;241m.\u001b[39mkeys() \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mtype\u001b[39m \u001b[38;5;241m!=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m)\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m, but got \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mformat_type\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 131\u001b[0m )\n", + "\u001b[0;31mValueError\u001b[0m: PyTorch needs to be installed to be able to return PyTorch tensors." + ] + } + ], + "source": [ + "emotions_encoded.set_format(type=\"torch\", columns=[\"input_ids\", \"attention_mask\", \"label\"])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "49cf0fca", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.15" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}