diff --git a/classification/.envrc b/classification/.envrc new file mode 100644 index 0000000..4a4726a --- /dev/null +++ b/classification/.envrc @@ -0,0 +1 @@ +use_nix diff --git a/classification/README.md b/classification/README.md new file mode 100644 index 0000000..e69de29 diff --git a/classification/classifier/hyp-metrics.csv b/classification/classifier/hyp-metrics.csv index a3c99e3..6aa6d75 100644 --- a/classification/classifier/hyp-metrics.csv +++ b/classification/classifier/hyp-metrics.csv @@ -1,139 +1,139 @@ ,summary,config,name -0,"{'test/epoch_acc': 0.7333333333333334, 'test/precision': 0.8285714285714286, 'test/epoch_loss': 0.5664619127909343, 'train/epoch_acc': 0.8230958230958231, '_step': 2059, 'epoch': 9, '_timestamp': 1680692970.2016854, 'test/f1-score': 0.7073170731707318, 'train/batch_loss': 0.33577921986579895, 'train/epoch_loss': 0.4241055610431793, '_wandb': {'runtime': 363}, '_runtime': 367.13677954673767, 'test/recall': 0.6170212765957447}","{'eps': 0.1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.9, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 4, 'learning_rate': 0.0003}",fiery-sweep-26 -1,"{'epoch': 9, '_wandb': {'runtime': 338}, '_runtime': 341.8420207500458, 'test/precision': 0.6851851851851852, 'train/epoch_acc': 0.7125307125307125, 'train/epoch_loss': 0.649790015355375, '_step': 1039, 'test/recall': 0.8222222222222222, 'test/f1-score': 0.7474747474747475, 'test/epoch_acc': 0.7222222222222222, 'test/epoch_loss': 0.6454579922888014, 'train/batch_loss': 0.7014500498771667, '_timestamp': 1680692589.503975}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.9, 'optimizer': 'adam', 'step_size': 2, 'batch_size': 8, 'learning_rate': 0.0003}",radiant-sweep-25 -2,"{'test/recall': 0.7837837837837838, 'test/precision': 0.935483870967742, 'test/epoch_loss': 0.34812947780333664, 'train/epoch_loss': 0.01614290558709019, '_step': 1039, 'epoch': 9, '_timestamp': 1680692234.39516, 'test/epoch_acc': 0.888888888888889, 'train/epoch_acc': 0.9987714987714988, 'train/batch_loss': 0.01956617273390293, '_wandb': {'runtime': 333}, '_runtime': 336.8275649547577, 'test/f1-score': 0.8529411764705881}","{'eps': 1e-08, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.999, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 8, 'learning_rate': 0.003}",blooming-sweep-24 -3,"{'_wandb': {'runtime': 327}, '_runtime': 331.57809829711914, '_timestamp': 1680691883.3877182, 'test/precision': 0.7608695652173914, 'test/epoch_loss': 0.5553177932898203, 'train/batch_loss': 0.5222326517105103, 'train/epoch_loss': 0.5324229019572753, 'epoch': 9, 'test/recall': 0.8333333333333334, 'test/f1-score': 0.7954545454545455, 'test/epoch_acc': 0.8, 'train/epoch_acc': 0.8353808353808354, '_step': 529}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.9, 'optimizer': 'sgd', 'step_size': 2, 'batch_size': 16, 'learning_rate': 0.0003}",visionary-sweep-23 -4,"{'train/epoch_loss': 0.7508098256090057, 'epoch': 1, '_timestamp': 1680691538.7247725, 'test/recall': 0.8846153846153846, 'test/epoch_acc': 0.5777777777777778, 'train/epoch_acc': 0.5577395577395577, 'train/batch_loss': 0.5083656311035156, '_step': 410, '_wandb': {'runtime': 70}, '_runtime': 71.64615154266357, 'test/f1-score': 0.7076923076923076, 'test/precision': 0.5897435897435898, 'test/epoch_loss': 1.5602711306677923}","{'eps': 1e-08, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.99, 'optimizer': 'adam', 'step_size': 7, 'batch_size': 4, 'learning_rate': 0.01}",ancient-sweep-22 -5,"{'_step': 529, 'epoch': 9, '_wandb': {'runtime': 328}, '_timestamp': 1680691453.5148375, 'test/precision': 0.6885245901639344, 'train/epoch_loss': 0.49390909720111537, '_runtime': 331.44886469841003, 'test/recall': 0.9545454545454546, 'test/f1-score': 0.8, 'test/epoch_acc': 0.7666666666666667, 'test/epoch_loss': 0.4844042791260613, 'train/epoch_acc': 0.769041769041769, 'train/batch_loss': 0.4559023082256317}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.99, 'optimizer': 'adam', 'step_size': 5, 'batch_size': 16, 'learning_rate': 0.003}",fresh-sweep-22 -6,"{'test/epoch_acc': 0.9222222222222224, 'test/epoch_loss': 0.26263883135527266, 'train/epoch_acc': 0.9975429975429976, 'epoch': 9, '_wandb': {'runtime': 355}, '_timestamp': 1680691110.042932, 'test/recall': 0.8867924528301887, 'test/f1-score': 0.9306930693069309, '_step': 2059, '_runtime': 358.66950702667236, 'test/precision': 0.9791666666666666, 'train/batch_loss': 0.0031523401848971844, 'train/epoch_loss': 0.018423480946079804}","{'eps': 0.1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.5, 'optimizer': 'adam', 'step_size': 5, 'batch_size': 4, 'learning_rate': 0.01}",pleasant-sweep-21 -7,"{'train/epoch_loss': 0.0014873178028192654, 'epoch': 9, '_runtime': 332.6156196594238, 'test/recall': 0.9148936170212766, 'test/f1-score': 0.8865979381443299, 'test/epoch_acc': 0.8777777777777778, 'test/epoch_loss': 0.3669874522421095, 'train/batch_loss': 0.003317732596769929, '_step': 279, '_wandb': {'runtime': 329}, '_timestamp': 1680690741.3215847, 'test/precision': 0.86, 'train/epoch_acc': 1}","{'eps': 0.1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.5, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 32, 'learning_rate': 0.01}",fragrant-sweep-20 -8,"{'epoch': 9, 'test/recall': 0.82, 'test/precision': 0.7592592592592593, 'test/epoch_loss': 0.5786970999505785, 'train/epoch_acc': 0.8206388206388207, 'train/batch_loss': 0.58731609582901, '_step': 149, '_runtime': 342.05230498313904, '_timestamp': 1680690397.165603, 'test/f1-score': 0.7884615384615384, 'test/epoch_acc': 0.7555555555555555, 'train/epoch_loss': 0.5623220165765842, '_wandb': {'runtime': 338}}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 2, 'batch_size': 64, 'learning_rate': 0.001}",treasured-sweep-19 -9,"{'_timestamp': 1680690042.488695, 'test/f1-score': 0.7865168539325843, 'test/precision': 0.8536585365853658, 'train/batch_loss': 0.5736206769943237, 'epoch': 9, '_wandb': {'runtime': 357}, '_runtime': 360.5366156101227, 'test/epoch_loss': 0.6037532766660054, 'train/epoch_acc': 0.7788697788697788, 'train/epoch_loss': 0.5984062318134074, '_step': 2059, 'test/recall': 0.7291666666666666, 'test/epoch_acc': 0.788888888888889}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.999, 'optimizer': 'sgd', 'step_size': 2, 'batch_size': 4, 'learning_rate': 0.0001}",desert-sweep-18 -10,"{'_timestamp': 1680689670.8310964, 'test/f1-score': 0.8333333333333334, 'test/epoch_loss': 0.3740654948684904, 'train/epoch_acc': 0.8697788697788698, '_step': 2059, 'epoch': 9, 'test/recall': 0.7446808510638298, 'test/epoch_acc': 0.8444444444444444, 'test/precision': 0.945945945945946, 'train/batch_loss': 0.5778521299362183, 'train/epoch_loss': 0.3086323318522451, '_wandb': {'runtime': 362}, '_runtime': 365.3367943763733}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.9, 'optimizer': 'adam', 'step_size': 5, 'batch_size': 4, 'learning_rate': 0.003}",celestial-sweep-17 -11,"{'test/recall': 0.9285714285714286, 'test/f1-score': 0.9176470588235294, 'test/precision': 0.9069767441860463, 'train/epoch_acc': 1, 'epoch': 9, '_wandb': {'runtime': 337}, '_runtime': 340.39124369621277, '_timestamp': 1680689237.7951498, 'train/epoch_loss': 0.0053219743558098115, '_step': 149, 'test/epoch_acc': 0.9222222222222224, 'test/epoch_loss': 0.18080708616309696, 'train/batch_loss': 0.004256190732121468}","{'eps': 0.1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.9, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 64, 'learning_rate': 0.01}",cosmic-sweep-15 -12,"{'_timestamp': 1680688886.363035, 'test/recall': 0.8222222222222222, 'test/epoch_acc': 0.8777777777777778, 'test/precision': 0.925, 'train/epoch_loss': 0.09628425111664636, 'test/epoch_loss': 0.23811448697621623, 'train/epoch_acc': 0.968058968058968, 'train/batch_loss': 0.21692615747451785, '_step': 2059, 'epoch': 9, '_wandb': {'runtime': 356}, '_runtime': 359.0396990776062, 'test/f1-score': 0.8705882352941177}","{'eps': 0.1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.5, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 4, 'learning_rate': 0.001}",stilted-sweep-14 -13,"{'_step': 149, 'test/f1-score': 0.9278350515463918, 'test/epoch_loss': 0.16714997291564945, 'train/epoch_acc': 1, 'test/epoch_acc': 0.9222222222222224, 'test/precision': 0.9574468085106383, 'train/batch_loss': 0.007201554253697395, 'epoch': 9, '_wandb': {'runtime': 333}, '_runtime': 336.5640392303467, '_timestamp': 1680688517.0028613, 'test/recall': 0.9, 'train/epoch_loss': 0.007631345846546077}","{'eps': 0.1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.999, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 64, 'learning_rate': 0.01}",frosty-sweep-13 -14,"{'test/epoch_acc': 0.8777777777777778, 'test/epoch_loss': 0.32556109494633145, 'train/epoch_loss': 0.17368088453934877, '_runtime': 331.98337984085083, '_timestamp': 1680688162.2054858, 'test/recall': 0.8181818181818182, 'test/f1-score': 0.8674698795180724, 'test/precision': 0.9230769230769232, 'train/epoch_acc': 0.9496314496314496, 'train/batch_loss': 0.27152174711227417, '_step': 529, 'epoch': 9, '_wandb': {'runtime': 328}}","{'eps': 0.1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.5, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 16, 'learning_rate': 0.001}",young-sweep-12 -15,"{'_wandb': {'runtime': 332}, 'test/f1-score': 0.7311827956989247, 'train/epoch_loss': 0.5277571982775039, '_step': 1039, 'epoch': 9, 'test/recall': 0.8292682926829268, 'test/epoch_acc': 0.7222222222222222, 'test/precision': 0.6538461538461539, 'test/epoch_loss': 0.5193446947468652, 'train/epoch_acc': 0.7469287469287469, 'train/batch_loss': 0.3307788372039795, '_runtime': 335.6552822589874, '_timestamp': 1680687816.5057352}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.5, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 8, 'learning_rate': 0.1}",sandy-sweep-11 -16,"{'test/epoch_acc': 0.8555555555555556, 'test/precision': 0.8085106382978723, 'test/epoch_loss': 0.4616309046745301, '_wandb': {'runtime': 334}, '_runtime': 336.80703043937683, '_timestamp': 1680687470.9289024, 'test/recall': 0.9047619047619048, 'train/batch_loss': 0.0030224076472222805, 'train/epoch_loss': 0.003708146820279612, '_step': 149, 'epoch': 9, 'test/f1-score': 0.853932584269663, 'train/epoch_acc': 1}","{'eps': 0.1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 64, 'learning_rate': 0.1}",laced-sweep-10 -17,"{'_runtime': 265.48077392578125, 'test/recall': 0.08888888888888889, 'test/epoch_acc': 0.45555555555555555, 'train/epoch_loss': 9.16968992828444, '_wandb': {'runtime': 265}, 'epoch': 7, '_timestamp': 1680687113.1220188, 'test/f1-score': 0.14035087719298245, 'test/precision': 0.3333333333333333, 'test/epoch_loss': 11610.708938450283, 'train/epoch_acc': 0.5331695331695332, 'train/batch_loss': 9.74098777770996, '_step': 422}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.9, 'optimizer': 'adam', 'step_size': 2, 'batch_size': 16, 'learning_rate': 0.1}",jumping-sweep-9 -18,"{'test/precision': 0.8913043478260869, 'train/epoch_acc': 0.8955773955773956, 'train/epoch_loss': 0.3055295220024756, '_wandb': {'runtime': 327}, '_timestamp': 1680686834.80723, 'test/f1-score': 0.845360824742268, 'test/epoch_acc': 0.8333333333333334, 'test/epoch_loss': 0.3831123087141249, 'train/batch_loss': 0.34334877133369446, '_step': 529, 'epoch': 9, '_runtime': 330.36346793174744, 'test/recall': 0.803921568627451}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.5, 'optimizer': 'sgd', 'step_size': 7, 'batch_size': 16, 'learning_rate': 0.0003}",dutiful-sweep-8 -19,"{'epoch': 2, '_runtime': 99.40804982185364, '_timestamp': 1680686491.634724, 'test/epoch_acc': 0.45555555555555555, 'test/precision': 0.45555555555555555, 'test/epoch_loss': 6.554853016439314e+29, 'train/batch_loss': 'NaN', '_step': 157, '_wandb': {'runtime': 99}, 'test/recall': 1, 'test/f1-score': 0.6259541984732825, 'train/epoch_acc': 0.484029484029484, 'train/epoch_loss': 'NaN'}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.5, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 16, 'learning_rate': 0.1}",olive-sweep-7 -20,"{'_wandb': {'runtime': 334}, '_runtime': 337.17863941192627, 'test/recall': 0.8888888888888888, 'test/f1-score': 0.8695652173913044, 'test/epoch_acc': 0.8666666666666667, 'test/precision': 0.851063829787234, 'test/epoch_loss': 0.35141510632303025, 'train/epoch_acc': 0.9103194103194104, 'train/batch_loss': 0.3707323968410492, '_step': 279, 'epoch': 9, '_timestamp': 1680686383.3591404, 'train/epoch_loss': 0.3219767680771521}","{'eps': 0.1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.9, 'optimizer': 'adam', 'step_size': 2, 'batch_size': 32, 'learning_rate': 0.001}",good-sweep-6 -21,"{'test/recall': 0.6938775510204082, 'test/f1-score': 0.6601941747572815, 'test/epoch_acc': 0.6111111111111112, 'train/epoch_acc': 0.5196560196560196, '_wandb': {'runtime': 342}, '_runtime': 344.80718994140625, '_timestamp': 1680686028.304971, 'test/precision': 0.6296296296296297, 'test/epoch_loss': 0.6818753732575311, 'train/batch_loss': 0.7027227878570557, 'train/epoch_loss': 0.6907664721955246, '_step': 149, 'epoch': 9}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.9, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 64, 'learning_rate': 0.0003}",summer-sweep-5 -22,"{'epoch': 9, '_timestamp': 1680685671.7387648, 'test/epoch_acc': 0.9222222222222224, 'test/epoch_loss': 0.22382020586066775, 'train/epoch_acc': 0.9864864864864864, '_step': 529, '_runtime': 333.9663326740265, 'test/recall': 0.8717948717948718, 'test/f1-score': 0.9066666666666668, 'test/precision': 0.9444444444444444, 'train/batch_loss': 0.15035715699195862, 'train/epoch_loss': 0.10497688309859292, '_wandb': {'runtime': 331}}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.9, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 16, 'learning_rate': 0.001}",firm-sweep-4 -23,"{'_step': 149, '_runtime': 335.79468297958374, 'test/recall': 0.925, 'test/f1-score': 0.6379310344827587, 'test/precision': 0.4868421052631579, 'test/epoch_loss': 0.6597137530644734, 'train/batch_loss': 0.652446985244751, 'epoch': 9, '_wandb': {'runtime': 333}, '_timestamp': 1680685319.453976, 'test/epoch_acc': 0.5333333333333333, 'train/epoch_acc': 0.5909090909090909, 'train/epoch_loss': 0.6564877619028677}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.999, 'optimizer': 'sgd', 'step_size': 3, 'batch_size': 64, 'learning_rate': 0.0001}",genial-sweep-3 -24,"{'_step': 529, 'test/recall': 0.9736842105263158, 'test/f1-score': 0.7628865979381443, 'test/precision': 0.6271186440677966, 'test/epoch_loss': 0.5467572536733415, 'train/epoch_acc': 0.7899262899262899, 'epoch': 9, '_wandb': {'runtime': 329}, '_runtime': 331.50625491142273, '_timestamp': 1680684975.004809, 'test/epoch_acc': 0.7444444444444445, 'train/batch_loss': 0.5583129525184631, 'train/epoch_loss': 0.4703364581675143}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.9, 'optimizer': 'sgd', 'step_size': 7, 'batch_size': 16, 'learning_rate': 0.1}",fine-sweep-2 -25,"{'_timestamp': 1680684633.811369, 'test/f1-score': 0.896551724137931, 'test/epoch_acc': 0.9, 'test/epoch_loss': 0.30911533037821454, '_step': 529, 'epoch': 9, '_wandb': {'runtime': 447}, '_runtime': 450.5545320510864, 'train/epoch_acc': 0.9987714987714988, 'train/batch_loss': 0.005764181260019541, 'test/recall': 0.8863636363636364, 'test/precision': 0.9069767441860463, 'train/epoch_loss': 0.007131033717467008}","{'eps': 1e-08, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.9, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 16, 'learning_rate': 0.01}",visionary-sweep-1 -26,"{'_step': 239, 'epoch': 1, '_timestamp': 1680629962.8990817, 'train/epoch_acc': 0.8931203931203932, 'train/batch_loss': 0.08615076541900635, '_wandb': {'runtime': 83}, '_runtime': 83.58446168899536, 'test/recall': 0.9047619047619048, 'test/f1-score': 0.8735632183908046, 'test/epoch_acc': 0.8777777777777778, 'test/precision': 0.8444444444444444, 'test/epoch_loss': 0.29840316110187104, 'train/epoch_loss': 0.2428556958016658}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.9, 'optimizer': 'adam', 'step_size': 2, 'batch_size': 8, 'learning_rate': 0.1}",stoic-sweep-14 -27,"{'_timestamp': 1680629872.8401277, 'test/recall': 0.975, 'test/f1-score': 0.951219512195122, 'test/epoch_loss': 0.20102048052681817, 'train/epoch_acc': 0.9803439803439804, '_step': 149, '_wandb': {'runtime': 347}, '_runtime': 348.9410927295685, 'train/batch_loss': 0.10338585078716278, 'train/epoch_loss': 0.1163152276517718, 'epoch': 9, 'test/epoch_acc': 0.9555555555555556, 'test/precision': 0.9285714285714286}","{'eps': 0.1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.5, 'optimizer': 'sgd', 'step_size': 2, 'batch_size': 64, 'learning_rate': 0.01}",rich-sweep-13 -28,"{'_timestamp': 1680629513.1781075, 'test/epoch_loss': 3.395405118153546e+20, 'train/batch_loss': 82027960, 'train/epoch_loss': 60563307.6520902, 'epoch': 3, '_wandb': {'runtime': 135}, '_runtime': 132.22715950012207, 'test/recall': 0.9111111111111112, 'test/f1-score': 0.6721311475409836, 'test/epoch_acc': 0.5555555555555556, 'test/precision': 0.5324675324675324, 'train/epoch_acc': 0.5282555282555282, '_step': 210}","{'eps': 1e-08, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.5, 'optimizer': 'adam', 'step_size': 7, 'batch_size': 16, 'learning_rate': 0.003}",smooth-sweep-12 -29,"{'test/recall': 0.8888888888888888, 'test/f1-score': 0.6597938144329897, 'test/precision': 0.5245901639344263, 'test/epoch_loss': 0.6240786300765143, '_step': 279, '_runtime': 327.2181556224823, '_timestamp': 1680629374.0562296, 'test/epoch_acc': 0.6333333333333333, 'train/epoch_acc': 0.7469287469287469, 'train/batch_loss': 0.5836847424507141, 'train/epoch_loss': 0.6072891213970044, 'epoch': 9, '_wandb': {'runtime': 326}}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.5, 'optimizer': 'sgd', 'step_size': 2, 'batch_size': 32, 'learning_rate': 0.0003}",resilient-sweep-11 -30,"{'_wandb': {'runtime': 330}, '_timestamp': 1680629038.456323, 'test/epoch_loss': 0.2657569663392173, 'train/epoch_loss': 0.12745249926751018, '_step': 529, '_runtime': 332.23273372650146, 'test/recall': 0.8269230769230769, 'test/f1-score': 0.8958333333333334, 'test/epoch_acc': 0.888888888888889, 'test/precision': 0.9772727272727272, 'train/epoch_acc': 0.9717444717444718, 'train/batch_loss': 0.13025684654712677, 'epoch': 9}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.999, 'optimizer': 'sgd', 'step_size': 3, 'batch_size': 16, 'learning_rate': 0.001}",serene-sweep-10 -31,"{'test/f1-score': 0.9, 'test/epoch_acc': 0.9111111111111112, 'test/precision': 0.972972972972973, 'test/epoch_loss': 0.23338710864384968, 'train/epoch_acc': 0.9275184275184276, 'train/batch_loss': 0.11391787976026536, 'epoch': 9, '_wandb': {'runtime': 334}, 'train/epoch_loss': 0.2116023584907412, '_timestamp': 1680628699.1189623, 'test/recall': 0.8372093023255814, '_step': 1039, '_runtime': 335.94198656082153}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.5, 'optimizer': 'sgd', 'step_size': 7, 'batch_size': 8, 'learning_rate': 0.0003}",cool-sweep-9 -32,"{'_timestamp': 1680628351.790065, 'test/recall': 0.8863636363636364, 'test/epoch_acc': 0.7777777777777778, 'train/epoch_acc': 0.7702702702702703, 'train/epoch_loss': 0.6034659886828805, 'epoch': 9, '_wandb': {'runtime': 326}, '_runtime': 327.29265093803406, 'test/epoch_loss': 0.5824494547314114, 'train/batch_loss': 0.5777762532234192, '_step': 529, 'test/f1-score': 0.7959183673469388, 'test/precision': 0.7222222222222222}","{'eps': 0.1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.999, 'optimizer': 'sgd', 'step_size': 2, 'batch_size': 16, 'learning_rate': 0.0001}",lilac-sweep-8 -33,"{'epoch': 9, '_runtime': 337.11313247680664, 'test/f1-score': 0.717391304347826, 'test/epoch_acc': 0.7111111111111111, 'test/epoch_loss': 0.6369305915302701, 'train/batch_loss': 0.5935282111167908, '_step': 149, '_timestamp': 1680628016.5942774, 'test/recall': 0.8048780487804879, 'test/precision': 0.6470588235294118, 'train/epoch_acc': 0.7199017199017199, 'train/epoch_loss': 0.618001790392311, '_wandb': {'runtime': 335}}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.999, 'optimizer': 'adam', 'step_size': 7, 'batch_size': 64, 'learning_rate': 0.001}",warm-sweep-7 -34,"{'_step': 2059, 'epoch': 9, '_wandb': {'runtime': 354}, '_runtime': 355.7423675060272, '_timestamp': 1680627667.6215644, 'test/epoch_acc': 0.6333333333333333, 'test/epoch_loss': 0.6619265423880683, 'train/epoch_acc': 0.6498771498771498, 'test/recall': 0.8, 'test/f1-score': 0.6857142857142857, 'test/precision': 0.6, 'train/batch_loss': 0.6662057638168335, 'train/epoch_loss': 0.6663250732773353}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.999, 'optimizer': 'adam', 'step_size': 7, 'batch_size': 4, 'learning_rate': 0.0001}",giddy-sweep-6 -35,"{'test/recall': 0.8163265306122449, 'test/f1-score': 0.7766990291262137, 'test/precision': 0.7407407407407407, 'test/epoch_loss': 0.6307997491624621, 'train/epoch_acc': 0.7125307125307125, 'train/batch_loss': 0.6531811356544495, '_wandb': {'runtime': 343}, '_runtime': 344.59358406066895, '_timestamp': 1680627305.434523, 'test/epoch_acc': 0.7444444444444445, 'train/epoch_loss': 0.6398702088093582, '_step': 149, 'epoch': 9}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.5, 'optimizer': 'sgd', 'step_size': 7, 'batch_size': 64, 'learning_rate': 0.0001}",stellar-sweep-5 -36,"{'test/precision': 0.9705882352941176, 'test/epoch_loss': 0.1906787835785912, 'train/epoch_acc': 0.9975429975429976, '_step': 1039, 'epoch': 9, '_wandb': {'runtime': 334}, 'test/f1-score': 0.9041095890410958, 'train/batch_loss': 0.0006497434806078672, 'train/epoch_loss': 0.02095988139033052, '_runtime': 335.76391553878784, '_timestamp': 1680626951.0603056, 'test/recall': 0.8461538461538461, 'test/epoch_acc': 0.9222222222222224}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.9, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 8, 'learning_rate': 0.003}",olive-sweep-4 -37,"{'epoch': 9, '_runtime': 333.64992809295654, '_timestamp': 1680626608.419389, 'train/epoch_loss': 0.11751884335528429, 'train/epoch_acc': 0.984029484029484, '_step': 149, '_wandb': {'runtime': 332}, 'test/recall': 0.925, 'test/f1-score': 0.8705882352941177, 'test/epoch_acc': 0.8777777777777778, 'test/precision': 0.8222222222222222, 'test/epoch_loss': 0.27919367684258356, 'train/batch_loss': 0.12675245106220245}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.9, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 64, 'learning_rate': 0.003}",dazzling-sweep-3 -38,"{'test/precision': 0.5306122448979592, '_wandb': {'runtime': 336}, '_timestamp': 1680626264.5954974, 'test/recall': 0.6842105263157895, 'test/epoch_acc': 0.6111111111111112, 'test/epoch_loss': 0.6708752089076572, 'train/epoch_acc': 0.6547911547911548, 'train/batch_loss': 0.5270536541938782, 'train/epoch_loss': 0.6389284106085868, '_step': 1039, 'epoch': 9, '_runtime': 337.19885444641113, 'test/f1-score': 0.5977011494252874}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.99, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 8, 'learning_rate': 0.01}",kind-sweep-2 -39,"{'train/epoch_loss': 0.3516608065117782, 'epoch': 9, 'test/epoch_acc': 0.8555555555555556, 'test/precision': 0.8444444444444444, 'train/epoch_acc': 0.8746928746928747, 'train/batch_loss': 0.3848239779472351, 'test/f1-score': 0.853932584269663, 'test/epoch_loss': 0.38614972366227046, '_step': 529, '_wandb': {'runtime': 337}, '_runtime': 337.9836483001709, '_timestamp': 1680625919.9645753, 'test/recall': 0.8636363636363636}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.5, 'optimizer': 'adam', 'step_size': 5, 'batch_size': 16, 'learning_rate': 0.003}",morning-sweep-1 -40,"{'train/epoch_loss': 0.02368298517580857, 'epoch': 9, 'test/recall': 0.8653846153846154, 'test/f1-score': 0.9, 'test/precision': 0.9375, 'test/epoch_acc': 0.888888888888889, 'test/epoch_loss': 0.25786760796585845, 'train/epoch_acc': 0.9975429975429976, 'train/batch_loss': 0.05631007254123688, '_step': 2059, '_wandb': {'runtime': 346}, '_runtime': 347.9354045391083, '_timestamp': 1680624250.2654595}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.999, 'optimizer': 'adam', 'step_size': 2, 'batch_size': 4, 'learning_rate': 0.1}",valiant-sweep-23 -41,"{'train/batch_loss': 0.5639374256134033, '_timestamp': 1680623895.362503, 'test/recall': 0.8936170212765957, 'test/f1-score': 0.8571428571428571, 'test/epoch_acc': 0.8444444444444444, 'test/precision': 0.8235294117647058, 'test/epoch_loss': 0.490613665845659, 'train/epoch_acc': 0.8243243243243243, '_step': 1039, 'epoch': 9, '_wandb': {'runtime': 327}, '_runtime': 329.4802031517029, 'train/epoch_loss': 0.48581602795996887}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.5, 'optimizer': 'sgd', 'step_size': 2, 'batch_size': 8, 'learning_rate': 0.0003}",earnest-sweep-22 -42,"{'_timestamp': 1680623556.4586525, 'test/recall': 0.9148936170212766, 'test/f1-score': 0.9052631578947368, 'test/epoch_acc': 0.9, 'test/precision': 0.8958333333333334, 'test/epoch_loss': 0.2318242397573259, 'train/epoch_acc': 0.995085995085995, 'epoch': 9, '_wandb': {'runtime': 326}, '_runtime': 328.0050995349884, 'train/batch_loss': 0.06110217794775963, 'train/epoch_loss': 0.05107141801451289, '_step': 149}","{'eps': 1e-08, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 7, 'batch_size': 64, 'learning_rate': 0.003}",genial-sweep-21 -43,"{'_runtime': 327.10622239112854, '_timestamp': 1680623221.0825984, 'test/recall': 0.8723404255319149, 'test/epoch_acc': 0.7444444444444445, 'test/epoch_loss': 0.5943129923608568, 'train/epoch_acc': 0.7911547911547911, '_step': 149, '_wandb': {'runtime': 325}, 'train/epoch_loss': 0.5714027147914034, 'test/precision': 0.7068965517241379, 'train/batch_loss': 0.6166229844093323, 'epoch': 9, 'test/f1-score': 0.780952380952381}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 2, 'batch_size': 64, 'learning_rate': 0.001}",lemon-sweep-20 -44,"{'_runtime': 331.60892701148987, 'test/recall': 0.7021276595744681, 'test/epoch_acc': 0.6, 'test/precision': 0.6, 'test/epoch_loss': 0.6746161646313138, 'train/batch_loss': 0.7205827236175537, '_step': 1039, '_wandb': {'runtime': 330}, '_timestamp': 1680622885.059607, 'test/f1-score': 0.6470588235294118, 'train/epoch_acc': 0.6277641277641277, 'train/epoch_loss': 0.6722187732302879, 'epoch': 9}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.9, 'optimizer': 'adam', 'step_size': 2, 'batch_size': 8, 'learning_rate': 0.0001}",ancient-sweep-19 -45,"{'_wandb': {'runtime': 347}, '_runtime': 348.9979507923126, '_timestamp': 1680622545.2735748, 'test/f1-score': 0.898876404494382, 'test/epoch_acc': 0.9, 'test/epoch_loss': 0.24883262103216516, '_step': 2059, 'epoch': 9, 'train/epoch_acc': 0.9877149877149876, 'train/epoch_loss': 0.0466749508011656, 'train/batch_loss': 0.015468262135982512, 'test/recall': 0.8695652173913043, 'test/precision': 0.9302325581395348}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.9, 'optimizer': 'adam', 'step_size': 5, 'batch_size': 4, 'learning_rate': 0.01}",smart-sweep-18 -46,"{'test/precision': 0.945945945945946, 'epoch': 9, '_wandb': {'runtime': 328}, '_runtime': 329.3028633594513, '_timestamp': 1680622188.8210304, 'test/recall': 0.8536585365853658, 'test/f1-score': 0.8974358974358975, '_step': 1039, 'test/epoch_acc': 0.9111111111111112, 'test/epoch_loss': 0.2015038196825319, 'train/epoch_acc': 0.9815724815724816, 'train/batch_loss': 0.007225348148494959, 'train/epoch_loss': 0.07856258183731457}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.9, 'optimizer': 'sgd', 'step_size': 2, 'batch_size': 8, 'learning_rate': 0.003}",sleek-sweep-17 -47,"{'_step': 279, 'epoch': 9, '_wandb': {'runtime': 321}, '_timestamp': 1680621849.979658, 'train/epoch_acc': 0.828009828009828, 'train/batch_loss': 0.6047794222831726, 'train/epoch_loss': 0.5808350268101516, '_runtime': 323.3842430114746, 'test/recall': 0.8301886792452831, 'test/f1-score': 0.8543689320388349, 'test/epoch_acc': 0.8333333333333334, 'test/precision': 0.88, 'test/epoch_loss': 0.5843977000978258}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.5, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 32, 'learning_rate': 0.0001}",winter-sweep-16 -48,"{'test/recall': 0.85, 'train/batch_loss': 0.001602485659532249, 'epoch': 9, '_wandb': {'runtime': 346}, '_timestamp': 1680621511.323635, 'test/f1-score': 0.85, 'test/epoch_acc': 0.8666666666666667, 'test/precision': 0.85, 'test/epoch_loss': 0.5281610590923164, 'train/epoch_acc': 0.995085995085995, '_step': 2059, '_runtime': 347.8050694465637, 'train/epoch_loss': 0.029015880939893934}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.999, 'optimizer': 'adam', 'step_size': 7, 'batch_size': 4, 'learning_rate': 0.1}",rare-sweep-15 -49,"{'_step': 2059, 'epoch': 9, '_wandb': {'runtime': 346}, '_runtime': 347.7671456336975, 'test/epoch_acc': 0.9222222222222224, 'test/precision': 0.9487179487179488, 'train/epoch_loss': 0.04606454834343147, '_timestamp': 1680621147.5604067, 'test/recall': 0.8809523809523809, 'test/f1-score': 0.9135802469135802, 'test/epoch_loss': 0.22225395898438163, 'train/epoch_acc': 0.9864864864864864, 'train/batch_loss': 0.010366588830947876}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 7, 'batch_size': 4, 'learning_rate': 0.001}",stoic-sweep-14 -50,"{'train/epoch_acc': 0.6523341523341524, 'train/batch_loss': 0.6023905277252197, '_wandb': {'runtime': 351}, '_timestamp': 1680620790.920825, 'test/recall': 0.675, 'test/f1-score': 0.6585365853658537, 'test/precision': 0.6428571428571429, 'test/epoch_loss': 0.661226307021247, 'train/epoch_loss': 0.6673213337211703, '_step': 2059, 'epoch': 9, '_runtime': 352.6435329914093, 'test/epoch_acc': 0.6888888888888889}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.999, 'optimizer': 'adam', 'step_size': 5, 'batch_size': 4, 'learning_rate': 0.0001}",glorious-sweep-13 -51,"{'epoch': 9, '_wandb': {'runtime': 329}, 'test/recall': 0.9574468085106383, 'test/f1-score': 0.9782608695652174, 'test/precision': 1, 'train/batch_loss': 0.004083937965333462, 'train/epoch_loss': 0.0071195896911716286, '_step': 149, '_runtime': 330.7649688720703, '_timestamp': 1680620431.024078, 'test/epoch_acc': 0.977777777777778, 'test/epoch_loss': 0.1352142873737547, 'train/epoch_acc': 1}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.999, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 64, 'learning_rate': 0.01}",chocolate-sweep-12 -52,"{'train/epoch_loss': 0.5577488642652731, '_step': 149, '_wandb': {'runtime': 328}, 'test/recall': 0.926829268292683, 'test/f1-score': 0.8636363636363636, 'test/precision': 0.8085106382978723, 'train/epoch_acc': 0.800982800982801, 'train/batch_loss': 0.5299303531646729, 'epoch': 9, '_runtime': 329.12984681129456, '_timestamp': 1680620092.0697718, 'test/epoch_acc': 0.8666666666666667, 'test/epoch_loss': 0.5375637359089321}","{'eps': 0.1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.99, 'optimizer': 'adam', 'step_size': 5, 'batch_size': 64, 'learning_rate': 0.0003}",glowing-sweep-11 -53,"{'train/epoch_acc': 0.8611793611793611, '_step': 279, 'epoch': 9, '_wandb': {'runtime': 322}, '_timestamp': 1680619755.0191748, 'test/f1-score': 0.7659574468085105, 'train/batch_loss': 0.5281365513801575, 'train/epoch_loss': 0.46212616409072127, '_runtime': 324.3058567047119, 'test/recall': 0.7659574468085106, 'test/epoch_acc': 0.7555555555555555, 'test/precision': 0.7659574468085106, 'test/epoch_loss': 0.5337554746203952}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.5, 'optimizer': 'adam', 'step_size': 5, 'batch_size': 32, 'learning_rate': 0.003}",different-sweep-10 -54,"{'test/epoch_loss': 0.5470490535100301, 'train/batch_loss': 0.6183260083198547, '_step': 279, 'epoch': 9, '_runtime': 327.0705659389496, '_timestamp': 1680619423.656795, 'test/recall': 0.9523809523809524, 'test/precision': 0.7843137254901961, '_wandb': {'runtime': 325}, 'test/f1-score': 0.8602150537634408, 'test/epoch_acc': 0.8555555555555556, 'train/epoch_acc': 0.8058968058968059, 'train/epoch_loss': 0.5580001385557564}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.999, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 32, 'learning_rate': 0.003}",lilac-sweep-9 -55,"{'test/f1-score': 0.7956989247311828, 'test/precision': 0.8409090909090909, 'train/batch_loss': 0.6300776600837708, '_step': 529, 'epoch': 9, '_runtime': 328.68579959869385, '_timestamp': 1680619089.5332966, 'test/recall': 0.7551020408163265, 'train/epoch_loss': 0.46969629490990605, '_wandb': {'runtime': 327}, 'test/epoch_acc': 0.788888888888889, 'test/epoch_loss': 0.46168507006433274, 'train/epoch_acc': 0.773955773955774}","{'eps': 0.1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 3, 'batch_size': 16, 'learning_rate': 0.1}",crimson-sweep-8 -56,"{'test/recall': 0.8181818181818182, 'test/epoch_loss': 0.44089303129391433, 'train/epoch_acc': 0.9938574938574938, 'train/epoch_loss': 0.02176519967463292, 'test/epoch_acc': 0.8555555555555556, 'test/precision': 0.9375, '_step': 2059, 'epoch': 9, '_wandb': {'runtime': 349}, '_runtime': 350.2308712005615, '_timestamp': 1680618753.2361271, 'test/f1-score': 0.8737864077669902, 'train/batch_loss': 0.011611333116889}","{'eps': 0.1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 7, 'batch_size': 4, 'learning_rate': 0.003}",still-sweep-7 -57,"{'test/epoch_acc': 0.8777777777777778, 'test/precision': 0.85, 'test/epoch_loss': 0.24035142682841976, 'train/epoch_acc': 0.9938574938574938, 'epoch': 9, '_wandb': {'runtime': 333}, 'test/recall': 0.8717948717948718, 'test/f1-score': 0.8607594936708861, 'train/epoch_loss': 0.02099113287724536, '_step': 1039, '_runtime': 334.69481587409973, '_timestamp': 1680618396.0194488, 'train/batch_loss': 0.030084805563092232}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.999, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 8, 'learning_rate': 0.01}",charmed-sweep-6 -58,"{'epoch': 9, '_wandb': {'runtime': 335}, '_timestamp': 1680618051.044084, 'train/epoch_acc': 0.9963144963144964, 'train/epoch_loss': 0.010693324584853135, '_step': 1039, 'test/recall': 0.8780487804878049, 'test/f1-score': 0.8674698795180722, 'test/epoch_acc': 0.8777777777777778, 'test/precision': 0.8571428571428571, 'test/epoch_loss': 0.5385394818252988, 'train/batch_loss': 0.001848929445259273, '_runtime': 336.1621870994568}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.9, 'optimizer': 'adam', 'step_size': 7, 'batch_size': 8, 'learning_rate': 0.0003}",restful-sweep-5 -59,"{'train/epoch_acc': 1, 'train/batch_loss': 0.004928763955831528, 'train/epoch_loss': 0.004462716538065481, '_step': 149, '_runtime': 334.4848310947418, 'test/f1-score': 0.8409090909090909, 'test/epoch_acc': 0.8444444444444444, 'test/precision': 0.8409090909090909, 'epoch': 9, '_wandb': {'runtime': 333}, '_timestamp': 1680617708.075962, 'test/recall': 0.8409090909090909, 'test/epoch_loss': 0.6238909363746643}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.5, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 64, 'learning_rate': 0.1}",proud-sweep-4 -60,"{'epoch': 9, '_runtime': 338.4922821521759, '_timestamp': 1680617365.2791553, 'test/recall': 0.75, 'test/f1-score': 0.4778761061946903, 'test/precision': 0.35064935064935066, 'test/epoch_loss': 0.7233364171451993, 'train/epoch_acc': 0.5626535626535626, 'train/batch_loss': 0.6750851273536682, 'train/epoch_loss': 0.6796711432845938, '_step': 149, '_wandb': {'runtime': 337}, 'test/epoch_acc': 0.34444444444444444}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.5, 'optimizer': 'sgd', 'step_size': 2, 'batch_size': 64, 'learning_rate': 0.0001}",visionary-sweep-3 -61,"{'test/recall': 1, 'test/f1-score': 0.59375, 'test/epoch_loss': 109.22879723442924, 'train/epoch_acc': 0.5147420147420148, '_step': 110, 'epoch': 3, '_runtime': 129.48883533477783, '_timestamp': 1680617007.4126654, 'train/batch_loss': 1.2695436477661133, 'train/epoch_loss': 3.225923076601521, '_wandb': {'runtime': 132}, 'test/epoch_acc': 0.4222222222222222, 'test/precision': 0.4222222222222222}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.99, 'optimizer': 'adam', 'step_size': 2, 'batch_size': 32, 'learning_rate': 0.1}",splendid-sweep-2 -62,"{'train/epoch_loss': 0.5949591096554693, '_step': 1039, 'epoch': 9, 'test/recall': 0.8636363636363636, 'test/f1-score': 0.8172043010752688, 'test/precision': 0.7755102040816326, 'test/epoch_loss': 0.6018742865986294, '_wandb': {'runtime': 372}, '_runtime': 373.84231185913086, '_timestamp': 1680616870.0621138, 'test/epoch_acc': 0.8111111111111111, 'train/epoch_acc': 0.7727272727272727, 'train/batch_loss': 0.563504695892334}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 3, 'batch_size': 8, 'learning_rate': 0.0001}",snowy-sweep-1 -63,"{'_timestamp': 1678798635.5359335, 'test/recall': 0.5813953488372093, 'test/epoch_acc': 0.6333333333333333, 'test/precision': 0.625, 'train/epoch_loss': 0.684732110699506, '_step': 529, '_runtime': 333.6077947616577, 'test/f1-score': 0.6024096385542168, 'test/epoch_loss': 0.6787986318270366, 'train/epoch_acc': 0.5552825552825553, 'train/batch_loss': 0.7118003964424133, 'epoch': 9, '_wandb': {'runtime': 327}}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.5, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 16, 'learning_rate': 0.0001}",comic-sweep-38 -64,"{'test/epoch_loss': 0.5120628664890925, 'train/epoch_acc': 1, '_wandb': {'runtime': 337}, '_runtime': 342.7867271900177, '_timestamp': 1678798288.876002, 'test/recall': 1, 'test/f1-score': 0.888888888888889, 'test/precision': 0.8, 'train/epoch_loss': 0.001254009526264133, '_step': 149, 'epoch': 9, 'test/epoch_acc': 0.888888888888889, 'train/batch_loss': 0.0015535189304500818}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.999, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 64, 'learning_rate': 0.1}",magic-sweep-37 -65,"{'test/f1-score': 0.6190476190476191, 'test/epoch_loss': 0.6593369828330146, 'train/batch_loss': 0.6705241203308105, 'train/epoch_loss': 0.659313001562395, 'epoch': 9, '_runtime': 338.4290623664856, '_timestamp': 1678797929.8979273, 'test/recall': 0.6341463414634146, 'test/epoch_acc': 0.6444444444444445, 'test/precision': 0.6046511627906976, 'train/epoch_acc': 0.6572481572481572, '_step': 279, '_wandb': {'runtime': 332}}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.9, 'optimizer': 'adam', 'step_size': 7, 'batch_size': 32, 'learning_rate': 0.0003}",azure-sweep-36 -66,"{'test/epoch_acc': 0.9, 'test/epoch_loss': 0.5167779392666287, '_step': 1039, '_wandb': {'runtime': 343}, '_timestamp': 1678797575.4461255, 'test/recall': 0.8703703703703703, 'test/f1-score': 0.912621359223301, 'test/precision': 0.9591836734693876, 'train/epoch_acc': 0.7911547911547911, 'train/batch_loss': 0.5475739240646362, 'epoch': 9, '_runtime': 349.1018385887146, 'train/epoch_loss': 0.542006236622316}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.99, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 8, 'learning_rate': 0.001}",easy-sweep-35 -67,"{'test/epoch_loss': 0.27850865055532065, 'train/batch_loss': 4.9947026127483696e-05, 'train/epoch_loss': 0.012833298822080874, '_timestamp': 1678797212.2311337, 'test/recall': 0.8611111111111112, '_wandb': {'runtime': 362}, '_runtime': 367.9372293949127, 'test/f1-score': 0.8611111111111112, 'test/epoch_acc': 0.888888888888889, 'test/precision': 0.8611111111111112, 'train/epoch_acc': 0.9987714987714988, '_step': 2059, 'epoch': 9}","{'eps': 0.1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.9, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 4, 'learning_rate': 0.003}",usual-sweep-34 -68,"{'_step': 529, '_runtime': 335.99687933921814, 'test/f1-score': 0.903846153846154, 'test/epoch_acc': 0.888888888888889, 'test/precision': 0.8392857142857143, 'test/epoch_loss': 0.6554473309053315, 'epoch': 9, '_wandb': {'runtime': 330}, '_timestamp': 1678796827.8409674, 'test/recall': 0.9791666666666666, 'train/epoch_acc': 0.9742014742014742, 'train/batch_loss': 0.17918632924556732, 'train/epoch_loss': 0.07036763163974523}","{'eps': 1e-08, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.5, 'optimizer': 'adam', 'step_size': 5, 'batch_size': 16, 'learning_rate': 0.0003}",polar-sweep-33 -69,"{'epoch': 9, '_runtime': 336.63737440109253, 'test/f1-score': 0.7356321839080459, 'test/epoch_acc': 0.7444444444444445, 'test/precision': 0.64, 'test/epoch_loss': 0.5271965821584066, 'train/epoch_acc': 0.8660933660933661, 'train/epoch_loss': 0.47513497564072105, '_step': 149, '_wandb': {'runtime': 330}, '_timestamp': 1678796468.9253614, 'test/recall': 0.8648648648648649, 'train/batch_loss': 0.4695126414299011}","{'eps': 0.1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.5, 'optimizer': 'sgd', 'step_size': 2, 'batch_size': 64, 'learning_rate': 0.001}",still-sweep-32 -70,"{'train/batch_loss': 0.711412787437439, 'train/epoch_loss': 0.09577267487700432, '_step': 2059, 'epoch': 9, '_wandb': {'runtime': 372}, '_timestamp': 1678796117.3062005, 'test/f1-score': 0.868421052631579, 'test/epoch_acc': 0.888888888888889, '_runtime': 378.4032835960388, 'test/recall': 0.8048780487804879, 'test/precision': 0.9428571428571428, 'test/epoch_loss': 0.2378266812198692, 'train/epoch_acc': 0.9705159705159704}","{'eps': 0.1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.5, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 4, 'learning_rate': 0.001}",misty-sweep-31 -71,"{'_step': 529, 'epoch': 9, '_wandb': {'runtime': 333}, '_runtime': 336.8808288574219, '_timestamp': 1678795725.918603, 'test/recall': 0.8260869565217391, 'test/f1-score': 0.8636363636363636, 'test/epoch_acc': 0.8666666666666667, 'train/epoch_acc': 0.9926289926289926, 'test/precision': 0.9047619047619048, 'test/epoch_loss': 0.27924135790930854, 'train/batch_loss': 0.04936826974153519, 'train/epoch_loss': 0.05967479737370254}","{'eps': 1e-08, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.9, 'optimizer': 'sgd', 'step_size': 7, 'batch_size': 16, 'learning_rate': 0.001}",flowing-sweep-30 -72,"{'_step': 279, 'epoch': 9, '_wandb': {'runtime': 336}, '_runtime': 339.73244285583496, 'test/f1-score': 0.898876404494382, 'test/epoch_acc': 0.9, 'test/precision': 0.9523809523809524, 'test/epoch_loss': 0.37525106337335373, 'train/epoch_loss': 0.3784469199122024, '_timestamp': 1678795319.518895, 'test/recall': 0.851063829787234, 'train/epoch_acc': 0.8722358722358722, 'train/batch_loss': 0.4592914581298828}","{'eps': 0.1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.9, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 32, 'learning_rate': 0.001}",deep-sweep-28 -73,"{'_timestamp': 1678794965.2675128, 'test/f1-score': 0.6849315068493151, 'test/epoch_acc': 0.7444444444444445, 'test/precision': 0.7575757575757576, 'test/epoch_loss': 0.5484810524516636, 'epoch': 9, '_wandb': {'runtime': 377}, '_runtime': 381.0768678188324, 'train/epoch_acc': 0.7899262899262899, 'train/batch_loss': 0.6763702630996704, 'train/epoch_loss': 0.5319552311733255, '_step': 2059, 'test/recall': 0.625}","{'eps': 0.1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.5, 'optimizer': 'adam', 'step_size': 5, 'batch_size': 4, 'learning_rate': 0.0001}",glorious-sweep-27 -74,"{'_step': 529, 'epoch': 9, '_wandb': {'runtime': 334}, '_runtime': 338.11463618278503, '_timestamp': 1678794572.9156363, 'test/recall': 0.813953488372093, 'test/epoch_acc': 0.7555555555555555, 'test/epoch_loss': 0.5729872869120703, 'train/epoch_acc': 0.8968058968058967, 'train/batch_loss': 0.4391788542270661, 'test/f1-score': 0.7608695652173914, 'test/precision': 0.7142857142857143, 'train/epoch_loss': 0.2699748155379471}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.9, 'optimizer': 'sgd', 'step_size': 2, 'batch_size': 16, 'learning_rate': 0.1}",stoic-sweep-26 -75,"{'test/epoch_loss': 0.3083995895563728, '_step': 2059, '_wandb': {'runtime': 377}, '_timestamp': 1678794222.848524, 'test/recall': 0.8863636363636364, 'test/f1-score': 0.8666666666666666, 'test/precision': 0.8478260869565217, 'epoch': 9, '_runtime': 380.8983037471771, 'test/epoch_acc': 0.8666666666666667, 'train/epoch_acc': 0.9877149877149876, 'train/batch_loss': 0.025906365364789963, 'train/epoch_loss': 0.04955068614813831}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.999, 'optimizer': 'adam', 'step_size': 7, 'batch_size': 4, 'learning_rate': 0.01}",vibrant-sweep-25 -76,"{'test/f1-score': 0.8867924528301887, 'test/precision': 0.8545454545454545, 'test/epoch_loss': 0.7976957665549385, '_step': 149, 'epoch': 9, '_wandb': {'runtime': 340}, '_timestamp': 1678793829.5489533, 'test/recall': 0.9215686274509804, 'train/epoch_acc': 1, '_runtime': 343.4739582538605, 'test/epoch_acc': 0.8666666666666667, 'train/batch_loss': 0.0010389955714344978, 'train/epoch_loss': 0.002287556243378495}","{'eps': 0.1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.999, 'optimizer': 'adam', 'step_size': 5, 'batch_size': 64, 'learning_rate': 0.1}",valiant-sweep-24 -77,"{'test/f1-score': 0.8571428571428571, 'test/precision': 0.8666666666666667, 'test/epoch_loss': 0.4112878143787384, 'train/batch_loss': 0.3762533664703369, 'train/epoch_loss': 0.3862068348493272, 'epoch': 9, '_runtime': 344.0598545074463, 'test/recall': 0.8478260869565217, 'test/epoch_acc': 0.8555555555555556, 'train/epoch_acc': 0.8857493857493858, '_step': 149, '_wandb': {'runtime': 340}, '_timestamp': 1678793464.5180786}","{'eps': 0.1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.999, 'optimizer': 'adam', 'step_size': 5, 'batch_size': 64, 'learning_rate': 0.001}",polished-sweep-23 -78,"{'_timestamp': 1678793108.7606344, 'test/recall': 0.8837209302325582, 'test/epoch_loss': 0.6097042110231188, 'train/epoch_acc': 0.6756756756756757, 'train/batch_loss': 0.7007869482040405, 'epoch': 9, '_wandb': {'runtime': 336}, '_runtime': 339.41979336738586, 'test/f1-score': 0.7102803738317758, 'test/epoch_acc': 0.6555555555555556, 'test/precision': 0.59375, 'train/epoch_loss': 0.6115244123215171, '_step': 529}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.999, 'optimizer': 'adam', 'step_size': 2, 'batch_size': 16, 'learning_rate': 0.01}",clear-sweep-22 -79,"{'test/precision': 0.9393939393939394, 'train/epoch_loss': 0.07462231436439994, 'epoch': 9, '_runtime': 381.0477261543274, 'test/epoch_acc': 0.9, 'test/recall': 0.8157894736842105, 'test/f1-score': 0.8732394366197183, 'test/epoch_loss': 0.23743902287549443, 'train/epoch_acc': 0.9815724815724816, 'train/batch_loss': 0.5061427354812622, '_step': 2059, '_wandb': {'runtime': 377}, '_timestamp': 1678792758.596286}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.99, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 4, 'learning_rate': 0.01}",sage-sweep-21 -80,"{'_wandb': {'runtime': 331}, '_timestamp': 1678792364.5292609, 'test/f1-score': 0.8505747126436782, 'test/precision': 0.902439024390244, 'train/epoch_acc': 0.9791154791154792, 'train/batch_loss': 0.24579545855522156, 'train/epoch_loss': 0.12095561367287976, '_step': 529, 'epoch': 9, '_runtime': 335.3731348514557, 'test/recall': 0.8043478260869565, 'test/epoch_acc': 0.8555555555555556, 'test/epoch_loss': 0.28035063776705}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.999, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 16, 'learning_rate': 0.001}",olive-sweep-20 -81,"{'_wandb': {'runtime': 337}, 'test/recall': 0.9111111111111112, 'test/f1-score': 0.931818181818182, 'test/epoch_acc': 0.9333333333333332, 'test/precision': 0.9534883720930232, 'test/epoch_loss': 0.17397157057291932, 'epoch': 9, '_runtime': 340.5063774585724, '_timestamp': 1678792015.2579195, 'train/epoch_acc': 0.995085995085995, 'train/batch_loss': 0.0077079650945961475, 'train/epoch_loss': 0.018187719287696302, '_step': 1039}","{'eps': 0.1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 8, 'learning_rate': 0.003}",autumn-sweep-19 -82,"{'epoch': 9, '_wandb': {'runtime': 344}, 'test/recall': 0.8205128205128205, 'train/epoch_loss': 0.4784781006542412, 'test/epoch_loss': 0.4940012666914198, 'train/epoch_acc': 0.8218673218673218, '_step': 1039, '_runtime': 347.40152740478516, '_timestamp': 1678791661.9692383, 'test/f1-score': 0.7804878048780488, 'test/epoch_acc': 0.8, 'test/precision': 0.7441860465116279, 'train/batch_loss': 0.4317986071109772}","{'eps': 0.1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.999, 'optimizer': 'adam', 'step_size': 7, 'batch_size': 8, 'learning_rate': 0.0001}",crisp-sweep-18 -83,"{'_runtime': 337.956387758255, 'test/recall': 0.9090909090909092, 'test/f1-score': 0.9090909090909092, 'test/precision': 0.9090909090909092, 'test/epoch_loss': 0.19624250796106127, '_step': 279, '_wandb': {'runtime': 335}, '_timestamp': 1678791236.6172178, 'test/epoch_acc': 0.9111111111111112, 'train/epoch_acc': 0.9828009828009828, 'train/batch_loss': 0.15555259585380554, 'train/epoch_loss': 0.08830470366618558, 'epoch': 9}","{'eps': 0.1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.999, 'optimizer': 'adam', 'step_size': 2, 'batch_size': 32, 'learning_rate': 0.003}",deep-sweep-16 -84,"{'_step': 279, '_timestamp': 1678790886.952144, 'test/f1-score': 0.7818181818181819, 'test/precision': 0.7049180327868853, 'test/epoch_loss': 0.6228035251299541, 'train/epoch_acc': 0.7493857493857494, 'train/batch_loss': 0.6377201080322266, 'epoch': 9, '_wandb': {'runtime': 331}, '_runtime': 334.2993712425232, 'test/recall': 0.8775510204081632, 'test/epoch_acc': 0.7333333333333334, 'train/epoch_loss': 0.6127705679478751}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 2, 'batch_size': 32, 'learning_rate': 0.0003}",confused-sweep-15 -85,"{'train/epoch_loss': 0.3545121966840594, '_step': 529, 'epoch': 9, '_runtime': 345.0617377758026, '_timestamp': 1678790542.286384, 'test/f1-score': 0.7809523809523811, 'train/epoch_acc': 0.8415233415233415, 'train/batch_loss': 0.1340156048536301, '_wandb': {'runtime': 342}, 'test/recall': 0.8541666666666666, 'test/epoch_acc': 0.7444444444444445, 'test/precision': 0.7192982456140351, 'test/epoch_loss': 0.6144241677390204}","{'eps': 1e-08, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 7, 'batch_size': 16, 'learning_rate': 0.1}",ancient-sweep-14 -86,"{'_step': 529, '_timestamp': 1678790183.7024884, 'test/f1-score': 0.7422680412371134, 'train/batch_loss': 0.6280461549758911, 'test/precision': 0.7058823529411765, 'test/epoch_loss': 0.6392196734746297, 'train/epoch_acc': 0.7457002457002457, 'epoch': 9, '_wandb': {'runtime': 344}, '_runtime': 346.86587953567505, 'test/recall': 0.782608695652174, 'test/epoch_acc': 0.7222222222222222, 'train/epoch_loss': 0.6374555861334836}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.5, 'optimizer': 'adam', 'step_size': 7, 'batch_size': 16, 'learning_rate': 0.0003}",revived-sweep-13 -87,"{'_wandb': {'runtime': 348}, '_runtime': 350.9660577774048, 'test/recall': 0.9111111111111112, 'train/epoch_acc': 0.9987714987714988, 'epoch': 9, '_timestamp': 1678789826.0085878, 'test/f1-score': 0.9010989010989012, 'test/epoch_acc': 0.9, 'test/precision': 0.8913043478260869, 'test/epoch_loss': 0.24115624560250176, 'train/batch_loss': 0.04231283441185951, 'train/epoch_loss': 0.02119528235872196, '_step': 149}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.999, 'optimizer': 'adam', 'step_size': 2, 'batch_size': 64, 'learning_rate': 0.0003}",swift-sweep-12 -88,"{'test/recall': 0.8333333333333334, 'test/epoch_loss': 0.5769641452365452, 'train/batch_loss': 0.6127220392227173, 'train/epoch_loss': 0.5840219159676929, 'epoch': 9, '_wandb': {'runtime': 393}, '_timestamp': 1678789464.8040044, 'test/f1-score': 0.7894736842105262, 'test/epoch_acc': 0.8222222222222223, 'test/precision': 0.75, 'train/epoch_acc': 0.757985257985258, '_step': 2059, '_runtime': 397.1281135082245}","{'eps': 0.1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.999, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 4, 'learning_rate': 0.0001}",rosy-sweep-11 -89,"{'epoch': 9, 'test/recall': 0.8076923076923077, 'test/f1-score': 0.8842105263157894, 'test/epoch_loss': 0.2696530275874668, 'train/epoch_acc': 0.9938574938574938, 'train/batch_loss': 0.11590295284986496, '_step': 149, '_wandb': {'runtime': 352}, '_runtime': 355.46944642066956, '_timestamp': 1678789057.5684297, 'test/epoch_acc': 0.8777777777777778, 'test/precision': 0.9767441860465116, 'train/epoch_loss': 0.06967324825777176}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 7, 'batch_size': 64, 'learning_rate': 0.003}",deft-sweep-10 -90,"{'_step': 279, '_wandb': {'runtime': 340}, '_runtime': 342.3234579563141, '_timestamp': 1678788683.006292, 'test/recall': 0.9069767441860463, 'test/f1-score': 0.7959183673469388, 'test/epoch_acc': 0.7777777777777778, 'test/precision': 0.7090909090909091, 'test/epoch_loss': 0.6248881856600443, 'train/epoch_acc': 0.7014742014742015, 'train/batch_loss': 0.5820533037185669, 'train/epoch_loss': 0.6400203514450599, 'epoch': 9}","{'eps': 0.1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.99, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 32, 'learning_rate': 0.0001}",atomic-sweep-9 -91,"{'_step': 1039, '_wandb': {'runtime': 351}, 'test/epoch_acc': 0.6555555555555556, 'test/precision': 0.6140350877192983, 'test/epoch_loss': 0.6175267219543457, 'train/epoch_acc': 0.7432432432432432, 'epoch': 9, '_runtime': 353.4816448688507, '_timestamp': 1678788328.1196988, 'test/recall': 0.7954545454545454, 'test/f1-score': 0.693069306930693, 'train/batch_loss': 0.3377891480922699, 'train/epoch_loss': 0.5329857344855841}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 7, 'batch_size': 8, 'learning_rate': 0.1}",cosmic-sweep-8 -92,"{'epoch': 9, '_wandb': {'runtime': 390}, '_runtime': 392.4064960479736, '_timestamp': 1678787961.3400052, 'test/f1-score': 0.6999999999999998, 'test/precision': 0.5932203389830508, 'train/epoch_loss': 0.5631518808058498, '_step': 2059, 'test/recall': 0.8536585365853658, 'test/epoch_acc': 0.6666666666666667, 'test/epoch_loss': 0.6419186863634322, 'train/epoch_acc': 0.7186732186732187, 'train/batch_loss': 0.17200787365436554}","{'eps': 1e-08, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.99, 'optimizer': 'adam', 'step_size': 7, 'batch_size': 4, 'learning_rate': 0.01}",lunar-sweep-7 -93,"{'train/epoch_acc': 0.9975429975429976, 'train/epoch_loss': 0.03237721893286529, 'epoch': 9, '_wandb': {'runtime': 343}, '_runtime': 345.9260220527649, 'test/f1-score': 0.8988764044943819, 'test/epoch_acc': 0.9, 'train/batch_loss': 0.04353119805455208, '_step': 529, '_timestamp': 1678787557.992564, 'test/recall': 0.8888888888888888, 'test/precision': 0.9090909090909092, 'test/epoch_loss': 0.24278527200222016}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.5, 'optimizer': 'sgd', 'step_size': 2, 'batch_size': 16, 'learning_rate': 0.01}",zany-sweep-6 -94,"{'_step': 529, '_runtime': 346.5414688587189, 'test/f1-score': 0.9130434782608696, 'train/epoch_acc': 0.9336609336609336, 'test/epoch_loss': 0.32114719019995797, 'train/batch_loss': 0.21811823546886444, 'epoch': 9, '_wandb': {'runtime': 344}, '_timestamp': 1678787192.9954038, 'test/recall': 0.8571428571428571, 'test/epoch_acc': 0.9111111111111112, 'test/precision': 0.9767441860465116, 'train/epoch_loss': 0.2347587838000103}","{'eps': 0.1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.9, 'optimizer': 'sgd', 'step_size': 3, 'batch_size': 16, 'learning_rate': 0.001}",absurd-sweep-5 -95,"{'_timestamp': 1678786835.7254088, 'test/f1-score': 0.8799999999999999, 'test/epoch_loss': 0.22436124781767527, 'train/epoch_loss': 0.02646600444977348, 'epoch': 9, '_wandb': {'runtime': 344}, '_runtime': 345.9469966888428, 'test/precision': 0.9166666666666666, 'train/epoch_acc': 1, 'train/batch_loss': 0.06225413456559181, '_step': 279, 'test/recall': 0.8461538461538461, 'test/epoch_acc': 0.9}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 32, 'learning_rate': 0.003}",radiant-sweep-4 -96,"{'_wandb': {'runtime': 353}, '_runtime': 355.012455701828, 'test/recall': 0.875, 'test/f1-score': 0.8045977011494252, 'test/epoch_acc': 0.8111111111111111, 'test/precision': 0.7446808510638298, '_step': 1039, 'epoch': 9, 'train/epoch_loss': 0.45506354690476775, 'train/epoch_acc': 0.8341523341523341, 'train/batch_loss': 0.5456343293190002, '_timestamp': 1678786479.0865147, 'test/epoch_loss': 0.4459853092829386}","{'eps': 0.1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.99, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 8, 'learning_rate': 0.0003}",sandy-sweep-3 -97,"{'_wandb': {'runtime': 342}, '_timestamp': 1678786112.108075, 'test/recall': 0.7894736842105263, 'test/precision': 0.9090909090909092, 'test/epoch_loss': 0.31915653232071134, 'train/batch_loss': 0.026765840128064156, 'train/epoch_loss': 0.045762457081668206, '_step': 529, 'epoch': 9, '_runtime': 344.01046657562256, 'test/f1-score': 0.8450704225352113, 'test/epoch_acc': 0.8777777777777778, 'train/epoch_acc': 0.9926289926289926}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.5, 'optimizer': 'sgd', 'step_size': 2, 'batch_size': 16, 'learning_rate': 0.01}",pretty-sweep-2 -98,"{'train/batch_loss': 0.7150550484657288, 'train/epoch_loss': 0.7011552195291262, '_step': 149, '_wandb': {'runtime': 357}, '_runtime': 359.66486382484436, '_timestamp': 1678785758.376562, 'test/f1-score': 0.379746835443038, 'test/precision': 0.42857142857142855, 'epoch': 9, 'test/recall': 0.3409090909090909, 'test/epoch_acc': 0.45555555555555555, 'test/epoch_loss': 0.7006691349877252, 'train/epoch_acc': 0.4815724815724816}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.99, 'optimizer': 'adam', 'step_size': 5, 'batch_size': 64, 'learning_rate': 0.0003}",rose-sweep-1 -99,"{'train/epoch_loss': 0.023103852647056927, '_step': 74, 'test/recall': 0.9090909090909092, 'test/f1-score': 0.8791208791208791, 'train/batch_loss': 0.0016211483161896467, 'test/epoch_acc': 0.8777777777777778, 'test/precision': 0.851063829787234, 'test/epoch_loss': 0.5091631063156657, 'train/epoch_acc': 0.995085995085995, 'epoch': 4, '_wandb': {'runtime': 181}, '_runtime': 180.05384421348572, '_timestamp': 1678785370.5563953}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.5, 'optimizer': 'sgd', 'step_size': 3, 'batch_size': 64, 'learning_rate': 0.1}",cosmic-sweep-2 -100,"{'test/f1-score': 0.9166666666666666, 'test/precision': 0.9166666666666666, 'train/epoch_acc': 0.9828009828009828, 'train/batch_loss': 0.0724378228187561, 'train/epoch_loss': 0.11044558714297244, '_step': 279, '_runtime': 347.11417746543884, 'test/recall': 0.9166666666666666, 'test/epoch_acc': 0.9111111111111112, 'test/epoch_loss': 0.2461573594146305, 'epoch': 9, '_wandb': {'runtime': 344}, '_timestamp': 1678743707.9633043}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.9, 'optimizer': 'sgd', 'step_size': 3, 'batch_size': 32, 'learning_rate': 0.003}",ethereal-sweep-14 -101,"{'_step': 149, 'epoch': 9, '_wandb': {'runtime': 346}, 'test/recall': 0.9130434782608696, 'test/precision': 0.9545454545454546, 'train/batch_loss': 0.05796322599053383, 'train/epoch_loss': 0.043383844352398226, '_runtime': 349.69085454940796, '_timestamp': 1678743349.8008895, 'test/f1-score': 0.9333333333333332, 'test/epoch_acc': 0.9333333333333332, 'test/epoch_loss': 0.16449517243438297, 'train/epoch_acc': 1}","{'eps': 1e-08, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 7, 'batch_size': 64, 'learning_rate': 0.003}",northern-sweep-13 -102,"{'_runtime': 560.5539684295654, '_timestamp': 1678743376.8770983, 'test/recall': 0.85, 'test/f1-score': 0.7816091954022989, 'train/epoch_acc': 0.8255528255528255, 'train/epoch_loss': 0.40511614706651, '_wandb': {'runtime': 559}, 'epoch': 9, 'test/epoch_acc': 0.788888888888889, 'test/precision': 0.723404255319149, 'test/epoch_loss': 0.5102662573258082, 'train/batch_loss': 0.42048144340515137, '_step': 2059}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.999, 'optimizer': 'adam', 'step_size': 5, 'batch_size': 4, 'learning_rate': 0.001}",faithful-sweep-12 -103,"{'_timestamp': 1678742986.9751594, 'test/recall': 0.7777777777777778, 'test/epoch_loss': 0.3378064884079827, 'epoch': 9, '_runtime': 358.3485324382782, 'test/f1-score': 0.8536585365853658, 'test/epoch_acc': 0.8666666666666667, 'test/precision': 0.945945945945946, 'train/epoch_acc': 0.8955773955773956, 'train/batch_loss': 0.5923706889152527, 'train/epoch_loss': 0.27216847456936755, '_step': 1039, '_wandb': {'runtime': 355}}","{'eps': 1e-08, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 8, 'learning_rate': 0.0003}",zany-sweep-12 -104,"{'test/epoch_acc': 0.7444444444444445, 'test/precision': 0.6226415094339622, '_step': 1039, 'epoch': 9, '_wandb': {'runtime': 358}, '_timestamp': 1678742619.1453717, 'test/recall': 0.9166666666666666, 'test/f1-score': 0.7415730337078651, 'train/epoch_loss': 0.613342459283824, '_runtime': 362.78373169898987, 'test/epoch_loss': 0.615033131175571, 'train/epoch_acc': 0.7481572481572482, 'train/batch_loss': 0.6421169638633728}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.9, 'optimizer': 'sgd', 'step_size': 2, 'batch_size': 8, 'learning_rate': 0.0001}",ruby-sweep-11 -105,"{'_wandb': {'runtime': 531}, 'test/epoch_acc': 0.8666666666666667, 'test/precision': 0.9545454545454546, 'train/batch_loss': 0.07699991017580032, '_step': 2059, '_runtime': 531.6082515716553, '_timestamp': 1678742643.2100165, 'test/recall': 0.8076923076923077, 'test/f1-score': 0.875, 'test/epoch_loss': 0.3795760815549228, 'train/epoch_acc': 0.9656019656019657, 'train/epoch_loss': 0.09796744051757808, 'epoch': 9}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 4, 'learning_rate': 0.001}",fallen-sweep-10 -106,"{'test/f1-score': 0.875, 'test/precision': 0.9545454545454546, 'test/epoch_loss': 0.2956610471010208, 'train/batch_loss': 0.1150113120675087, '_step': 1039, 'epoch': 9, '_timestamp': 1678742242.6362762, 'test/recall': 0.8076923076923077, 'train/epoch_loss': 0.24495647845821825, '_wandb': {'runtime': 359}, '_runtime': 361.6978232860565, 'test/epoch_acc': 0.8666666666666667, 'train/epoch_acc': 0.9103194103194104}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.999, 'optimizer': 'adam', 'step_size': 7, 'batch_size': 8, 'learning_rate': 0.003}",rare-sweep-10 -107,"{'_runtime': 471.6707801818848, 'test/precision': 0.9714285714285714, '_wandb': {'runtime': 471}, '_timestamp': 1678742103.7627492, 'test/recall': 0.7906976744186046, 'test/f1-score': 0.8717948717948717, 'test/epoch_acc': 0.888888888888889, 'test/epoch_loss': 0.26282389760017394, '_step': 1039, 'epoch': 9, 'train/epoch_loss': 0.310643073711407, 'train/epoch_acc': 0.8869778869778869, 'train/batch_loss': 0.14859537780284882}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.999, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 8, 'learning_rate': 0.003}",major-sweep-9 -108,"{'test/epoch_acc': 0.6333333333333333, 'test/precision': 0.6, 'train/epoch_acc': 0.5921375921375921, 'train/batch_loss': 0.6228023767471313, '_step': 279, '_runtime': 344.49258494377136, 'test/f1-score': 0.6451612903225806, 'test/recall': 0.6976744186046512, 'test/epoch_loss': 0.6676742302046882, 'train/epoch_loss': 0.6766868150204932, 'epoch': 9, '_wandb': {'runtime': 341}, '_timestamp': 1678741869.828495}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.5, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 32, 'learning_rate': 0.0001}",spring-sweep-9 -109,"{'test/epoch_loss': 0.16872049139605627, 'train/epoch_acc': 0.9987714987714988, '_step': 1039, 'epoch': 9, '_wandb': {'runtime': 451}, '_runtime': 452.4322986602783, 'test/f1-score': 0.9213483146067416, 'test/precision': 0.9111111111111112, 'train/epoch_loss': 0.02303326028314504, '_timestamp': 1678741623.0662856, 'test/recall': 0.9318181818181818, 'test/epoch_acc': 0.9222222222222224, 'train/batch_loss': 0.0022799931466579437}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 8, 'learning_rate': 0.003}",elated-sweep-8 -110,"{'_step': 149, '_runtime': 345.3405177593231, 'test/f1-score': 0.9534883720930232, 'test/precision': 0.9761904761904762, 'test/epoch_loss': 0.2148759490913815, 'train/epoch_acc': 0.9606879606879608, 'epoch': 9, '_wandb': {'runtime': 342}, '_timestamp': 1678741511.9070578, 'test/recall': 0.9318181818181818, 'test/epoch_acc': 0.9555555555555556, 'train/batch_loss': 0.11643347889184952, 'train/epoch_loss': 0.1359616077759049}","{'eps': 0.1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.999, 'optimizer': 'adam', 'step_size': 5, 'batch_size': 64, 'learning_rate': 0.003}",hardy-sweep-8 -111,"{'epoch': 9, '_wandb': {'runtime': 342}, '_runtime': 345.1732180118561, '_timestamp': 1678741156.130327, 'test/recall': 0.8048780487804879, 'test/epoch_acc': 0.888888888888889, 'train/epoch_acc': 1, '_step': 279, 'train/epoch_loss': 0.008645273717600824, 'test/precision': 0.9428571428571428, 'test/epoch_loss': 0.2181672462158733, 'train/batch_loss': 0.042314428836107254, 'test/f1-score': 0.868421052631579}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.999, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 32, 'learning_rate': 0.1}",sweepy-sweep-7 -112,"{'_step': 1039, 'test/f1-score': 0.7222222222222222, 'test/epoch_acc': 0.7777777777777778, 'test/precision': 0.8387096774193549, 'test/epoch_loss': 0.4768455002042982, 'train/epoch_acc': 0.8292383292383292, 'train/epoch_loss': 0.45283343838825274, 'epoch': 9, '_wandb': {'runtime': 453}, '_runtime': 454.0593776702881, '_timestamp': 1678741159.4683807, 'test/recall': 0.6341463414634146, 'train/batch_loss': 0.3791900873184204}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.5, 'optimizer': 'sgd', 'step_size': 7, 'batch_size': 8, 'learning_rate': 0.0001}",glorious-sweep-7 -113,"{'test/epoch_loss': 0.1931780371401045, 'epoch': 9, '_wandb': {'runtime': 346}, 'test/f1-score': 0.9333333333333332, 'test/precision': 0.9333333333333332, 'test/epoch_acc': 0.9333333333333332, 'train/epoch_acc': 1, 'train/batch_loss': 0.001889266073703766, 'train/epoch_loss': 0.0030514685945077376, '_step': 149, '_runtime': 348.53755164146423, '_timestamp': 1678740798.1400597, 'test/recall': 0.9333333333333332}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 64, 'learning_rate': 0.01}",rural-sweep-6 -114,"{'epoch': 9, 'test/recall': 0.8666666666666667, 'test/f1-score': 0.896551724137931, 'test/epoch_acc': 0.9, 'train/batch_loss': 0.1385842263698578, '_step': 2059, '_runtime': 560.7404127120972, '_timestamp': 1678740696.0305526, 'test/precision': 0.9285714285714286, 'test/epoch_loss': 0.22745563416845269, 'train/epoch_acc': 0.984029484029484, 'train/epoch_loss': 0.07075482415817952, '_wandb': {'runtime': 560}}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.9, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 4, 'learning_rate': 0.01}",smart-sweep-6 -115,"{'_runtime': 345.5716743469238, '_timestamp': 1678740438.4959724, 'test/recall': 0.7755102040816326, 'test/f1-score': 0.8172043010752688, 'train/epoch_acc': 0.7616707616707616, 'train/epoch_loss': 0.5191410552225183, 'epoch': 9, '_wandb': {'runtime': 342}, 'test/precision': 0.8636363636363636, 'test/epoch_loss': 0.507676590151257, 'train/batch_loss': 0.44296249747276306, '_step': 529, 'test/epoch_acc': 0.8111111111111111}","{'eps': 0.1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.999, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 16, 'learning_rate': 0.1}",giddy-sweep-5 -116,"{'_step': 529, 'epoch': 9, '_runtime': 345.28623247146606, 'test/f1-score': 0.6842105263157895, 'train/epoch_acc': 0.8538083538083537, 'train/batch_loss': 0.4066888689994812, 'train/epoch_loss': 0.32492415251837314, '_wandb': {'runtime': 342}, '_timestamp': 1678740073.5443084, 'test/recall': 0.6666666666666666, 'test/epoch_acc': 0.7333333333333334, 'test/precision': 0.7027027027027027, 'test/epoch_loss': 0.6657861550649007}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 2, 'batch_size': 16, 'learning_rate': 0.1}",lilac-sweep-4 -117,"{'_step': 1039, 'epoch': 9, '_wandb': {'runtime': 454}, '_runtime': 454.98564982414246, 'test/epoch_acc': 0.888888888888889, 'test/epoch_loss': 0.2600655794143677, 'train/batch_loss': 0.01167443674057722, '_timestamp': 1678740126.212114, 'test/recall': 0.8367346938775511, 'test/f1-score': 0.8913043478260869, 'test/precision': 0.9534883720930232, 'train/epoch_acc': 0.9803439803439804, 'train/epoch_loss': 0.08152788232426166}","{'eps': 1e-08, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 3, 'batch_size': 8, 'learning_rate': 0.001}",hearty-sweep-5 -118,"{'train/epoch_acc': 0.8144963144963144, 'epoch': 9, '_wandb': {'runtime': 354}, '_timestamp': 1678739717.8250418, 'test/epoch_acc': 0.788888888888889, 'test/epoch_loss': 0.4899995631641812, 'train/batch_loss': 0.6180618405342102, 'train/epoch_loss': 0.5079173609724209, '_step': 1039, '_runtime': 356.9382667541504, 'test/recall': 0.875, 'test/f1-score': 0.7865168539325842, 'test/precision': 0.7142857142857143}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 8, 'learning_rate': 0.0001}",silvery-sweep-3 -119,"{'_wandb': {'runtime': 453}, 'test/precision': 0.9142857142857144, 'train/epoch_acc': 0.8968058968058967, 'train/batch_loss': 0.2711101472377777, 'test/epoch_loss': 0.3028925802972582, '_step': 1039, 'epoch': 9, '_runtime': 454.2519624233246, '_timestamp': 1678739662.5458224, 'test/recall': 0.8205128205128205, 'test/f1-score': 0.8648648648648648, 'test/epoch_acc': 0.888888888888889, 'train/epoch_loss': 0.28549219298128414}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 8, 'learning_rate': 0.0003}",dulcet-sweep-4 -120,"{'train/epoch_loss': 0.6479796424544707, '_step': 529, '_runtime': 343.88807487487793, 'test/f1-score': 0.6451612903225806, 'test/epoch_acc': 0.6333333333333333, 'test/precision': 0.5454545454545454, 'test/epoch_loss': 0.6651701913939582, 'train/epoch_acc': 0.6928746928746928, 'train/batch_loss': 0.6685948967933655, 'epoch': 9, '_wandb': {'runtime': 341}, '_timestamp': 1678739351.1315958, 'test/recall': 0.7894736842105263}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.999, 'optimizer': 'adam', 'step_size': 2, 'batch_size': 16, 'learning_rate': 0.001}",glamorous-sweep-2 -121,"{'_runtime': 469.65283608436584, 'epoch': 9, '_wandb': {'runtime': 469}, 'test/recall': 0.875, 'test/f1-score': 0.7608695652173914, 'test/epoch_acc': 0.7555555555555555, 'test/precision': 0.6730769230769231, 'test/epoch_loss': 0.6144020875295003, 'train/epoch_acc': 0.7542997542997543, '_step': 1039, '_timestamp': 1678739200.083605, 'train/batch_loss': 0.6510805487632751, 'train/epoch_loss': 0.6267796501480684}","{'eps': 0.1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.5, 'optimizer': 'adam', 'step_size': 2, 'batch_size': 8, 'learning_rate': 0.0001}",hopeful-sweep-3 -122,"{'test/precision': 0.8409090909090909, 'train/epoch_acc': 0.9975429975429976, 'train/batch_loss': 0.0980801358819008, '_step': 279, '_wandb': {'runtime': 353}, '_runtime': 357.5890119075775, 'test/f1-score': 0.8409090909090909, 'test/epoch_acc': 0.8444444444444444, 'train/epoch_loss': 0.03763626415181805, 'epoch': 9, '_timestamp': 1678738994.027642, 'test/recall': 0.8409090909090909, 'test/epoch_loss': 0.3028163850307465}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.9, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 32, 'learning_rate': 0.003}",lunar-sweep-1 -123,"{'test/f1-score': 0.7157894736842105, 'test/epoch_loss': 0.5541173484590318, '_timestamp': 1678738720.9443874, 'test/recall': 0.8947368421052632, 'test/epoch_acc': 0.7000000000000001, 'test/precision': 0.5964912280701754, '_step': 2059, 'epoch': 9, '_wandb': {'runtime': 529}, '_runtime': 529.6096863746643, 'train/epoch_acc': 0.6658476658476659, 'train/batch_loss': 0.7896618843078613, 'train/epoch_loss': 0.618659178367118}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.9, 'optimizer': 'sgd', 'step_size': 2, 'batch_size': 4, 'learning_rate': 0.1}",stoic-sweep-2 -124,"{'train/epoch_loss': 0.016353931551580648, 'epoch': 9, '_wandb': {'runtime': 353}, '_runtime': 355.4184715747833, '_timestamp': 1678738469.1834886, 'test/recall': 0.6578947368421053, 'train/epoch_acc': 0.995085995085995, 'train/batch_loss': 0.0014543599681928754, '_step': 529, 'test/f1-score': 0.7575757575757577, 'test/epoch_acc': 0.8222222222222223, 'test/precision': 0.8928571428571429, 'test/epoch_loss': 0.4269479903909895}","{'eps': 1e-08, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.5, 'optimizer': 'adam', 'step_size': 2, 'batch_size': 16, 'learning_rate': 0.0001}",dark-sweep-2 -125,"{'_wandb': {'runtime': 381}, '_timestamp': 1678738101.018471, 'test/f1-score': 0.8470588235294119, 'test/epoch_acc': 0.8555555555555556, 'test/epoch_loss': 0.40116495291392007, 'epoch': 9, '_runtime': 384.5172441005707, 'test/recall': 0.8181818181818182, 'test/precision': 0.8780487804878049, 'train/epoch_acc': 0.8673218673218673, 'train/batch_loss': 0.31195682287216187, 'train/epoch_loss': 0.3623260387038716, '_step': 1039}","{'eps': 0.1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.5, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 8, 'learning_rate': 0.0003}",trim-sweep-1 -126,"{'epoch': 9, '_runtime': 560.7235152721405, 'test/f1-score': 0.8602150537634408, 'test/precision': 0.8163265306122449, 'train/epoch_acc': 0.7567567567567567, 'train/batch_loss': 0.6653294563293457, '_step': 2059, '_wandb': {'runtime': 560}, '_timestamp': 1678738182.1088202, 'test/recall': 0.9090909090909092, 'test/epoch_acc': 0.8555555555555556, 'test/epoch_loss': 0.6165981186760796, 'train/epoch_loss': 0.6107166709712448}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.5, 'optimizer': 'adam', 'step_size': 2, 'batch_size': 4, 'learning_rate': 0.001}",sparkling-sweep-1 -127,"{'_step': 555, 'epoch': 1, '_timestamp': 1678737059.0375042, 'test/recall': 0.6818181818181818, 'test/epoch_acc': 0.6555555555555556, 'test/precision': 0.6382978723404256, '_wandb': {'runtime': 118}, '_runtime': 122.13349413871764, 'test/f1-score': 0.6593406593406593, 'test/epoch_loss': 0.6796493821673923, 'train/epoch_acc': 0.5515970515970516, 'train/batch_loss': 0.6759337782859802, 'train/epoch_loss': 0.6851893525744539}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.5, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 4, 'learning_rate': 0.0003}",serene-sweep-1 -128,"{'_wandb': {'runtime': 455}, 'train/epoch_acc': 0.9914004914004914, 'test/precision': 0.9361702127659576, 'test/batch_loss': 0.1311825066804886, 'train/epoch_loss': 0.032788554922144414, '_runtime': 456.3002746105194, '_timestamp': 1678734250.8076646, 'test/f1-score': 0.8888888888888888, 'train/batch_loss': 0.003167948452755809, '_step': 1159, 'test/recall': 0.8461538461538461, 'test/epoch_loss': 0.45068282733360926, 'epoch': 9, 'test/epoch_acc': 0.8777777777777778}","{'gamma': 0.5, 'epochs': 10, 'optimizer': 'sgd', 'step_size': 2, 'batch_size': 8, 'learning_rate': 0.003}",super-sweep-10 -129,"{'_wandb': {'runtime': 563}, '_runtime': 564.230875492096, 'test/f1-score': 0.7173913043478259, 'test/batch_loss': 0.9658783674240112, 'train/epoch_loss': 0.5984233345387902, '_step': 2289, 'test/precision': 0.673469387755102, 'test/recall': 0.7674418604651163, 'train/epoch_acc': 0.687960687960688, 'train/batch_loss': 0.3260266184806824, 'epoch': 9, 'test/epoch_acc': 0.7111111111111111, 'test/epoch_loss': 0.5302444166607327, '_timestamp': 1678733784.6976814}","{'gamma': 0.1, 'epochs': 10, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 4, 'learning_rate': 0.01}",distinctive-sweep-9 -130,"{'_step': 2289, 'test/f1-score': 0.9268292682926828, '_timestamp': 1678733210.1129615, 'test/epoch_acc': 0.9333333333333332, 'test/epoch_loss': 0.17092165086004468, 'epoch': 9, 'train/batch_loss': 0.007875862531363964, 'train/epoch_loss': 0.1743801347293527, 'test/precision': 1, 'test/batch_loss': 0.1419784128665924, 'train/epoch_acc': 0.9496314496314496, '_wandb': {'runtime': 527}, '_runtime': 527.6160025596619, 'test/recall': 0.8636363636363636}","{'gamma': 0.5, 'epochs': 10, 'optimizer': 'sgd', 'step_size': 7, 'batch_size': 4, 'learning_rate': 0.0003}",winter-sweep-8 -131,"{'test/f1-score': 0.9066666666666668, '_runtime': 453.52900218963623, 'test/recall': 0.8292682926829268, 'test/precision': 1, 'test/batch_loss': 0.27116066217422485, '_step': 1159, '_wandb': {'runtime': 452}, 'test/epoch_loss': 0.21558621691332924, 'train/epoch_loss': 0.07730489082323246, 'epoch': 9, '_timestamp': 1678732673.1225052, 'test/epoch_acc': 0.9222222222222224, 'train/epoch_acc': 0.9791154791154792, 'train/batch_loss': 0.04383014515042305}","{'gamma': 0.5, 'epochs': 10, 'optimizer': 'sgd', 'step_size': 3, 'batch_size': 8, 'learning_rate': 0.001}",stilted-sweep-7 -132,"{'_timestamp': 1678732212.5530572, 'test/f1-score': 0.7010309278350516, 'test/epoch_acc': 0.6777777777777778, 'epoch': 9, 'test/batch_loss': 0.4716488718986511, 'train/batch_loss': 0.48304444551467896, '_step': 2289, '_wandb': {'runtime': 561}, '_runtime': 561.7993631362915, 'test/precision': 0.6538461538461539, 'test/recall': 0.7555555555555555, 'test/epoch_loss': 0.6190193812052409, 'train/epoch_acc': 0.7272727272727273, 'train/epoch_loss': 0.5549268187263967}","{'gamma': 0.5, 'epochs': 10, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 4, 'learning_rate': 0.01}",summer-sweep-6 -133,"{'test/epoch_acc': 0.8222222222222223, 'test/batch_loss': 0.5068956017494202, 'train/epoch_loss': 0.5186349417126442, '_step': 1159, '_wandb': {'runtime': 453}, 'test/f1-score': 0.813953488372093, 'test/epoch_loss': 0.4936415394147237, 'train/batch_loss': 0.4434223175048828, 'test/recall': 0.7142857142857143, 'test/precision': 0.945945945945946, 'train/epoch_acc': 0.8218673218673218, 'epoch': 9, '_runtime': 454.3645238876343, '_timestamp': 1678731639.156168}","{'gamma': 0.5, 'epochs': 10, 'optimizer': 'sgd', 'step_size': 3, 'batch_size': 8, 'learning_rate': 0.0001}",different-sweep-5 -134,"{'_wandb': {'runtime': 453}, '_runtime': 454.26038885116577, 'test/batch_loss': 0.5159374475479126, 'test/epoch_loss': 0.5482642173767089, '_step': 1159, 'epoch': 9, 'train/batch_loss': 0.5655931830406189, '_timestamp': 1678731176.111379, 'test/f1-score': 0.8354430379746836, 'test/epoch_acc': 0.8555555555555556, 'test/precision': 0.825, 'train/epoch_acc': 0.812039312039312, 'train/epoch_loss': 0.5429200196149016, 'test/recall': 0.8461538461538461}","{'gamma': 0.5, 'epochs': 10, 'optimizer': 'sgd', 'step_size': 2, 'batch_size': 8, 'learning_rate': 0.0001}",wise-sweep-4 -135,"{'test/batch_loss': 1.7588363885879517, 'train/batch_loss': 0.00470334617421031, 'train/epoch_loss': 0.02060394324720534, '_step': 2289, 'epoch': 9, 'test/f1-score': 0.8493150684931509, 'train/epoch_acc': 0.9963144963144964, '_runtime': 528.9760706424713, 'test/epoch_acc': 0.8777777777777778, 'test/precision': 0.9393939393939394, 'test/epoch_loss': 0.24194780117250048, '_wandb': {'runtime': 528}, '_timestamp': 1678730714.7711067, 'test/recall': 0.775}","{'gamma': 0.5, 'epochs': 10, 'optimizer': 'sgd', 'step_size': 3, 'batch_size': 4, 'learning_rate': 0.003}",misty-sweep-3 -136,"{'test/batch_loss': 0.455120325088501, 'train/batch_loss': 0.5347514748573303, 'test/precision': 0.8387096774193549, 'train/epoch_acc': 0.8329238329238329, '_runtime': 455.41485929489136, 'test/recall': 0.6842105263157895, 'test/epoch_acc': 0.8111111111111111, 'test/f1-score': 0.7536231884057972, 'train/epoch_loss': 0.42904984072326735, 'epoch': 9, '_wandb': {'runtime': 454}, '_timestamp': 1678730177.1362092, '_step': 1159, 'test/epoch_loss': 0.4792341656155056}","{'gamma': 0.1, 'epochs': 10, 'optimizer': 'sgd', 'step_size': 3, 'batch_size': 8, 'learning_rate': 0.0003}",unique-sweep-2 -137,"{'epoch': 9, '_wandb': {'runtime': 527}, 'test/recall': 0.8636363636363636, 'test/batch_loss': 2.5320074558258057, 'train/epoch_acc': 0.9901719901719902, 'train/batch_loss': 0.005740344058722258, 'train/epoch_loss': 0.024021292951151657, '_step': 2289, 'test/epoch_acc': 0.888888888888889, 'test/precision': 0.9047619047619048, 'test/epoch_loss': 0.5442472649919283, '_runtime': 528.4356484413147, '_timestamp': 1678729705.2001765, 'test/f1-score': 0.8837209302325582}","{'gamma': 0.5, 'epochs': 10, 'optimizer': 'sgd', 'step_size': 7, 'batch_size': 4, 'learning_rate': 0.003}",polar-sweep-1 +0,"{'_step': 2059, '_timestamp': 1680692970.2016854, 'test/recall': 0.6170212765957447, 'test/f1-score': 0.7073170731707318, 'test/epoch_acc': 0.7333333333333334, 'test/epoch_loss': 0.5664619127909343, 'train/epoch_loss': 0.4241055610431793, 'epoch': 9, '_wandb': {'runtime': 363}, '_runtime': 367.13677954673767, 'test/precision': 0.8285714285714286, 'train/epoch_acc': 0.8230958230958231, 'train/batch_loss': 0.33577921986579895}","{'eps': 0.1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.9, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 4, 'learning_rate': 0.0003}",fiery-sweep-26 +1,"{'test/f1-score': 0.7474747474747475, 'test/precision': 0.6851851851851852, 'test/epoch_loss': 0.6454579922888014, 'train/batch_loss': 0.7014500498771667, '_step': 1039, 'epoch': 9, '_wandb': {'runtime': 338}, '_runtime': 341.8420207500458, 'train/epoch_loss': 0.649790015355375, '_timestamp': 1680692589.503975, 'test/recall': 0.8222222222222222, 'test/epoch_acc': 0.7222222222222222, 'train/epoch_acc': 0.7125307125307125}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.9, 'optimizer': 'adam', 'step_size': 2, 'batch_size': 8, 'learning_rate': 0.0003}",radiant-sweep-25 +2,"{'train/epoch_acc': 0.9987714987714988, 'train/epoch_loss': 0.01614290558709019, '_step': 1039, 'epoch': 9, '_runtime': 336.8275649547577, '_timestamp': 1680692234.39516, 'test/epoch_acc': 0.888888888888889, 'test/precision': 0.935483870967742, '_wandb': {'runtime': 333}, 'test/recall': 0.7837837837837838, 'test/f1-score': 0.8529411764705881, 'test/epoch_loss': 0.34812947780333664, 'train/batch_loss': 0.01956617273390293}","{'eps': 1e-08, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.999, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 8, 'learning_rate': 0.003}",blooming-sweep-24 +3,"{'train/epoch_acc': 0.8353808353808354, 'train/epoch_loss': 0.5324229019572753, 'epoch': 9, '_runtime': 331.57809829711914, '_timestamp': 1680691883.3877182, 'test/recall': 0.8333333333333334, 'test/f1-score': 0.7954545454545455, 'test/precision': 0.7608695652173914, '_step': 529, '_wandb': {'runtime': 327}, 'test/epoch_acc': 0.8, 'test/epoch_loss': 0.5553177932898203, 'train/batch_loss': 0.5222326517105103}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.9, 'optimizer': 'sgd', 'step_size': 2, 'batch_size': 16, 'learning_rate': 0.0003}",visionary-sweep-23 +4,"{'test/precision': 0.5897435897435898, 'train/epoch_acc': 0.5577395577395577, '_step': 410, 'epoch': 1, '_runtime': 71.64615154266357, '_timestamp': 1680691538.7247725, 'test/f1-score': 0.7076923076923076, 'test/epoch_acc': 0.5777777777777778, 'train/batch_loss': 0.5083656311035156, '_wandb': {'runtime': 70}, 'test/recall': 0.8846153846153846, 'test/epoch_loss': 1.5602711306677923, 'train/epoch_loss': 0.7508098256090057}","{'eps': 1e-08, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.99, 'optimizer': 'adam', 'step_size': 7, 'batch_size': 4, 'learning_rate': 0.01}",ancient-sweep-22 +5,"{'_wandb': {'runtime': 328}, 'test/recall': 0.9545454545454546, '_step': 529, 'epoch': 9, '_runtime': 331.44886469841003, '_timestamp': 1680691453.5148375, 'test/f1-score': 0.8, 'test/epoch_acc': 0.7666666666666667, 'test/precision': 0.6885245901639344, 'test/epoch_loss': 0.4844042791260613, 'train/epoch_acc': 0.769041769041769, 'train/batch_loss': 0.4559023082256317, 'train/epoch_loss': 0.49390909720111537}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.99, 'optimizer': 'adam', 'step_size': 5, 'batch_size': 16, 'learning_rate': 0.003}",fresh-sweep-22 +6,"{'test/f1-score': 0.9306930693069309, 'test/epoch_acc': 0.9222222222222224, 'test/epoch_loss': 0.26263883135527266, 'train/epoch_loss': 0.018423480946079804, 'epoch': 9, '_runtime': 358.66950702667236, '_timestamp': 1680691110.042932, 'test/precision': 0.9791666666666666, 'train/epoch_acc': 0.9975429975429976, 'train/batch_loss': 0.0031523401848971844, '_step': 2059, '_wandb': {'runtime': 355}, 'test/recall': 0.8867924528301887}","{'eps': 0.1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.5, 'optimizer': 'adam', 'step_size': 5, 'batch_size': 4, 'learning_rate': 0.01}",pleasant-sweep-21 +7,"{'epoch': 9, '_wandb': {'runtime': 329}, 'test/epoch_acc': 0.8777777777777778, 'test/precision': 0.86, 'train/epoch_acc': 1, 'train/batch_loss': 0.003317732596769929, '_step': 279, '_runtime': 332.6156196594238, '_timestamp': 1680690741.3215847, 'test/recall': 0.9148936170212766, 'test/f1-score': 0.8865979381443299, 'test/epoch_loss': 0.3669874522421095, 'train/epoch_loss': 0.0014873178028192654}","{'eps': 0.1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.5, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 32, 'learning_rate': 0.01}",fragrant-sweep-20 +8,"{'test/epoch_loss': 0.5786970999505785, 'train/epoch_acc': 0.8206388206388207, 'train/epoch_loss': 0.5623220165765842, '_wandb': {'runtime': 338}, 'test/recall': 0.82, 'test/precision': 0.7592592592592593, '_timestamp': 1680690397.165603, 'test/f1-score': 0.7884615384615384, 'test/epoch_acc': 0.7555555555555555, 'train/batch_loss': 0.58731609582901, '_step': 149, 'epoch': 9, '_runtime': 342.05230498313904}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 2, 'batch_size': 64, 'learning_rate': 0.001}",treasured-sweep-19 +9,"{'test/recall': 0.7291666666666666, 'test/f1-score': 0.7865168539325843, 'test/precision': 0.8536585365853658, 'test/epoch_loss': 0.6037532766660054, 'train/batch_loss': 0.5736206769943237, 'train/epoch_loss': 0.5984062318134074, '_step': 2059, 'epoch': 9, '_timestamp': 1680690042.488695, 'test/epoch_acc': 0.788888888888889, 'train/epoch_acc': 0.7788697788697788, '_wandb': {'runtime': 357}, '_runtime': 360.5366156101227}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.999, 'optimizer': 'sgd', 'step_size': 2, 'batch_size': 4, 'learning_rate': 0.0001}",desert-sweep-18 +10,"{'epoch': 9, '_runtime': 365.3367943763733, 'test/recall': 0.7446808510638298, 'test/f1-score': 0.8333333333333334, 'test/precision': 0.945945945945946, 'train/epoch_acc': 0.8697788697788698, 'train/epoch_loss': 0.3086323318522451, '_step': 2059, '_wandb': {'runtime': 362}, '_timestamp': 1680689670.8310964, 'test/epoch_acc': 0.8444444444444444, 'test/epoch_loss': 0.3740654948684904, 'train/batch_loss': 0.5778521299362183}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.9, 'optimizer': 'adam', 'step_size': 5, 'batch_size': 4, 'learning_rate': 0.003}",celestial-sweep-17 +11,"{'train/batch_loss': 0.004256190732121468, 'train/epoch_loss': 0.0053219743558098115, 'epoch': 9, 'test/epoch_acc': 0.9222222222222224, 'test/precision': 0.9069767441860463, 'test/epoch_loss': 0.18080708616309696, 'train/epoch_acc': 1, 'test/f1-score': 0.9176470588235294, '_step': 149, '_wandb': {'runtime': 337}, '_runtime': 340.39124369621277, '_timestamp': 1680689237.7951498, 'test/recall': 0.9285714285714286}","{'eps': 0.1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.9, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 64, 'learning_rate': 0.01}",cosmic-sweep-15 +12,"{'test/f1-score': 0.8705882352941177, 'test/epoch_loss': 0.23811448697621623, 'train/epoch_acc': 0.968058968058968, 'train/batch_loss': 0.21692615747451785, 'train/epoch_loss': 0.09628425111664636, 'test/recall': 0.8222222222222222, 'test/epoch_acc': 0.8777777777777778, 'test/precision': 0.925, '_step': 2059, 'epoch': 9, '_wandb': {'runtime': 356}, '_runtime': 359.0396990776062, '_timestamp': 1680688886.363035}","{'eps': 0.1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.5, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 4, 'learning_rate': 0.001}",stilted-sweep-14 +13,"{'_wandb': {'runtime': 333}, '_runtime': 336.5640392303467, 'test/recall': 0.9, 'test/f1-score': 0.9278350515463918, 'test/epoch_acc': 0.9222222222222224, 'train/epoch_loss': 0.007631345846546077, '_step': 149, 'epoch': 9, 'test/epoch_loss': 0.16714997291564945, 'train/epoch_acc': 1, 'train/batch_loss': 0.007201554253697395, '_timestamp': 1680688517.0028613, 'test/precision': 0.9574468085106383}","{'eps': 0.1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.999, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 64, 'learning_rate': 0.01}",frosty-sweep-13 +14,"{'_timestamp': 1680688162.2054858, 'test/recall': 0.8181818181818182, 'test/epoch_acc': 0.8777777777777778, 'train/batch_loss': 0.27152174711227417, 'train/epoch_acc': 0.9496314496314496, '_step': 529, 'epoch': 9, '_wandb': {'runtime': 328}, '_runtime': 331.98337984085083, 'test/f1-score': 0.8674698795180724, 'test/precision': 0.9230769230769232, 'test/epoch_loss': 0.32556109494633145, 'train/epoch_loss': 0.17368088453934877}","{'eps': 0.1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.5, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 16, 'learning_rate': 0.001}",young-sweep-12 +15,"{'test/f1-score': 0.7311827956989247, 'train/epoch_acc': 0.7469287469287469, 'epoch': 9, '_wandb': {'runtime': 332}, '_timestamp': 1680687816.5057352, 'test/recall': 0.8292682926829268, 'test/epoch_acc': 0.7222222222222222, 'test/precision': 0.6538461538461539, 'test/epoch_loss': 0.5193446947468652, 'train/batch_loss': 0.3307788372039795, '_step': 1039, '_runtime': 335.6552822589874, 'train/epoch_loss': 0.5277571982775039}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.5, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 8, 'learning_rate': 0.1}",sandy-sweep-11 +16,"{'train/epoch_acc': 1, 'train/epoch_loss': 0.003708146820279612, 'epoch': 9, '_wandb': {'runtime': 334}, '_timestamp': 1680687470.9289024, 'test/f1-score': 0.853932584269663, 'test/precision': 0.8085106382978723, 'test/epoch_loss': 0.4616309046745301, '_step': 149, '_runtime': 336.80703043937683, 'test/recall': 0.9047619047619048, 'test/epoch_acc': 0.8555555555555556, 'train/batch_loss': 0.0030224076472222805}","{'eps': 0.1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 64, 'learning_rate': 0.1}",laced-sweep-10 +17,"{'_step': 422, 'epoch': 7, '_runtime': 265.48077392578125, 'train/epoch_acc': 0.5331695331695332, 'train/batch_loss': 9.74098777770996, 'train/epoch_loss': 9.16968992828444, '_wandb': {'runtime': 265}, '_timestamp': 1680687113.1220188, 'test/recall': 0.08888888888888889, 'test/f1-score': 0.14035087719298245, 'test/epoch_acc': 0.45555555555555555, 'test/precision': 0.3333333333333333, 'test/epoch_loss': 11610.708938450283}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.9, 'optimizer': 'adam', 'step_size': 2, 'batch_size': 16, 'learning_rate': 0.1}",jumping-sweep-9 +18,"{'_step': 529, '_runtime': 330.36346793174744, '_timestamp': 1680686834.80723, 'test/recall': 0.803921568627451, 'test/f1-score': 0.845360824742268, 'train/epoch_acc': 0.8955773955773956, 'train/epoch_loss': 0.3055295220024756, 'epoch': 9, '_wandb': {'runtime': 327}, 'test/epoch_acc': 0.8333333333333334, 'test/precision': 0.8913043478260869, 'test/epoch_loss': 0.3831123087141249, 'train/batch_loss': 0.34334877133369446}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.5, 'optimizer': 'sgd', 'step_size': 7, 'batch_size': 16, 'learning_rate': 0.0003}",dutiful-sweep-8 +19,"{'epoch': 2, '_runtime': 99.40804982185364, '_timestamp': 1680686491.634724, 'test/recall': 1, 'test/epoch_acc': 0.45555555555555555, 'train/epoch_acc': 0.484029484029484, 'train/batch_loss': 'NaN', '_step': 157, '_wandb': {'runtime': 99}, 'test/f1-score': 0.6259541984732825, 'test/precision': 0.45555555555555555, 'test/epoch_loss': 6.554853016439314e+29, 'train/epoch_loss': 'NaN'}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.5, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 16, 'learning_rate': 0.1}",olive-sweep-7 +20,"{'_timestamp': 1680686383.3591404, 'test/epoch_acc': 0.8666666666666667, 'test/precision': 0.851063829787234, 'train/epoch_loss': 0.3219767680771521, 'test/recall': 0.8888888888888888, 'test/f1-score': 0.8695652173913044, 'test/epoch_loss': 0.35141510632303025, 'train/epoch_acc': 0.9103194103194104, '_step': 279, 'epoch': 9, '_wandb': {'runtime': 334}, '_runtime': 337.17863941192627, 'train/batch_loss': 0.3707323968410492}","{'eps': 0.1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.9, 'optimizer': 'adam', 'step_size': 2, 'batch_size': 32, 'learning_rate': 0.001}",good-sweep-6 +21,"{'train/batch_loss': 0.7027227878570557, 'epoch': 9, '_wandb': {'runtime': 342}, '_runtime': 344.80718994140625, 'test/recall': 0.6938775510204082, 'test/f1-score': 0.6601941747572815, 'train/epoch_acc': 0.5196560196560196, '_step': 149, '_timestamp': 1680686028.304971, 'test/epoch_acc': 0.6111111111111112, 'test/precision': 0.6296296296296297, 'test/epoch_loss': 0.6818753732575311, 'train/epoch_loss': 0.6907664721955246}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.9, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 64, 'learning_rate': 0.0003}",summer-sweep-5 +22,"{'train/batch_loss': 0.15035715699195862, 'train/epoch_loss': 0.10497688309859292, 'epoch': 9, '_wandb': {'runtime': 331}, '_runtime': 333.9663326740265, 'test/recall': 0.8717948717948718, 'test/epoch_acc': 0.9222222222222224, 'train/epoch_acc': 0.9864864864864864, '_step': 529, '_timestamp': 1680685671.7387648, 'test/f1-score': 0.9066666666666668, 'test/precision': 0.9444444444444444, 'test/epoch_loss': 0.22382020586066775}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.9, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 16, 'learning_rate': 0.001}",firm-sweep-4 +23,"{'_timestamp': 1680685319.453976, 'test/recall': 0.925, 'epoch': 9, '_wandb': {'runtime': 333}, '_runtime': 335.79468297958374, 'test/precision': 0.4868421052631579, 'test/epoch_loss': 0.6597137530644734, 'train/epoch_acc': 0.5909090909090909, 'train/batch_loss': 0.652446985244751, 'train/epoch_loss': 0.6564877619028677, '_step': 149, 'test/f1-score': 0.6379310344827587, 'test/epoch_acc': 0.5333333333333333}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.999, 'optimizer': 'sgd', 'step_size': 3, 'batch_size': 64, 'learning_rate': 0.0001}",genial-sweep-3 +24,"{'test/epoch_loss': 0.5467572536733415, 'train/batch_loss': 0.5583129525184631, '_wandb': {'runtime': 329}, 'test/recall': 0.9736842105263158, 'test/epoch_acc': 0.7444444444444445, '_timestamp': 1680684975.004809, 'test/f1-score': 0.7628865979381443, 'test/precision': 0.6271186440677966, 'train/epoch_acc': 0.7899262899262899, 'train/epoch_loss': 0.4703364581675143, '_step': 529, 'epoch': 9, '_runtime': 331.50625491142273}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.9, 'optimizer': 'sgd', 'step_size': 7, 'batch_size': 16, 'learning_rate': 0.1}",fine-sweep-2 +25,"{'test/epoch_acc': 0.9, 'test/precision': 0.9069767441860463, 'train/epoch_acc': 0.9987714987714988, 'train/batch_loss': 0.005764181260019541, '_step': 529, '_runtime': 450.5545320510864, '_timestamp': 1680684633.811369, 'test/f1-score': 0.896551724137931, 'train/epoch_loss': 0.007131033717467008, 'epoch': 9, '_wandb': {'runtime': 447}, 'test/recall': 0.8863636363636364, 'test/epoch_loss': 0.30911533037821454}","{'eps': 1e-08, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.9, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 16, 'learning_rate': 0.01}",visionary-sweep-1 +26,"{'_step': 239, '_wandb': {'runtime': 83}, '_runtime': 83.58446168899536, 'test/recall': 0.9047619047619048, 'test/precision': 0.8444444444444444, 'train/epoch_acc': 0.8931203931203932, 'train/batch_loss': 0.08615076541900635, 'train/epoch_loss': 0.2428556958016658, 'epoch': 1, '_timestamp': 1680629962.8990817, 'test/f1-score': 0.8735632183908046, 'test/epoch_acc': 0.8777777777777778, 'test/epoch_loss': 0.29840316110187104}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.9, 'optimizer': 'adam', 'step_size': 2, 'batch_size': 8, 'learning_rate': 0.1}",stoic-sweep-14 +27,"{'test/epoch_loss': 0.20102048052681817, 'train/batch_loss': 0.10338585078716278, '_wandb': {'runtime': 347}, 'test/recall': 0.975, 'test/f1-score': 0.951219512195122, 'test/epoch_acc': 0.9555555555555556, 'test/precision': 0.9285714285714286, 'train/epoch_loss': 0.1163152276517718, '_step': 149, 'epoch': 9, '_runtime': 348.9410927295685, '_timestamp': 1680629872.8401277, 'train/epoch_acc': 0.9803439803439804}","{'eps': 0.1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.5, 'optimizer': 'sgd', 'step_size': 2, 'batch_size': 64, 'learning_rate': 0.01}",rich-sweep-13 +28,"{'train/epoch_acc': 0.5282555282555282, 'train/batch_loss': 82027960.0, 'train/epoch_loss': 60563307.6520902, 'epoch': 3, 'test/recall': 0.9111111111111112, 'test/f1-score': 0.6721311475409836, 'test/precision': 0.5324675324675324, 'test/epoch_acc': 0.5555555555555556, 'test/epoch_loss': 3.395405118153546e+20, '_step': 210, '_wandb': {'runtime': 135}, '_runtime': 132.22715950012207, '_timestamp': 1680629513.1781075}","{'eps': 1e-08, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.5, 'optimizer': 'adam', 'step_size': 7, 'batch_size': 16, 'learning_rate': 0.003}",smooth-sweep-12 +29,"{'_timestamp': 1680629374.0562296, 'test/epoch_acc': 0.6333333333333333, 'train/batch_loss': 0.5836847424507141, 'train/epoch_loss': 0.6072891213970044, '_step': 279, '_wandb': {'runtime': 326}, '_runtime': 327.2181556224823, 'test/recall': 0.8888888888888888, 'test/f1-score': 0.6597938144329897, 'test/precision': 0.5245901639344263, 'test/epoch_loss': 0.6240786300765143, 'train/epoch_acc': 0.7469287469287469, 'epoch': 9}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.5, 'optimizer': 'sgd', 'step_size': 2, 'batch_size': 32, 'learning_rate': 0.0003}",resilient-sweep-11 +30,"{'_step': 529, 'epoch': 9, '_runtime': 332.23273372650146, 'test/f1-score': 0.8958333333333334, 'test/epoch_acc': 0.888888888888889, 'test/precision': 0.9772727272727272, 'test/epoch_loss': 0.2657569663392173, 'train/batch_loss': 0.13025684654712677, 'train/epoch_loss': 0.12745249926751018, '_wandb': {'runtime': 330}, '_timestamp': 1680629038.456323, 'test/recall': 0.8269230769230769, 'train/epoch_acc': 0.9717444717444718}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.999, 'optimizer': 'sgd', 'step_size': 3, 'batch_size': 16, 'learning_rate': 0.001}",serene-sweep-10 +31,"{'test/epoch_loss': 0.23338710864384968, 'train/epoch_loss': 0.2116023584907412, '_wandb': {'runtime': 334}, '_timestamp': 1680628699.1189623, 'test/precision': 0.972972972972973, 'test/recall': 0.8372093023255814, 'test/f1-score': 0.9, 'test/epoch_acc': 0.9111111111111112, 'train/epoch_acc': 0.9275184275184276, 'train/batch_loss': 0.11391787976026536, '_step': 1039, 'epoch': 9, '_runtime': 335.94198656082153}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.5, 'optimizer': 'sgd', 'step_size': 7, 'batch_size': 8, 'learning_rate': 0.0003}",cool-sweep-9 +32,"{'_step': 529, 'epoch': 9, '_timestamp': 1680628351.790065, 'test/f1-score': 0.7959183673469388, 'test/epoch_acc': 0.7777777777777778, 'test/epoch_loss': 0.5824494547314114, 'train/epoch_acc': 0.7702702702702703, '_wandb': {'runtime': 326}, '_runtime': 327.29265093803406, 'test/recall': 0.8863636363636364, 'test/precision': 0.7222222222222222, 'train/batch_loss': 0.5777762532234192, 'train/epoch_loss': 0.6034659886828805}","{'eps': 0.1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.999, 'optimizer': 'sgd', 'step_size': 2, 'batch_size': 16, 'learning_rate': 0.0001}",lilac-sweep-8 +33,"{'_step': 149, '_wandb': {'runtime': 335}, '_timestamp': 1680628016.5942774, 'test/recall': 0.8048780487804879, 'test/f1-score': 0.717391304347826, 'train/epoch_loss': 0.618001790392311, 'train/batch_loss': 0.5935282111167908, 'epoch': 9, '_runtime': 337.11313247680664, 'test/epoch_acc': 0.7111111111111111, 'test/precision': 0.6470588235294118, 'test/epoch_loss': 0.6369305915302701, 'train/epoch_acc': 0.7199017199017199}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.999, 'optimizer': 'adam', 'step_size': 7, 'batch_size': 64, 'learning_rate': 0.001}",warm-sweep-7 +34,"{'_step': 2059, 'test/f1-score': 0.6857142857142857, 'test/precision': 0.6, 'test/epoch_loss': 0.6619265423880683, 'train/batch_loss': 0.6662057638168335, 'epoch': 9, '_wandb': {'runtime': 354}, '_runtime': 355.7423675060272, '_timestamp': 1680627667.6215644, 'test/recall': 0.8, 'test/epoch_acc': 0.6333333333333333, 'train/epoch_acc': 0.6498771498771498, 'train/epoch_loss': 0.6663250732773353}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.999, 'optimizer': 'adam', 'step_size': 7, 'batch_size': 4, 'learning_rate': 0.0001}",giddy-sweep-6 +35,"{'epoch': 9, '_runtime': 344.59358406066895, '_timestamp': 1680627305.434523, 'test/precision': 0.7407407407407407, 'train/batch_loss': 0.6531811356544495, 'train/epoch_loss': 0.6398702088093582, 'train/epoch_acc': 0.7125307125307125, '_step': 149, '_wandb': {'runtime': 343}, 'test/recall': 0.8163265306122449, 'test/f1-score': 0.7766990291262137, 'test/epoch_acc': 0.7444444444444445, 'test/epoch_loss': 0.6307997491624621}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.5, 'optimizer': 'sgd', 'step_size': 7, 'batch_size': 64, 'learning_rate': 0.0001}",stellar-sweep-5 +36,"{'test/recall': 0.8461538461538461, 'test/epoch_acc': 0.9222222222222224, 'test/precision': 0.9705882352941176, 'test/epoch_loss': 0.1906787835785912, 'train/epoch_acc': 0.9975429975429976, '_step': 1039, '_runtime': 335.76391553878784, '_timestamp': 1680626951.0603056, 'train/batch_loss': 0.0006497434806078672, 'train/epoch_loss': 0.02095988139033052, 'epoch': 9, '_wandb': {'runtime': 334}, 'test/f1-score': 0.9041095890410958}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.9, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 8, 'learning_rate': 0.003}",olive-sweep-4 +37,"{'test/precision': 0.8222222222222222, 'test/epoch_loss': 0.27919367684258356, '_step': 149, 'epoch': 9, '_runtime': 333.64992809295654, 'test/recall': 0.925, 'test/f1-score': 0.8705882352941177, 'test/epoch_acc': 0.8777777777777778, '_wandb': {'runtime': 332}, '_timestamp': 1680626608.419389, 'train/epoch_acc': 0.984029484029484, 'train/batch_loss': 0.12675245106220245, 'train/epoch_loss': 0.11751884335528429}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.9, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 64, 'learning_rate': 0.003}",dazzling-sweep-3 +38,"{'test/recall': 0.6842105263157895, 'test/precision': 0.5306122448979592, '_wandb': {'runtime': 336}, '_runtime': 337.19885444641113, '_timestamp': 1680626264.5954974, 'test/epoch_acc': 0.6111111111111112, 'test/epoch_loss': 0.6708752089076572, 'train/epoch_acc': 0.6547911547911548, 'train/batch_loss': 0.5270536541938782, 'train/epoch_loss': 0.6389284106085868, '_step': 1039, 'epoch': 9, 'test/f1-score': 0.5977011494252874}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.99, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 8, 'learning_rate': 0.01}",kind-sweep-2 +39,"{'test/f1-score': 0.853932584269663, 'test/epoch_loss': 0.38614972366227046, 'train/epoch_acc': 0.8746928746928747, 'train/epoch_loss': 0.3516608065117782, '_step': 529, 'epoch': 9, '_runtime': 337.9836483001709, 'test/recall': 0.8636363636363636, 'train/batch_loss': 0.3848239779472351, '_wandb': {'runtime': 337}, '_timestamp': 1680625919.9645753, 'test/epoch_acc': 0.8555555555555556, 'test/precision': 0.8444444444444444}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.5, 'optimizer': 'adam', 'step_size': 5, 'batch_size': 16, 'learning_rate': 0.003}",morning-sweep-1 +40,"{'_runtime': 347.9354045391083, '_timestamp': 1680624250.2654595, 'test/recall': 0.8653846153846154, 'test/epoch_loss': 0.25786760796585845, 'train/batch_loss': 0.05631007254123688, 'train/epoch_loss': 0.02368298517580857, '_step': 2059, 'epoch': 9, '_wandb': {'runtime': 346}, 'test/f1-score': 0.9, 'test/epoch_acc': 0.888888888888889, 'test/precision': 0.9375, 'train/epoch_acc': 0.9975429975429976}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.999, 'optimizer': 'adam', 'step_size': 2, 'batch_size': 4, 'learning_rate': 0.1}",valiant-sweep-23 +41,"{'test/epoch_acc': 0.8444444444444444, 'test/epoch_loss': 0.490613665845659, 'train/epoch_acc': 0.8243243243243243, '_step': 1039, '_timestamp': 1680623895.362503, 'test/recall': 0.8936170212765957, 'test/f1-score': 0.8571428571428571, 'test/precision': 0.8235294117647058, 'train/batch_loss': 0.5639374256134033, 'train/epoch_loss': 0.48581602795996887, 'epoch': 9, '_wandb': {'runtime': 327}, '_runtime': 329.4802031517029}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.5, 'optimizer': 'sgd', 'step_size': 2, 'batch_size': 8, 'learning_rate': 0.0003}",earnest-sweep-22 +42,"{'test/epoch_acc': 0.9, 'test/precision': 0.8958333333333334, 'train/batch_loss': 0.06110217794775963, 'train/epoch_loss': 0.05107141801451289, 'epoch': 9, '_wandb': {'runtime': 326}, 'test/recall': 0.9148936170212766, 'test/f1-score': 0.9052631578947368, 'train/epoch_acc': 0.995085995085995, '_step': 149, '_runtime': 328.0050995349884, '_timestamp': 1680623556.4586525, 'test/epoch_loss': 0.2318242397573259}","{'eps': 1e-08, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 7, 'batch_size': 64, 'learning_rate': 0.003}",genial-sweep-21 +43,"{'_runtime': 327.10622239112854, 'test/f1-score': 0.780952380952381, 'test/epoch_acc': 0.7444444444444445, 'test/epoch_loss': 0.5943129923608568, 'train/batch_loss': 0.6166229844093323, 'train/epoch_loss': 0.5714027147914034, '_step': 149, 'epoch': 9, '_wandb': {'runtime': 325}, '_timestamp': 1680623221.0825984, 'test/recall': 0.8723404255319149, 'test/precision': 0.7068965517241379, 'train/epoch_acc': 0.7911547911547911}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 2, 'batch_size': 64, 'learning_rate': 0.001}",lemon-sweep-20 +44,"{'train/epoch_acc': 0.6277641277641277, 'train/epoch_loss': 0.6722187732302879, '_runtime': 331.60892701148987, 'test/recall': 0.7021276595744681, 'test/epoch_acc': 0.6, 'test/epoch_loss': 0.6746161646313138, 'test/f1-score': 0.6470588235294118, 'test/precision': 0.6, 'train/batch_loss': 0.7205827236175537, '_step': 1039, 'epoch': 9, '_wandb': {'runtime': 330}, '_timestamp': 1680622885.059607}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.9, 'optimizer': 'adam', 'step_size': 2, 'batch_size': 8, 'learning_rate': 0.0001}",ancient-sweep-19 +45,"{'train/epoch_loss': 0.0466749508011656, '_step': 2059, 'epoch': 9, 'test/recall': 0.8695652173913043, 'test/precision': 0.9302325581395348, 'test/epoch_loss': 0.24883262103216516, 'train/batch_loss': 0.015468262135982512, '_wandb': {'runtime': 347}, '_runtime': 348.9979507923126, '_timestamp': 1680622545.2735748, 'test/f1-score': 0.898876404494382, 'test/epoch_acc': 0.9, 'train/epoch_acc': 0.9877149877149876}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.9, 'optimizer': 'adam', 'step_size': 5, 'batch_size': 4, 'learning_rate': 0.01}",smart-sweep-18 +46,"{'train/epoch_acc': 0.9815724815724816, 'train/batch_loss': 0.007225348148494959, 'train/epoch_loss': 0.07856258183731457, '_step': 1039, 'epoch': 9, '_runtime': 329.3028633594513, '_timestamp': 1680622188.8210304, 'test/recall': 0.8536585365853658, '_wandb': {'runtime': 328}, 'test/f1-score': 0.8974358974358975, 'test/epoch_acc': 0.9111111111111112, 'test/precision': 0.945945945945946, 'test/epoch_loss': 0.2015038196825319}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.9, 'optimizer': 'sgd', 'step_size': 2, 'batch_size': 8, 'learning_rate': 0.003}",sleek-sweep-17 +47,"{'test/precision': 0.88, 'test/epoch_loss': 0.5843977000978258, 'train/epoch_acc': 0.828009828009828, 'train/batch_loss': 0.6047794222831726, '_wandb': {'runtime': 321}, 'test/recall': 0.8301886792452831, '_runtime': 323.3842430114746, '_timestamp': 1680621849.979658, 'test/f1-score': 0.8543689320388349, 'test/epoch_acc': 0.8333333333333334, 'train/epoch_loss': 0.5808350268101516, '_step': 279, 'epoch': 9}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.5, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 32, 'learning_rate': 0.0001}",winter-sweep-16 +48,"{'epoch': 9, '_runtime': 347.8050694465637, '_timestamp': 1680621511.323635, 'test/recall': 0.85, 'test/precision': 0.85, 'test/epoch_loss': 0.5281610590923164, 'train/epoch_acc': 0.995085995085995, 'train/batch_loss': 0.001602485659532249, 'train/epoch_loss': 0.029015880939893934, '_step': 2059, '_wandb': {'runtime': 346}, 'test/f1-score': 0.85, 'test/epoch_acc': 0.8666666666666667}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.999, 'optimizer': 'adam', 'step_size': 7, 'batch_size': 4, 'learning_rate': 0.1}",rare-sweep-15 +49,"{'_step': 2059, '_wandb': {'runtime': 346}, '_runtime': 347.7671456336975, 'test/recall': 0.8809523809523809, 'test/f1-score': 0.9135802469135802, 'test/epoch_acc': 0.9222222222222224, 'test/precision': 0.9487179487179488, 'train/batch_loss': 0.010366588830947876, 'epoch': 9, '_timestamp': 1680621147.5604067, 'test/epoch_loss': 0.22225395898438163, 'train/epoch_acc': 0.9864864864864864, 'train/epoch_loss': 0.04606454834343147}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 7, 'batch_size': 4, 'learning_rate': 0.001}",stoic-sweep-14 +50,"{'test/precision': 0.6428571428571429, 'test/epoch_loss': 0.661226307021247, 'train/epoch_acc': 0.6523341523341524, 'train/batch_loss': 0.6023905277252197, '_step': 2059, '_wandb': {'runtime': 351}, 'test/epoch_acc': 0.6888888888888889, 'test/recall': 0.675, 'test/f1-score': 0.6585365853658537, 'train/epoch_loss': 0.6673213337211703, 'epoch': 9, '_runtime': 352.6435329914093, '_timestamp': 1680620790.920825}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.999, 'optimizer': 'adam', 'step_size': 5, 'batch_size': 4, 'learning_rate': 0.0001}",glorious-sweep-13 +51,"{'epoch': 9, '_wandb': {'runtime': 329}, 'test/recall': 0.9574468085106383, 'test/f1-score': 0.9782608695652174, 'train/epoch_acc': 1, 'train/batch_loss': 0.004083937965333462, 'train/epoch_loss': 0.0071195896911716286, '_step': 149, '_runtime': 330.7649688720703, '_timestamp': 1680620431.024078, 'test/epoch_acc': 0.977777777777778, 'test/precision': 1, 'test/epoch_loss': 0.1352142873737547}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.999, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 64, 'learning_rate': 0.01}",chocolate-sweep-12 +52,"{'test/epoch_loss': 0.5375637359089321, 'train/epoch_acc': 0.800982800982801, '_step': 149, '_timestamp': 1680620092.0697718, 'test/recall': 0.926829268292683, 'test/f1-score': 0.8636363636363636, 'test/epoch_acc': 0.8666666666666667, 'test/precision': 0.8085106382978723, 'train/batch_loss': 0.5299303531646729, 'train/epoch_loss': 0.5577488642652731, 'epoch': 9, '_wandb': {'runtime': 328}, '_runtime': 329.12984681129456}","{'eps': 0.1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.99, 'optimizer': 'adam', 'step_size': 5, 'batch_size': 64, 'learning_rate': 0.0003}",glowing-sweep-11 +53,"{'test/epoch_acc': 0.7555555555555555, 'test/precision': 0.7659574468085106, 'test/epoch_loss': 0.5337554746203952, 'train/epoch_loss': 0.46212616409072127, '_runtime': 324.3058567047119, '_timestamp': 1680619755.0191748, 'test/recall': 0.7659574468085106, 'test/f1-score': 0.7659574468085105, 'train/batch_loss': 0.5281365513801575, '_step': 279, 'epoch': 9, '_wandb': {'runtime': 322}, 'train/epoch_acc': 0.8611793611793611}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.5, 'optimizer': 'adam', 'step_size': 5, 'batch_size': 32, 'learning_rate': 0.003}",different-sweep-10 +54,"{'_step': 279, '_wandb': {'runtime': 325}, '_runtime': 327.0705659389496, 'train/epoch_loss': 0.5580001385557564, 'test/epoch_acc': 0.8555555555555556, 'test/precision': 0.7843137254901961, 'test/epoch_loss': 0.5470490535100301, 'train/epoch_acc': 0.8058968058968059, 'epoch': 9, '_timestamp': 1680619423.656795, 'test/recall': 0.9523809523809524, 'test/f1-score': 0.8602150537634408, 'train/batch_loss': 0.6183260083198547}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.999, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 32, 'learning_rate': 0.003}",lilac-sweep-9 +55,"{'test/recall': 0.7551020408163265, 'test/f1-score': 0.7956989247311828, 'test/epoch_acc': 0.788888888888889, 'train/epoch_acc': 0.773955773955774, 'train/batch_loss': 0.6300776600837708, '_step': 529, 'epoch': 9, '_wandb': {'runtime': 327}, 'train/epoch_loss': 0.46969629490990605, 'test/epoch_loss': 0.46168507006433274, '_runtime': 328.68579959869385, '_timestamp': 1680619089.5332966, 'test/precision': 0.8409090909090909}","{'eps': 0.1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 3, 'batch_size': 16, 'learning_rate': 0.1}",crimson-sweep-8 +56,"{'test/precision': 0.9375, 'test/epoch_loss': 0.44089303129391433, 'train/batch_loss': 0.011611333116889, 'epoch': 9, '_runtime': 350.2308712005615, 'test/f1-score': 0.8737864077669902, 'test/recall': 0.8181818181818182, 'test/epoch_acc': 0.8555555555555556, 'train/epoch_acc': 0.9938574938574938, 'train/epoch_loss': 0.02176519967463292, '_step': 2059, '_wandb': {'runtime': 349}, '_timestamp': 1680618753.2361271}","{'eps': 0.1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 7, 'batch_size': 4, 'learning_rate': 0.003}",still-sweep-7 +57,"{'train/epoch_loss': 0.02099113287724536, '_timestamp': 1680618396.0194488, 'test/f1-score': 0.8607594936708861, 'test/epoch_acc': 0.8777777777777778, 'test/precision': 0.85, 'train/batch_loss': 0.030084805563092232, 'test/epoch_loss': 0.24035142682841976, 'train/epoch_acc': 0.9938574938574938, '_step': 1039, 'epoch': 9, '_wandb': {'runtime': 333}, '_runtime': 334.69481587409973, 'test/recall': 0.8717948717948718}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.999, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 8, 'learning_rate': 0.01}",charmed-sweep-6 +58,"{'train/epoch_acc': 0.9963144963144964, 'train/batch_loss': 0.001848929445259273, 'train/epoch_loss': 0.010693324584853135, '_wandb': {'runtime': 335}, '_runtime': 336.1621870994568, 'test/recall': 0.8780487804878049, 'test/f1-score': 0.8674698795180722, 'test/precision': 0.8571428571428571, '_step': 1039, 'epoch': 9, '_timestamp': 1680618051.044084, 'test/epoch_acc': 0.8777777777777778, 'test/epoch_loss': 0.5385394818252988}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.9, 'optimizer': 'adam', 'step_size': 7, 'batch_size': 8, 'learning_rate': 0.0003}",restful-sweep-5 +59,"{'test/recall': 0.8409090909090909, 'test/f1-score': 0.8409090909090909, 'test/epoch_acc': 0.8444444444444444, '_wandb': {'runtime': 333}, '_timestamp': 1680617708.075962, '_runtime': 334.4848310947418, 'test/precision': 0.8409090909090909, 'test/epoch_loss': 0.6238909363746643, 'train/epoch_acc': 1, 'train/batch_loss': 0.004928763955831528, 'train/epoch_loss': 0.004462716538065481, '_step': 149, 'epoch': 9}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.5, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 64, 'learning_rate': 0.1}",proud-sweep-4 +60,"{'_step': 149, 'epoch': 9, '_wandb': {'runtime': 337}, 'test/f1-score': 0.4778761061946903, 'test/precision': 0.35064935064935066, 'train/epoch_acc': 0.5626535626535626, 'train/epoch_loss': 0.6796711432845938, '_runtime': 338.4922821521759, '_timestamp': 1680617365.2791553, 'test/recall': 0.75, 'test/epoch_acc': 0.34444444444444444, 'test/epoch_loss': 0.7233364171451993, 'train/batch_loss': 0.6750851273536682}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.5, 'optimizer': 'sgd', 'step_size': 2, 'batch_size': 64, 'learning_rate': 0.0001}",visionary-sweep-3 +61,"{'epoch': 3, '_wandb': {'runtime': 132}, '_runtime': 129.48883533477783, 'test/f1-score': 0.59375, 'test/epoch_acc': 0.4222222222222222, 'test/precision': 0.4222222222222222, 'train/epoch_acc': 0.5147420147420148, 'train/batch_loss': 1.2695436477661133, '_step': 110, '_timestamp': 1680617007.4126654, 'test/recall': 1, 'test/epoch_loss': 109.22879723442924, 'train/epoch_loss': 3.225923076601521}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.99, 'optimizer': 'adam', 'step_size': 2, 'batch_size': 32, 'learning_rate': 0.1}",splendid-sweep-2 +62,"{'test/precision': 0.7755102040816326, 'test/epoch_loss': 0.6018742865986294, 'train/epoch_loss': 0.5949591096554693, '_step': 1039, 'epoch': 9, 'test/recall': 0.8636363636363636, 'test/f1-score': 0.8172043010752688, 'test/epoch_acc': 0.8111111111111111, '_wandb': {'runtime': 372}, '_runtime': 373.84231185913086, '_timestamp': 1680616870.0621138, 'train/epoch_acc': 0.7727272727272727, 'train/batch_loss': 0.563504695892334}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 3, 'batch_size': 8, 'learning_rate': 0.0001}",snowy-sweep-1 +63,"{'epoch': 9, '_wandb': {'runtime': 327}, 'test/precision': 0.625, 'train/epoch_acc': 0.5552825552825553, 'train/epoch_loss': 0.684732110699506, '_step': 529, '_runtime': 333.6077947616577, '_timestamp': 1678798635.5359335, 'test/recall': 0.5813953488372093, 'test/f1-score': 0.6024096385542168, 'test/epoch_acc': 0.6333333333333333, 'test/epoch_loss': 0.6787986318270366, 'train/batch_loss': 0.7118003964424133}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.5, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 16, 'learning_rate': 0.0001}",comic-sweep-38 +64,"{'_step': 149, 'test/epoch_acc': 0.888888888888889, 'test/precision': 0.8, 'train/epoch_acc': 1, 'test/epoch_loss': 0.5120628664890925, 'train/batch_loss': 0.0015535189304500818, 'epoch': 9, '_wandb': {'runtime': 337}, '_runtime': 342.7867271900177, '_timestamp': 1678798288.876002, 'test/recall': 1, 'test/f1-score': 0.888888888888889, 'train/epoch_loss': 0.001254009526264133}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.999, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 64, 'learning_rate': 0.1}",magic-sweep-37 +65,"{'test/epoch_loss': 0.6593369828330146, '_step': 279, '_wandb': {'runtime': 332}, '_runtime': 338.4290623664856, '_timestamp': 1678797929.8979273, 'test/recall': 0.6341463414634146, 'test/f1-score': 0.6190476190476191, 'test/epoch_acc': 0.6444444444444445, 'train/epoch_acc': 0.6572481572481572, 'train/batch_loss': 0.6705241203308105, 'epoch': 9, 'test/precision': 0.6046511627906976, 'train/epoch_loss': 0.659313001562395}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.9, 'optimizer': 'adam', 'step_size': 7, 'batch_size': 32, 'learning_rate': 0.0003}",azure-sweep-36 +66,"{'test/precision': 0.9591836734693876, 'train/epoch_acc': 0.7911547911547911, 'train/batch_loss': 0.5475739240646362, 'epoch': 9, '_wandb': {'runtime': 343}, 'test/recall': 0.8703703703703703, 'test/f1-score': 0.912621359223301, 'test/epoch_acc': 0.9, '_step': 1039, '_runtime': 349.1018385887146, '_timestamp': 1678797575.4461255, 'test/epoch_loss': 0.5167779392666287, 'train/epoch_loss': 0.542006236622316}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.99, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 8, 'learning_rate': 0.001}",easy-sweep-35 +67,"{'_timestamp': 1678797212.2311337, 'test/f1-score': 0.8611111111111112, 'test/epoch_loss': 0.27850865055532065, 'train/batch_loss': 4.9947026127483696e-05, 'train/epoch_loss': 0.012833298822080874, 'train/epoch_acc': 0.9987714987714988, '_step': 2059, 'epoch': 9, '_wandb': {'runtime': 362}, '_runtime': 367.9372293949127, 'test/recall': 0.8611111111111112, 'test/epoch_acc': 0.888888888888889, 'test/precision': 0.8611111111111112}","{'eps': 0.1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.9, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 4, 'learning_rate': 0.003}",usual-sweep-34 +68,"{'_step': 529, 'test/f1-score': 0.903846153846154, 'test/epoch_acc': 0.888888888888889, 'test/precision': 0.8392857142857143, 'train/epoch_acc': 0.9742014742014742, 'test/epoch_loss': 0.6554473309053315, 'train/batch_loss': 0.17918632924556732, 'train/epoch_loss': 0.07036763163974523, 'epoch': 9, '_wandb': {'runtime': 330}, '_runtime': 335.99687933921814, '_timestamp': 1678796827.8409674, 'test/recall': 0.9791666666666666}","{'eps': 1e-08, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.5, 'optimizer': 'adam', 'step_size': 5, 'batch_size': 16, 'learning_rate': 0.0003}",polar-sweep-33 +69,"{'_step': 149, '_runtime': 336.63737440109253, '_timestamp': 1678796468.9253614, 'test/recall': 0.8648648648648649, 'test/precision': 0.64, 'train/epoch_acc': 0.8660933660933661, 'train/epoch_loss': 0.47513497564072105, 'epoch': 9, '_wandb': {'runtime': 330}, 'test/f1-score': 0.7356321839080459, 'test/epoch_acc': 0.7444444444444445, 'test/epoch_loss': 0.5271965821584066, 'train/batch_loss': 0.4695126414299011}","{'eps': 0.1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.5, 'optimizer': 'sgd', 'step_size': 2, 'batch_size': 64, 'learning_rate': 0.001}",still-sweep-32 +70,"{'_runtime': 378.4032835960388, '_timestamp': 1678796117.3062005, 'test/epoch_acc': 0.888888888888889, 'test/precision': 0.9428571428571428, 'train/epoch_acc': 0.9705159705159704, 'train/batch_loss': 0.711412787437439, '_step': 2059, 'epoch': 9, '_wandb': {'runtime': 372}, 'test/recall': 0.8048780487804879, 'test/f1-score': 0.868421052631579, 'test/epoch_loss': 0.2378266812198692, 'train/epoch_loss': 0.09577267487700432}","{'eps': 0.1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.5, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 4, 'learning_rate': 0.001}",misty-sweep-31 +71,"{'train/epoch_acc': 0.9926289926289926, 'train/epoch_loss': 0.05967479737370254, '_step': 529, 'epoch': 9, '_runtime': 336.8808288574219, 'test/recall': 0.8260869565217391, 'test/f1-score': 0.8636363636363636, 'test/precision': 0.9047619047619048, '_wandb': {'runtime': 333}, '_timestamp': 1678795725.918603, 'test/epoch_acc': 0.8666666666666667, 'test/epoch_loss': 0.27924135790930854, 'train/batch_loss': 0.04936826974153519}","{'eps': 1e-08, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.9, 'optimizer': 'sgd', 'step_size': 7, 'batch_size': 16, 'learning_rate': 0.001}",flowing-sweep-30 +72,"{'epoch': 9, 'test/recall': 0.851063829787234, 'test/epoch_loss': 0.37525106337335373, 'train/epoch_acc': 0.8722358722358722, 'train/batch_loss': 0.4592914581298828, 'train/epoch_loss': 0.3784469199122024, 'test/precision': 0.9523809523809524, '_step': 279, '_wandb': {'runtime': 336}, '_runtime': 339.73244285583496, '_timestamp': 1678795319.518895, 'test/f1-score': 0.898876404494382, 'test/epoch_acc': 0.9}","{'eps': 0.1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.9, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 32, 'learning_rate': 0.001}",deep-sweep-28 +73,"{'test/precision': 0.7575757575757576, 'train/epoch_acc': 0.7899262899262899, 'train/epoch_loss': 0.5319552311733255, '_wandb': {'runtime': 377}, '_timestamp': 1678794965.2675128, 'test/recall': 0.625, 'test/f1-score': 0.6849315068493151, 'test/epoch_acc': 0.7444444444444445, 'test/epoch_loss': 0.5484810524516636, 'train/batch_loss': 0.6763702630996704, '_step': 2059, 'epoch': 9, '_runtime': 381.0768678188324}","{'eps': 0.1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.5, 'optimizer': 'adam', 'step_size': 5, 'batch_size': 4, 'learning_rate': 0.0001}",glorious-sweep-27 +74,"{'epoch': 9, '_runtime': 338.11463618278503, 'test/recall': 0.813953488372093, 'test/precision': 0.7142857142857143, 'train/epoch_loss': 0.2699748155379471, '_step': 529, '_timestamp': 1678794572.9156363, 'test/f1-score': 0.7608695652173914, 'test/epoch_acc': 0.7555555555555555, 'test/epoch_loss': 0.5729872869120703, 'train/epoch_acc': 0.8968058968058967, 'train/batch_loss': 0.4391788542270661, '_wandb': {'runtime': 334}}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.9, 'optimizer': 'sgd', 'step_size': 2, 'batch_size': 16, 'learning_rate': 0.1}",stoic-sweep-26 +75,"{'test/epoch_loss': 0.3083995895563728, 'train/epoch_acc': 0.9877149877149876, 'train/batch_loss': 0.025906365364789963, '_step': 2059, 'epoch': 9, 'test/f1-score': 0.8666666666666666, 'test/epoch_acc': 0.8666666666666667, 'test/precision': 0.8478260869565217, 'train/epoch_loss': 0.04955068614813831, '_wandb': {'runtime': 377}, '_runtime': 380.8983037471771, '_timestamp': 1678794222.848524, 'test/recall': 0.8863636363636364}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.999, 'optimizer': 'adam', 'step_size': 7, 'batch_size': 4, 'learning_rate': 0.01}",vibrant-sweep-25 +76,"{'_step': 149, '_wandb': {'runtime': 340}, '_runtime': 343.4739582538605, 'test/f1-score': 0.8867924528301887, 'test/precision': 0.8545454545454545, 'test/epoch_loss': 0.7976957665549385, 'train/batch_loss': 0.0010389955714344978, 'train/epoch_loss': 0.002287556243378495, 'epoch': 9, '_timestamp': 1678793829.5489533, 'test/recall': 0.9215686274509804, 'test/epoch_acc': 0.8666666666666667, 'train/epoch_acc': 1}","{'eps': 0.1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.999, 'optimizer': 'adam', 'step_size': 5, 'batch_size': 64, 'learning_rate': 0.1}",valiant-sweep-24 +77,"{'_timestamp': 1678793464.5180786, 'test/f1-score': 0.8571428571428571, 'test/epoch_acc': 0.8555555555555556, 'test/epoch_loss': 0.4112878143787384, 'train/epoch_acc': 0.8857493857493858, 'epoch': 9, '_wandb': {'runtime': 340}, '_runtime': 344.0598545074463, 'train/batch_loss': 0.3762533664703369, 'train/epoch_loss': 0.3862068348493272, '_step': 149, 'test/recall': 0.8478260869565217, 'test/precision': 0.8666666666666667}","{'eps': 0.1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.999, 'optimizer': 'adam', 'step_size': 5, 'batch_size': 64, 'learning_rate': 0.001}",polished-sweep-23 +78,"{'_wandb': {'runtime': 336}, '_runtime': 339.41979336738586, 'test/epoch_acc': 0.6555555555555556, 'test/precision': 0.59375, 'test/epoch_loss': 0.6097042110231188, 'epoch': 9, '_timestamp': 1678793108.7606344, 'test/recall': 0.8837209302325582, 'test/f1-score': 0.7102803738317758, 'train/epoch_acc': 0.6756756756756757, 'train/batch_loss': 0.7007869482040405, 'train/epoch_loss': 0.6115244123215171, '_step': 529}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.999, 'optimizer': 'adam', 'step_size': 2, 'batch_size': 16, 'learning_rate': 0.01}",clear-sweep-22 +79,"{'test/precision': 0.9393939393939394, 'train/epoch_acc': 0.9815724815724816, 'train/batch_loss': 0.5061427354812622, '_runtime': 381.0477261543274, 'test/recall': 0.8157894736842105, 'test/f1-score': 0.8732394366197183, '_timestamp': 1678792758.596286, 'test/epoch_acc': 0.9, 'test/epoch_loss': 0.23743902287549443, 'train/epoch_loss': 0.07462231436439994, '_step': 2059, 'epoch': 9, '_wandb': {'runtime': 377}}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.99, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 4, 'learning_rate': 0.01}",sage-sweep-21 +80,"{'_step': 529, '_timestamp': 1678792364.5292609, 'test/f1-score': 0.8505747126436782, 'train/epoch_acc': 0.9791154791154792, 'train/epoch_loss': 0.12095561367287976, 'train/batch_loss': 0.24579545855522156, 'epoch': 9, '_wandb': {'runtime': 331}, '_runtime': 335.3731348514557, 'test/recall': 0.8043478260869565, 'test/epoch_acc': 0.8555555555555556, 'test/precision': 0.902439024390244, 'test/epoch_loss': 0.28035063776705}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.999, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 16, 'learning_rate': 0.001}",olive-sweep-20 +81,"{'test/epoch_acc': 0.9333333333333332, 'test/epoch_loss': 0.17397157057291932, 'train/epoch_acc': 0.995085995085995, '_step': 1039, 'epoch': 9, '_timestamp': 1678792015.2579195, 'test/recall': 0.9111111111111112, 'test/f1-score': 0.931818181818182, '_wandb': {'runtime': 337}, '_runtime': 340.5063774585724, 'test/precision': 0.9534883720930232, 'train/batch_loss': 0.0077079650945961475, 'train/epoch_loss': 0.018187719287696302}","{'eps': 0.1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 8, 'learning_rate': 0.003}",autumn-sweep-19 +82,"{'train/epoch_loss': 0.4784781006542412, '_step': 1039, 'epoch': 9, '_wandb': {'runtime': 344}, '_timestamp': 1678791661.9692383, 'test/f1-score': 0.7804878048780488, 'train/epoch_acc': 0.8218673218673218, 'train/batch_loss': 0.4317986071109772, '_runtime': 347.40152740478516, 'test/recall': 0.8205128205128205, 'test/epoch_acc': 0.8, 'test/precision': 0.7441860465116279, 'test/epoch_loss': 0.4940012666914198}","{'eps': 0.1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.999, 'optimizer': 'adam', 'step_size': 7, 'batch_size': 8, 'learning_rate': 0.0001}",crisp-sweep-18 +83,"{'_step': 279, 'epoch': 9, '_wandb': {'runtime': 335}, '_runtime': 337.956387758255, 'test/recall': 0.9090909090909092, 'test/f1-score': 0.9090909090909092, 'train/epoch_loss': 0.08830470366618558, '_timestamp': 1678791236.6172178, 'test/epoch_acc': 0.9111111111111112, 'test/precision': 0.9090909090909092, 'test/epoch_loss': 0.19624250796106127, 'train/epoch_acc': 0.9828009828009828, 'train/batch_loss': 0.15555259585380554}","{'eps': 0.1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.999, 'optimizer': 'adam', 'step_size': 2, 'batch_size': 32, 'learning_rate': 0.003}",deep-sweep-16 +84,"{'test/recall': 0.8775510204081632, 'test/epoch_loss': 0.6228035251299541, 'train/epoch_acc': 0.7493857493857494, 'train/batch_loss': 0.6377201080322266, '_step': 279, '_runtime': 334.2993712425232, '_timestamp': 1678790886.952144, 'test/f1-score': 0.7818181818181819, 'test/epoch_acc': 0.7333333333333334, 'test/precision': 0.7049180327868853, 'train/epoch_loss': 0.6127705679478751, 'epoch': 9, '_wandb': {'runtime': 331}}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 2, 'batch_size': 32, 'learning_rate': 0.0003}",confused-sweep-15 +85,"{'test/precision': 0.7192982456140351, 'test/epoch_loss': 0.6144241677390204, 'train/epoch_acc': 0.8415233415233415, 'train/batch_loss': 0.1340156048536301, 'train/epoch_loss': 0.3545121966840594, '_wandb': {'runtime': 342}, '_timestamp': 1678790542.286384, '_runtime': 345.0617377758026, 'test/recall': 0.8541666666666666, 'test/f1-score': 0.7809523809523811, 'test/epoch_acc': 0.7444444444444445, '_step': 529, 'epoch': 9}","{'eps': 1e-08, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 7, 'batch_size': 16, 'learning_rate': 0.1}",ancient-sweep-14 +86,"{'test/epoch_loss': 0.6392196734746297, '_runtime': 346.86587953567505, '_timestamp': 1678790183.7024884, '_wandb': {'runtime': 344}, 'test/recall': 0.782608695652174, 'test/f1-score': 0.7422680412371134, 'test/epoch_acc': 0.7222222222222222, 'test/precision': 0.7058823529411765, 'train/epoch_acc': 0.7457002457002457, '_step': 529, 'epoch': 9, 'train/batch_loss': 0.6280461549758911, 'train/epoch_loss': 0.6374555861334836}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.5, 'optimizer': 'adam', 'step_size': 7, 'batch_size': 16, 'learning_rate': 0.0003}",revived-sweep-13 +87,"{'_wandb': {'runtime': 348}, '_runtime': 350.9660577774048, '_timestamp': 1678789826.0085878, 'test/recall': 0.9111111111111112, 'train/epoch_acc': 0.9987714987714988, 'train/epoch_loss': 0.02119528235872196, '_step': 149, 'epoch': 9, 'test/f1-score': 0.9010989010989012, 'test/epoch_acc': 0.9, 'test/precision': 0.8913043478260869, 'test/epoch_loss': 0.24115624560250176, 'train/batch_loss': 0.04231283441185951}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.999, 'optimizer': 'adam', 'step_size': 2, 'batch_size': 64, 'learning_rate': 0.0003}",swift-sweep-12 +88,"{'_step': 2059, '_wandb': {'runtime': 393}, '_runtime': 397.1281135082245, '_timestamp': 1678789464.8040044, 'epoch': 9, 'test/recall': 0.8333333333333334, 'test/f1-score': 0.7894736842105262, 'test/epoch_acc': 0.8222222222222223, 'test/precision': 0.75, 'test/epoch_loss': 0.5769641452365452, 'train/epoch_acc': 0.757985257985258, 'train/batch_loss': 0.6127220392227173, 'train/epoch_loss': 0.5840219159676929}","{'eps': 0.1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.999, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 4, 'learning_rate': 0.0001}",rosy-sweep-11 +89,"{'_wandb': {'runtime': 352}, '_timestamp': 1678789057.5684297, 'test/f1-score': 0.8842105263157894, 'test/epoch_acc': 0.8777777777777778, 'train/epoch_acc': 0.9938574938574938, 'train/batch_loss': 0.11590295284986496, 'train/epoch_loss': 0.06967324825777176, '_step': 149, '_runtime': 355.46944642066956, 'test/recall': 0.8076923076923077, 'test/precision': 0.9767441860465116, 'test/epoch_loss': 0.2696530275874668, 'epoch': 9}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 7, 'batch_size': 64, 'learning_rate': 0.003}",deft-sweep-10 +90,"{'epoch': 9, '_wandb': {'runtime': 340}, '_runtime': 342.3234579563141, 'test/recall': 0.9069767441860463, 'test/f1-score': 0.7959183673469388, 'test/precision': 0.7090909090909091, 'test/epoch_loss': 0.6248881856600443, '_step': 279, 'train/batch_loss': 0.5820533037185669, 'train/epoch_acc': 0.7014742014742015, 'test/epoch_acc': 0.7777777777777778, 'train/epoch_loss': 0.6400203514450599, '_timestamp': 1678788683.006292}","{'eps': 0.1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.99, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 32, 'learning_rate': 0.0001}",atomic-sweep-9 +91,"{'_step': 1039, '_wandb': {'runtime': 351}, '_timestamp': 1678788328.1196988, 'test/f1-score': 0.693069306930693, 'test/epoch_loss': 0.6175267219543457, 'train/batch_loss': 0.3377891480922699, 'epoch': 9, '_runtime': 353.4816448688507, 'test/recall': 0.7954545454545454, 'test/epoch_acc': 0.6555555555555556, 'test/precision': 0.6140350877192983, 'train/epoch_acc': 0.7432432432432432, 'train/epoch_loss': 0.5329857344855841}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 7, 'batch_size': 8, 'learning_rate': 0.1}",cosmic-sweep-8 +92,"{'test/epoch_acc': 0.6666666666666667, 'test/epoch_loss': 0.6419186863634322, 'train/epoch_acc': 0.7186732186732187, 'train/batch_loss': 0.17200787365436554, 'epoch': 9, '_runtime': 392.4064960479736, '_timestamp': 1678787961.3400052, 'test/recall': 0.8536585365853658, 'train/epoch_loss': 0.5631518808058498, '_step': 2059, '_wandb': {'runtime': 390}, 'test/f1-score': 0.6999999999999998, 'test/precision': 0.5932203389830508}","{'eps': 1e-08, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.99, 'optimizer': 'adam', 'step_size': 7, 'batch_size': 4, 'learning_rate': 0.01}",lunar-sweep-7 +93,"{'_runtime': 345.9260220527649, 'test/recall': 0.8888888888888888, 'test/epoch_acc': 0.9, 'test/epoch_loss': 0.24278527200222016, 'train/epoch_acc': 0.9975429975429976, 'train/epoch_loss': 0.03237721893286529, 'epoch': 9, '_wandb': {'runtime': 343}, 'test/f1-score': 0.8988764044943819, 'test/precision': 0.9090909090909092, 'train/batch_loss': 0.04353119805455208, '_step': 529, '_timestamp': 1678787557.992564}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.5, 'optimizer': 'sgd', 'step_size': 2, 'batch_size': 16, 'learning_rate': 0.01}",zany-sweep-6 +94,"{'test/epoch_acc': 0.9111111111111112, 'test/epoch_loss': 0.32114719019995797, 'train/batch_loss': 0.21811823546886444, '_step': 529, 'epoch': 9, '_wandb': {'runtime': 344}, '_runtime': 346.5414688587189, '_timestamp': 1678787192.9954038, 'test/recall': 0.8571428571428571, 'test/f1-score': 0.9130434782608696, 'test/precision': 0.9767441860465116, 'train/epoch_acc': 0.9336609336609336, 'train/epoch_loss': 0.2347587838000103}","{'eps': 0.1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.9, 'optimizer': 'sgd', 'step_size': 3, 'batch_size': 16, 'learning_rate': 0.001}",absurd-sweep-5 +95,"{'train/epoch_loss': 0.02646600444977348, '_timestamp': 1678786835.7254088, 'test/precision': 0.9166666666666666, 'test/epoch_loss': 0.22436124781767527, 'train/epoch_acc': 1, 'test/recall': 0.8461538461538461, 'test/f1-score': 0.8799999999999999, 'test/epoch_acc': 0.9, 'train/batch_loss': 0.06225413456559181, '_step': 279, 'epoch': 9, '_wandb': {'runtime': 344}, '_runtime': 345.9469966888428}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 32, 'learning_rate': 0.003}",radiant-sweep-4 +96,"{'test/f1-score': 0.8045977011494252, 'test/precision': 0.7446808510638298, 'train/epoch_acc': 0.8341523341523341, 'epoch': 9, '_wandb': {'runtime': 353}, 'test/recall': 0.875, 'test/epoch_acc': 0.8111111111111111, 'test/epoch_loss': 0.4459853092829386, 'train/batch_loss': 0.5456343293190002, 'train/epoch_loss': 0.45506354690476775, '_step': 1039, '_runtime': 355.012455701828, '_timestamp': 1678786479.0865147}","{'eps': 0.1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.99, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 8, 'learning_rate': 0.0003}",sandy-sweep-3 +97,"{'test/epoch_loss': 0.31915653232071134, 'train/epoch_acc': 0.9926289926289926, 'train/epoch_loss': 0.045762457081668206, '_wandb': {'runtime': 342}, '_runtime': 344.01046657562256, 'test/recall': 0.7894736842105263, 'test/f1-score': 0.8450704225352113, 'test/precision': 0.9090909090909092, '_step': 529, 'epoch': 9, '_timestamp': 1678786112.108075, 'test/epoch_acc': 0.8777777777777778, 'train/batch_loss': 0.026765840128064156}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.5, 'optimizer': 'sgd', 'step_size': 2, 'batch_size': 16, 'learning_rate': 0.01}",pretty-sweep-2 +98,"{'_runtime': 359.66486382484436, 'test/f1-score': 0.379746835443038, 'test/precision': 0.42857142857142855, 'test/epoch_loss': 0.7006691349877252, 'train/batch_loss': 0.7150550484657288, '_step': 149, 'epoch': 9, '_wandb': {'runtime': 357}, '_timestamp': 1678785758.376562, 'test/recall': 0.3409090909090909, 'test/epoch_acc': 0.45555555555555555, 'train/epoch_acc': 0.4815724815724816, 'train/epoch_loss': 0.7011552195291262}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.99, 'optimizer': 'adam', 'step_size': 5, 'batch_size': 64, 'learning_rate': 0.0003}",rose-sweep-1 +99,"{'_timestamp': 1678785370.5563953, 'test/recall': 0.9090909090909092, 'train/epoch_acc': 0.995085995085995, 'train/epoch_loss': 0.023103852647056927, '_step': 74, '_runtime': 180.05384421348572, 'test/f1-score': 0.8791208791208791, 'test/epoch_acc': 0.8777777777777778, 'test/precision': 0.851063829787234, 'test/epoch_loss': 0.5091631063156657, 'train/batch_loss': 0.0016211483161896467, 'epoch': 4, '_wandb': {'runtime': 181}}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.5, 'optimizer': 'sgd', 'step_size': 3, 'batch_size': 64, 'learning_rate': 0.1}",cosmic-sweep-2 +100,"{'test/f1-score': 0.9166666666666666, 'test/epoch_acc': 0.9111111111111112, 'test/precision': 0.9166666666666666, 'test/epoch_loss': 0.2461573594146305, 'train/epoch_acc': 0.9828009828009828, 'train/batch_loss': 0.0724378228187561, '_step': 279, 'test/recall': 0.9166666666666666, '_runtime': 347.11417746543884, '_timestamp': 1678743707.9633043, 'train/epoch_loss': 0.11044558714297244, 'epoch': 9, '_wandb': {'runtime': 344}}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.9, 'optimizer': 'sgd', 'step_size': 3, 'batch_size': 32, 'learning_rate': 0.003}",ethereal-sweep-14 +101,"{'_timestamp': 1678743349.8008895, 'test/recall': 0.9130434782608696, 'test/f1-score': 0.9333333333333332, 'test/epoch_acc': 0.9333333333333332, 'test/precision': 0.9545454545454546, 'test/epoch_loss': 0.16449517243438297, '_step': 149, '_runtime': 349.69085454940796, 'train/epoch_loss': 0.043383844352398226, 'train/epoch_acc': 1, 'train/batch_loss': 0.05796322599053383, 'epoch': 9, '_wandb': {'runtime': 346}}","{'eps': 1e-08, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 7, 'batch_size': 64, 'learning_rate': 0.003}",northern-sweep-13 +102,"{'epoch': 9, 'test/precision': 0.723404255319149, 'train/epoch_loss': 0.40511614706651, '_step': 2059, '_wandb': {'runtime': 559}, '_runtime': 560.5539684295654, '_timestamp': 1678743376.8770983, 'test/recall': 0.85, 'test/f1-score': 0.7816091954022989, 'test/epoch_acc': 0.788888888888889, 'test/epoch_loss': 0.5102662573258082, 'train/epoch_acc': 0.8255528255528255, 'train/batch_loss': 0.42048144340515137}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.999, 'optimizer': 'adam', 'step_size': 5, 'batch_size': 4, 'learning_rate': 0.001}",faithful-sweep-12 +103,"{'epoch': 9, '_wandb': {'runtime': 355}, '_timestamp': 1678742986.9751594, 'test/epoch_loss': 0.3378064884079827, 'train/epoch_acc': 0.8955773955773956, '_step': 1039, '_runtime': 358.3485324382782, 'test/recall': 0.7777777777777778, 'test/f1-score': 0.8536585365853658, 'test/epoch_acc': 0.8666666666666667, 'test/precision': 0.945945945945946, 'train/batch_loss': 0.5923706889152527, 'train/epoch_loss': 0.27216847456936755}","{'eps': 1e-08, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 8, 'learning_rate': 0.0003}",zany-sweep-12 +104,"{'train/epoch_acc': 0.7481572481572482, 'train/epoch_loss': 0.613342459283824, 'epoch': 9, '_wandb': {'runtime': 358}, '_runtime': 362.78373169898987, 'test/precision': 0.6226415094339622, 'test/epoch_loss': 0.615033131175571, 'train/batch_loss': 0.6421169638633728, '_step': 1039, '_timestamp': 1678742619.1453717, 'test/recall': 0.9166666666666666, 'test/f1-score': 0.7415730337078651, 'test/epoch_acc': 0.7444444444444445}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.9, 'optimizer': 'sgd', 'step_size': 2, 'batch_size': 8, 'learning_rate': 0.0001}",ruby-sweep-11 +105,"{'_timestamp': 1678742643.2100165, 'test/f1-score': 0.875, '_step': 2059, '_wandb': {'runtime': 531}, 'test/recall': 0.8076923076923077, 'test/epoch_acc': 0.8666666666666667, 'test/precision': 0.9545454545454546, 'test/epoch_loss': 0.3795760815549228, 'train/epoch_acc': 0.9656019656019657, 'train/batch_loss': 0.07699991017580032, 'epoch': 9, '_runtime': 531.6082515716553, 'train/epoch_loss': 0.09796744051757808}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 4, 'learning_rate': 0.001}",fallen-sweep-10 +106,"{'_step': 1039, 'epoch': 9, '_wandb': {'runtime': 359}, '_runtime': 361.6978232860565, 'train/batch_loss': 0.1150113120675087, 'train/epoch_loss': 0.24495647845821825, '_timestamp': 1678742242.6362762, 'test/recall': 0.8076923076923077, 'test/f1-score': 0.875, 'test/epoch_acc': 0.8666666666666667, 'test/precision': 0.9545454545454546, 'test/epoch_loss': 0.2956610471010208, 'train/epoch_acc': 0.9103194103194104}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.999, 'optimizer': 'adam', 'step_size': 7, 'batch_size': 8, 'learning_rate': 0.003}",rare-sweep-10 +107,"{'train/epoch_acc': 0.8869778869778869, 'train/batch_loss': 0.14859537780284882, 'train/epoch_loss': 0.310643073711407, 'epoch': 9, '_timestamp': 1678742103.7627492, 'test/recall': 0.7906976744186046, 'test/epoch_acc': 0.888888888888889, 'test/epoch_loss': 0.26282389760017394, '_step': 1039, '_wandb': {'runtime': 471}, '_runtime': 471.6707801818848, 'test/f1-score': 0.8717948717948717, 'test/precision': 0.9714285714285714}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.999, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 8, 'learning_rate': 0.003}",major-sweep-9 +108,"{'train/epoch_loss': 0.6766868150204932, '_step': 279, 'epoch': 9, '_wandb': {'runtime': 341}, '_timestamp': 1678741869.828495, 'test/epoch_loss': 0.6676742302046882, 'train/epoch_acc': 0.5921375921375921, 'train/batch_loss': 0.6228023767471313, '_runtime': 344.49258494377136, 'test/recall': 0.6976744186046512, 'test/f1-score': 0.6451612903225806, 'test/epoch_acc': 0.6333333333333333, 'test/precision': 0.6}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.5, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 32, 'learning_rate': 0.0001}",spring-sweep-9 +109,"{'train/epoch_acc': 0.9987714987714988, 'train/batch_loss': 0.0022799931466579437, '_step': 1039, 'test/recall': 0.9318181818181818, 'test/f1-score': 0.9213483146067416, '_timestamp': 1678741623.0662856, 'test/epoch_acc': 0.9222222222222224, 'test/precision': 0.9111111111111112, 'test/epoch_loss': 0.16872049139605627, 'train/epoch_loss': 0.02303326028314504, 'epoch': 9, '_wandb': {'runtime': 451}, '_runtime': 452.4322986602783}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 8, 'learning_rate': 0.003}",elated-sweep-8 +110,"{'test/recall': 0.9318181818181818, 'test/epoch_acc': 0.9555555555555556, 'test/epoch_loss': 0.2148759490913815, 'train/epoch_loss': 0.1359616077759049, 'epoch': 9, '_wandb': {'runtime': 342}, '_runtime': 345.3405177593231, 'test/precision': 0.9761904761904762, 'train/epoch_acc': 0.9606879606879608, 'train/batch_loss': 0.11643347889184952, '_step': 149, '_timestamp': 1678741511.9070578, 'test/f1-score': 0.9534883720930232}","{'eps': 0.1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.999, 'optimizer': 'adam', 'step_size': 5, 'batch_size': 64, 'learning_rate': 0.003}",hardy-sweep-8 +111,"{'test/recall': 0.8048780487804879, 'test/epoch_loss': 0.2181672462158733, 'train/epoch_acc': 1, 'train/epoch_loss': 0.008645273717600824, '_wandb': {'runtime': 342}, '_runtime': 345.1732180118561, '_timestamp': 1678741156.130327, 'test/f1-score': 0.868421052631579, 'test/epoch_acc': 0.888888888888889, 'test/precision': 0.9428571428571428, 'train/batch_loss': 0.042314428836107254, '_step': 279, 'epoch': 9}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.999, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 32, 'learning_rate': 0.1}",sweepy-sweep-7 +112,"{'test/recall': 0.6341463414634146, 'test/epoch_acc': 0.7777777777777778, 'train/epoch_acc': 0.8292383292383292, 'train/batch_loss': 0.3791900873184204, 'epoch': 9, '_wandb': {'runtime': 453}, '_runtime': 454.0593776702881, '_timestamp': 1678741159.4683807, 'test/f1-score': 0.7222222222222222, 'test/precision': 0.8387096774193549, 'test/epoch_loss': 0.4768455002042982, 'train/epoch_loss': 0.45283343838825274, '_step': 1039}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.5, 'optimizer': 'sgd', 'step_size': 7, 'batch_size': 8, 'learning_rate': 0.0001}",glorious-sweep-7 +113,"{'_runtime': 348.53755164146423, '_timestamp': 1678740798.1400597, 'test/recall': 0.9333333333333332, 'test/f1-score': 0.9333333333333332, 'test/epoch_acc': 0.9333333333333332, 'test/precision': 0.9333333333333332, 'test/epoch_loss': 0.1931780371401045, '_wandb': {'runtime': 346}, 'train/epoch_loss': 0.0030514685945077376, 'train/epoch_acc': 1, 'epoch': 9, 'train/batch_loss': 0.001889266073703766, '_step': 149}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 64, 'learning_rate': 0.01}",rural-sweep-6 +114,"{'train/epoch_acc': 0.984029484029484, 'train/batch_loss': 0.1385842263698578, 'train/epoch_loss': 0.07075482415817952, '_step': 2059, '_timestamp': 1678740696.0305526, 'test/recall': 0.8666666666666667, 'test/f1-score': 0.896551724137931, 'test/epoch_loss': 0.22745563416845269, 'epoch': 9, '_wandb': {'runtime': 560}, '_runtime': 560.7404127120972, 'test/epoch_acc': 0.9, 'test/precision': 0.9285714285714286}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.9, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 4, 'learning_rate': 0.01}",smart-sweep-6 +115,"{'test/epoch_acc': 0.8111111111111111, 'test/epoch_loss': 0.507676590151257, '_runtime': 345.5716743469238, 'test/f1-score': 0.8172043010752688, '_wandb': {'runtime': 342}, '_timestamp': 1678740438.4959724, 'test/recall': 0.7755102040816326, 'test/precision': 0.8636363636363636, 'train/epoch_acc': 0.7616707616707616, 'train/batch_loss': 0.44296249747276306, '_step': 529, 'epoch': 9, 'train/epoch_loss': 0.5191410552225183}","{'eps': 0.1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.999, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 16, 'learning_rate': 0.1}",giddy-sweep-5 +116,"{'_step': 529, '_wandb': {'runtime': 342}, '_runtime': 345.28623247146606, '_timestamp': 1678740073.5443084, 'test/recall': 0.6666666666666666, 'test/precision': 0.7027027027027027, 'test/epoch_loss': 0.6657861550649007, 'epoch': 9, 'test/f1-score': 0.6842105263157895, 'test/epoch_acc': 0.7333333333333334, 'train/epoch_acc': 0.8538083538083537, 'train/batch_loss': 0.4066888689994812, 'train/epoch_loss': 0.32492415251837314}","{'eps': 1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 2, 'batch_size': 16, 'learning_rate': 0.1}",lilac-sweep-4 +117,"{'_timestamp': 1678740126.212114, 'test/f1-score': 0.8913043478260869, 'test/epoch_loss': 0.2600655794143677, 'train/epoch_acc': 0.9803439803439804, '_step': 1039, 'epoch': 9, '_runtime': 454.98564982414246, 'test/precision': 0.9534883720930232, 'train/batch_loss': 0.01167443674057722, 'train/epoch_loss': 0.08152788232426166, '_wandb': {'runtime': 454}, 'test/recall': 0.8367346938775511, 'test/epoch_acc': 0.888888888888889}","{'eps': 1e-08, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 3, 'batch_size': 8, 'learning_rate': 0.001}",hearty-sweep-5 +118,"{'epoch': 9, '_wandb': {'runtime': 354}, '_timestamp': 1678739717.8250418, 'test/f1-score': 0.7865168539325842, 'test/epoch_acc': 0.788888888888889, 'test/epoch_loss': 0.4899995631641812, 'train/epoch_acc': 0.8144963144963144, '_step': 1039, 'train/epoch_loss': 0.5079173609724209, 'test/recall': 0.875, 'test/precision': 0.7142857142857143, 'train/batch_loss': 0.6180618405342102, '_runtime': 356.9382667541504}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 8, 'learning_rate': 0.0001}",silvery-sweep-3 +119,"{'_runtime': 454.2519624233246, 'test/recall': 0.8205128205128205, 'epoch': 9, '_wandb': {'runtime': 453}, 'test/f1-score': 0.8648648648648648, 'test/epoch_acc': 0.888888888888889, 'test/precision': 0.9142857142857144, 'test/epoch_loss': 0.3028925802972582, 'train/epoch_acc': 0.8968058968058967, 'train/batch_loss': 0.2711101472377777, '_step': 1039, '_timestamp': 1678739662.5458224, 'train/epoch_loss': 0.28549219298128414}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.99, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 8, 'learning_rate': 0.0003}",dulcet-sweep-4 +120,"{'train/epoch_loss': 0.6479796424544707, '_step': 529, '_wandb': {'runtime': 341}, '_runtime': 343.88807487487793, 'test/recall': 0.7894736842105263, 'test/precision': 0.5454545454545454, 'test/epoch_loss': 0.6651701913939582, 'epoch': 9, '_timestamp': 1678739351.1315958, 'test/f1-score': 0.6451612903225806, 'test/epoch_acc': 0.6333333333333333, 'train/epoch_acc': 0.6928746928746928, 'train/batch_loss': 0.6685948967933655}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.999, 'optimizer': 'adam', 'step_size': 2, 'batch_size': 16, 'learning_rate': 0.001}",glamorous-sweep-2 +121,"{'test/precision': 0.6730769230769231, 'train/epoch_acc': 0.7542997542997543, 'train/batch_loss': 0.6510805487632751, 'train/epoch_loss': 0.6267796501480684, '_step': 1039, '_runtime': 469.65283608436584, 'test/f1-score': 0.7608695652173914, 'test/recall': 0.875, 'test/epoch_acc': 0.7555555555555555, 'test/epoch_loss': 0.6144020875295003, 'epoch': 9, '_wandb': {'runtime': 469}, '_timestamp': 1678739200.083605}","{'eps': 0.1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.5, 'optimizer': 'adam', 'step_size': 2, 'batch_size': 8, 'learning_rate': 0.0001}",hopeful-sweep-3 +122,"{'_timestamp': 1678738994.027642, 'test/recall': 0.8409090909090909, 'test/f1-score': 0.8409090909090909, 'test/epoch_acc': 0.8444444444444444, '_step': 279, 'epoch': 9, '_wandb': {'runtime': 353}, '_runtime': 357.5890119075775, 'test/epoch_loss': 0.3028163850307465, 'train/epoch_acc': 0.9975429975429976, 'test/precision': 0.8409090909090909, 'train/batch_loss': 0.0980801358819008, 'train/epoch_loss': 0.03763626415181805}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.9, 'optimizer': 'sgd', 'step_size': 5, 'batch_size': 32, 'learning_rate': 0.003}",lunar-sweep-1 +123,"{'test/recall': 0.8947368421052632, 'test/f1-score': 0.7157894736842105, '_wandb': {'runtime': 529}, '_timestamp': 1678738720.9443874, '_runtime': 529.6096863746643, 'test/epoch_acc': 0.7000000000000001, 'test/precision': 0.5964912280701754, 'test/epoch_loss': 0.5541173484590318, 'train/epoch_acc': 0.6658476658476659, 'train/batch_loss': 0.7896618843078613, '_step': 2059, 'epoch': 9, 'train/epoch_loss': 0.618659178367118}","{'eps': 1e-08, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.9, 'optimizer': 'sgd', 'step_size': 2, 'batch_size': 4, 'learning_rate': 0.1}",stoic-sweep-2 +124,"{'_runtime': 355.4184715747833, 'test/epoch_acc': 0.8222222222222223, 'test/precision': 0.8928571428571429, 'test/epoch_loss': 0.4269479903909895, 'epoch': 9, '_wandb': {'runtime': 353}, '_timestamp': 1678738469.1834886, 'test/recall': 0.6578947368421053, 'test/f1-score': 0.7575757575757577, 'train/epoch_acc': 0.995085995085995, 'train/batch_loss': 0.0014543599681928754, 'train/epoch_loss': 0.016353931551580648, '_step': 529}","{'eps': 1e-08, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.5, 'optimizer': 'adam', 'step_size': 2, 'batch_size': 16, 'learning_rate': 0.0001}",dark-sweep-2 +125,"{'_step': 1039, '_runtime': 384.5172441005707, 'test/recall': 0.8181818181818182, 'test/epoch_acc': 0.8555555555555556, 'test/precision': 0.8780487804878049, 'test/epoch_loss': 0.40116495291392007, 'train/epoch_acc': 0.8673218673218673, 'epoch': 9, '_wandb': {'runtime': 381}, '_timestamp': 1678738101.018471, 'test/f1-score': 0.8470588235294119, 'train/batch_loss': 0.31195682287216187, 'train/epoch_loss': 0.3623260387038716}","{'eps': 0.1, 'gamma': 0.5, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.5, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 8, 'learning_rate': 0.0003}",trim-sweep-1 +126,"{'epoch': 9, '_wandb': {'runtime': 560}, '_runtime': 560.7235152721405, 'test/recall': 0.9090909090909092, 'test/f1-score': 0.8602150537634408, 'train/epoch_loss': 0.6107166709712448, '_step': 2059, '_timestamp': 1678738182.1088202, 'test/epoch_acc': 0.8555555555555556, 'test/precision': 0.8163265306122449, 'test/epoch_loss': 0.6165981186760796, 'train/epoch_acc': 0.7567567567567567, 'train/batch_loss': 0.6653294563293457}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.9, 'beta_two': 0.5, 'optimizer': 'adam', 'step_size': 2, 'batch_size': 4, 'learning_rate': 0.001}",sparkling-sweep-1 +127,"{'test/epoch_loss': 0.6796493821673923, 'train/epoch_acc': 0.5515970515970516, 'train/batch_loss': 0.6759337782859802, 'epoch': 1, '_wandb': {'runtime': 118}, '_runtime': 122.13349413871764, 'test/recall': 0.6818181818181818, 'test/precision': 0.6382978723404256, '_step': 555, '_timestamp': 1678737059.0375042, 'test/f1-score': 0.6593406593406593, 'test/epoch_acc': 0.6555555555555556, 'train/epoch_loss': 0.6851893525744539}","{'eps': 1, 'gamma': 0.1, 'epochs': 10, 'beta_one': 0.99, 'beta_two': 0.5, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 4, 'learning_rate': 0.0003}",serene-sweep-1 +128,"{'_runtime': 456.3002746105194, 'train/epoch_acc': 0.9914004914004914, 'train/epoch_loss': 0.032788554922144414, 'test/epoch_loss': 0.45068282733360926, 'train/batch_loss': 0.003167948452755809, 'test/f1-score': 0.8888888888888888, 'test/epoch_acc': 0.8777777777777778, 'test/batch_loss': 0.1311825066804886, 'test/precision': 0.9361702127659576, 'epoch': 9, '_wandb': {'runtime': 455}, 'test/recall': 0.8461538461538461, '_step': 1159, '_timestamp': 1678734250.8076646}","{'gamma': 0.5, 'epochs': 10, 'optimizer': 'sgd', 'step_size': 2, 'batch_size': 8, 'learning_rate': 0.003}",super-sweep-10 +129,"{'test/epoch_loss': 0.5302444166607327, '_wandb': {'runtime': 563}, '_runtime': 564.230875492096, '_timestamp': 1678733784.6976814, 'test/precision': 0.673469387755102, 'train/epoch_acc': 0.687960687960688, '_step': 2289, 'epoch': 9, 'test/epoch_acc': 0.7111111111111111, 'train/epoch_loss': 0.5984233345387902, 'test/batch_loss': 0.9658783674240112, 'train/batch_loss': 0.3260266184806824, 'test/recall': 0.7674418604651163, 'test/f1-score': 0.7173913043478259}","{'gamma': 0.1, 'epochs': 10, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 4, 'learning_rate': 0.01}",distinctive-sweep-9 +130,"{'test/epoch_loss': 0.17092165086004468, '_step': 2289, '_wandb': {'runtime': 527}, '_timestamp': 1678733210.1129615, 'test/batch_loss': 0.1419784128665924, 'train/epoch_acc': 0.9496314496314496, 'epoch': 9, '_runtime': 527.6160025596619, 'test/recall': 0.8636363636363636, 'test/precision': 1, 'train/batch_loss': 0.007875862531363964, 'test/f1-score': 0.9268292682926828, 'test/epoch_acc': 0.9333333333333332, 'train/epoch_loss': 0.1743801347293527}","{'gamma': 0.5, 'epochs': 10, 'optimizer': 'sgd', 'step_size': 7, 'batch_size': 4, 'learning_rate': 0.0003}",winter-sweep-8 +131,"{'epoch': 9, '_runtime': 453.52900218963623, '_timestamp': 1678732673.1225052, 'train/epoch_loss': 0.07730489082323246, 'test/epoch_loss': 0.21558621691332924, 'train/batch_loss': 0.04383014515042305, '_step': 1159, 'test/recall': 0.8292682926829268, 'test/f1-score': 0.9066666666666668, 'train/epoch_acc': 0.9791154791154792, '_wandb': {'runtime': 452}, 'test/epoch_acc': 0.9222222222222224, 'test/precision': 1, 'test/batch_loss': 0.27116066217422485}","{'gamma': 0.5, 'epochs': 10, 'optimizer': 'sgd', 'step_size': 3, 'batch_size': 8, 'learning_rate': 0.001}",stilted-sweep-7 +132,"{'_timestamp': 1678732212.5530572, 'test/recall': 0.7555555555555555, 'test/precision': 0.6538461538461539, '_wandb': {'runtime': 561}, '_runtime': 561.7993631362915, 'test/epoch_loss': 0.6190193812052409, '_step': 2289, 'test/epoch_acc': 0.6777777777777778, 'test/f1-score': 0.7010309278350516, 'test/batch_loss': 0.4716488718986511, 'train/epoch_acc': 0.7272727272727273, 'train/batch_loss': 0.48304444551467896, 'train/epoch_loss': 0.5549268187263967, 'epoch': 9}","{'gamma': 0.5, 'epochs': 10, 'optimizer': 'adam', 'step_size': 3, 'batch_size': 4, 'learning_rate': 0.01}",summer-sweep-6 +133,"{'epoch': 9, '_wandb': {'runtime': 453}, 'test/batch_loss': 0.5068956017494202, '_step': 1159, '_runtime': 454.3645238876343, 'test/f1-score': 0.813953488372093, 'test/epoch_acc': 0.8222222222222223, 'train/batch_loss': 0.4434223175048828, 'train/epoch_loss': 0.5186349417126442, 'test/recall': 0.7142857142857143, 'train/epoch_acc': 0.8218673218673218, '_timestamp': 1678731639.156168, 'test/precision': 0.945945945945946, 'test/epoch_loss': 0.4936415394147237}","{'gamma': 0.5, 'epochs': 10, 'optimizer': 'sgd', 'step_size': 3, 'batch_size': 8, 'learning_rate': 0.0001}",different-sweep-5 +134,"{'_runtime': 454.26038885116577, 'test/f1-score': 0.8354430379746836, 'test/batch_loss': 0.5159374475479126, 'test/epoch_loss': 0.5482642173767089, 'epoch': 9, '_wandb': {'runtime': 453}, 'test/epoch_acc': 0.8555555555555556, 'train/epoch_acc': 0.812039312039312, 'train/epoch_loss': 0.5429200196149016, '_step': 1159, '_timestamp': 1678731176.111379, 'test/recall': 0.8461538461538461, 'test/precision': 0.825, 'train/batch_loss': 0.5655931830406189}","{'gamma': 0.5, 'epochs': 10, 'optimizer': 'sgd', 'step_size': 2, 'batch_size': 8, 'learning_rate': 0.0001}",wise-sweep-4 +135,"{'_runtime': 528.9760706424713, 'test/f1-score': 0.8493150684931509, 'train/epoch_loss': 0.02060394324720534, 'epoch': 9, '_timestamp': 1678730714.7711067, 'test/batch_loss': 1.7588363885879517, 'train/batch_loss': 0.00470334617421031, '_wandb': {'runtime': 528}, 'test/recall': 0.775, 'test/epoch_acc': 0.8777777777777778, 'test/epoch_loss': 0.24194780117250048, '_step': 2289, 'train/epoch_acc': 0.9963144963144964, 'test/precision': 0.9393939393939394}","{'gamma': 0.5, 'epochs': 10, 'optimizer': 'sgd', 'step_size': 3, 'batch_size': 4, 'learning_rate': 0.003}",misty-sweep-3 +136,"{'epoch': 9, '_wandb': {'runtime': 454}, 'test/epoch_acc': 0.8111111111111111, 'test/precision': 0.8387096774193549, 'test/epoch_loss': 0.4792341656155056, '_step': 1159, 'test/recall': 0.6842105263157895, 'train/batch_loss': 0.5347514748573303, 'train/epoch_loss': 0.42904984072326735, 'train/epoch_acc': 0.8329238329238329, '_runtime': 455.41485929489136, '_timestamp': 1678730177.1362092, 'test/f1-score': 0.7536231884057972, 'test/batch_loss': 0.455120325088501}","{'gamma': 0.1, 'epochs': 10, 'optimizer': 'sgd', 'step_size': 3, 'batch_size': 8, 'learning_rate': 0.0003}",unique-sweep-2 +137,"{'_step': 2289, '_runtime': 528.4356484413147, '_timestamp': 1678729705.2001765, 'test/batch_loss': 2.5320074558258057, 'test/epoch_loss': 0.5442472649919283, 'epoch': 9, 'test/recall': 0.8636363636363636, 'train/epoch_acc': 0.9901719901719902, 'test/epoch_acc': 0.888888888888889, '_wandb': {'runtime': 527}, 'test/f1-score': 0.8837209302325582, 'test/precision': 0.9047619047619048, 'train/batch_loss': 0.005740344058722258, 'train/epoch_loss': 0.024021292951151657}","{'gamma': 0.5, 'epochs': 10, 'optimizer': 'sgd', 'step_size': 7, 'batch_size': 4, 'learning_rate': 0.003}",polar-sweep-1 diff --git a/classification/classifier/hyp-metrics.ipynb b/classification/classifier/hyp-metrics.ipynb index bc4c7e3..a7b3f83 100644 --- a/classification/classifier/hyp-metrics.ipynb +++ b/classification/classifier/hyp-metrics.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "id": "747ddcf2", "metadata": {}, "outputs": [ @@ -10,8 +10,6 @@ "name": "stderr", "output_type": "stream", "text": [ - "/home/zenon/.local/share/miniconda3/lib/python3.7/site-packages/requests/__init__.py:104: RequestsDependencyWarning: urllib3 (1.26.13) or chardet (5.1.0)/charset_normalizer (2.0.4) doesn't match a supported version!\n", - " RequestsDependencyWarning)\n", "\u001b[34m\u001b[1mwandb\u001b[0m: Currently logged in as: \u001b[33me1527193\u001b[0m (\u001b[33mflower-classification\u001b[0m). Use \u001b[1m`wandb login --relogin`\u001b[0m to force relogin\n" ] } @@ -28,7 +26,39 @@ "import torch\n", "wandb.login()\n", "\n", - "from evaluation.helpers import set_size\n", + "def set_size(width, fraction=1, subplots=(1, 1)):\n", + " \"\"\"Set figure dimensions to avoid scaling in LaTeX.\n", + "\n", + " Parameters\n", + " ----------\n", + " width: float\n", + " Document textwidth or columnwidth in pts\n", + " fraction: float, optional\n", + " Fraction of the width which you wish the figure to occupy\n", + "\n", + " Returns\n", + " -------\n", + " fig_dim: tuple\n", + " Dimensions of figure in inches\n", + " \"\"\"\n", + " # Width of figure (in pts)\n", + " fig_width_pt = width * fraction\n", + "\n", + " # Convert from pt to inches\n", + " inches_per_pt = 1 / 72.27\n", + "\n", + " # Golden ratio to set aesthetic figure height\n", + " # https://disq.us/p/2940ij3\n", + " golden_ratio = (5**.5 - 1) / 2\n", + "\n", + " # Figure width in inches\n", + " fig_width_in = fig_width_pt * inches_per_pt\n", + " # Figure height in inches\n", + " fig_height_in = fig_width_in * golden_ratio * (subplots[0] / subplots[1])\n", + "\n", + " fig_dim = (fig_width_in, fig_height_in)\n", + "\n", + " return fig_dim\n", "\n", "torch.manual_seed(42)\n", "np.random.seed(42)" @@ -44,7 +74,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "id": "76cc2ca7", "metadata": {}, "outputs": [], @@ -90,7 +120,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "id": "353f9082", "metadata": {}, "outputs": [ @@ -117,14 +147,14 @@ " \n", " Unnamed: 0\n", " name\n", - " test/epoch_acc\n", - " test/precision\n", - " test/epoch_loss\n", - " train/epoch_acc\n", " _step\n", - " epoch\n", " _timestamp\n", + " test/recall\n", " test/f1-score\n", + " test/epoch_acc\n", + " test/epoch_loss\n", + " train/epoch_loss\n", + " epoch\n", " ...\n", " test/batch_loss\n", " eps\n", @@ -143,14 +173,14 @@ " 0\n", " 0\n", " fiery-sweep-26\n", - " 0.733333\n", - " 0.828571\n", - " 0.566462\n", - " 0.823096\n", " 2059\n", - " 9\n", " 1.680693e+09\n", + " 0.617021\n", " 0.707317\n", + " 0.733333\n", + " 0.566462\n", + " 0.424106\n", + " 9\n", " ...\n", " NaN\n", " 1.000000e-01\n", @@ -167,14 +197,14 @@ " 1\n", " 1\n", " radiant-sweep-25\n", - " 0.722222\n", - " 0.685185\n", - " 0.645458\n", - " 0.712531\n", " 1039\n", - " 9\n", " 1.680693e+09\n", + " 0.822222\n", " 0.747475\n", + " 0.722222\n", + " 0.645458\n", + " 0.64979\n", + " 9\n", " ...\n", " NaN\n", " 1.000000e+00\n", @@ -191,14 +221,14 @@ " 2\n", " 2\n", " blooming-sweep-24\n", - " 0.888889\n", - " 0.935484\n", - " 0.348129\n", - " 0.998771\n", " 1039\n", - " 9\n", " 1.680692e+09\n", + " 0.783784\n", " 0.852941\n", + " 0.888889\n", + " 0.348129\n", + " 0.016143\n", + " 9\n", " ...\n", " NaN\n", " 1.000000e-08\n", @@ -215,14 +245,14 @@ " 3\n", " 3\n", " visionary-sweep-23\n", - " 0.800000\n", - " 0.760870\n", - " 0.555318\n", - " 0.835381\n", " 529\n", - " 9\n", " 1.680692e+09\n", + " 0.833333\n", " 0.795455\n", + " 0.800000\n", + " 0.555318\n", + " 0.532423\n", + " 9\n", " ...\n", " NaN\n", " 1.000000e+00\n", @@ -239,14 +269,14 @@ " 4\n", " 4\n", " ancient-sweep-22\n", - " 0.577778\n", - " 0.589744\n", - " 1.560271\n", - " 0.557740\n", " 410\n", - " 1\n", " 1.680692e+09\n", + " 0.884615\n", " 0.707692\n", + " 0.577778\n", + " 1.560271\n", + " 0.75081\n", + " 1\n", " ...\n", " NaN\n", " 1.000000e-08\n", @@ -287,14 +317,14 @@ " 133\n", " 133\n", " different-sweep-5\n", - " 0.822222\n", - " 0.945946\n", - " 0.493642\n", - " 0.821867\n", " 1159\n", - " 9\n", " 1.678732e+09\n", + " 0.714286\n", " 0.813953\n", + " 0.822222\n", + " 0.493642\n", + " 0.518635\n", + " 9\n", " ...\n", " 0.506896\n", " NaN\n", @@ -311,14 +341,14 @@ " 134\n", " 134\n", " wise-sweep-4\n", - " 0.855556\n", - " 0.825000\n", - " 0.548264\n", - " 0.812039\n", " 1159\n", - " 9\n", " 1.678731e+09\n", + " 0.846154\n", " 0.835443\n", + " 0.855556\n", + " 0.548264\n", + " 0.54292\n", + " 9\n", " ...\n", " 0.515937\n", " NaN\n", @@ -335,14 +365,14 @@ " 135\n", " 135\n", " misty-sweep-3\n", - " 0.877778\n", - " 0.939394\n", - " 0.241948\n", - " 0.996314\n", " 2289\n", - " 9\n", " 1.678731e+09\n", + " 0.775000\n", " 0.849315\n", + " 0.877778\n", + " 0.241948\n", + " 0.020604\n", + " 9\n", " ...\n", " 1.758836\n", " NaN\n", @@ -359,14 +389,14 @@ " 136\n", " 136\n", " unique-sweep-2\n", - " 0.811111\n", - " 0.838710\n", - " 0.479234\n", - " 0.832924\n", " 1159\n", - " 9\n", " 1.678730e+09\n", + " 0.684211\n", " 0.753623\n", + " 0.811111\n", + " 0.479234\n", + " 0.42905\n", + " 9\n", " ...\n", " 0.455120\n", " NaN\n", @@ -383,14 +413,14 @@ " 137\n", " 137\n", " polar-sweep-1\n", - " 0.888889\n", - " 0.904762\n", - " 0.544247\n", - " 0.990172\n", " 2289\n", - " 9\n", " 1.678730e+09\n", + " 0.863636\n", " 0.883721\n", + " 0.888889\n", + " 0.544247\n", + " 0.024021\n", + " 9\n", " ...\n", " 2.532007\n", " NaN\n", @@ -409,62 +439,62 @@ "" ], "text/plain": [ - " Unnamed: 0 name test/epoch_acc test/precision \\\n", - "0 0 fiery-sweep-26 0.733333 0.828571 \n", - "1 1 radiant-sweep-25 0.722222 0.685185 \n", - "2 2 blooming-sweep-24 0.888889 0.935484 \n", - "3 3 visionary-sweep-23 0.800000 0.760870 \n", - "4 4 ancient-sweep-22 0.577778 0.589744 \n", - ".. ... ... ... ... \n", - "133 133 different-sweep-5 0.822222 0.945946 \n", - "134 134 wise-sweep-4 0.855556 0.825000 \n", - "135 135 misty-sweep-3 0.877778 0.939394 \n", - "136 136 unique-sweep-2 0.811111 0.838710 \n", - "137 137 polar-sweep-1 0.888889 0.904762 \n", + " Unnamed: 0 name _step _timestamp test/recall \\\n", + "0 0 fiery-sweep-26 2059 1.680693e+09 0.617021 \n", + "1 1 radiant-sweep-25 1039 1.680693e+09 0.822222 \n", + "2 2 blooming-sweep-24 1039 1.680692e+09 0.783784 \n", + "3 3 visionary-sweep-23 529 1.680692e+09 0.833333 \n", + "4 4 ancient-sweep-22 410 1.680692e+09 0.884615 \n", + ".. ... ... ... ... ... \n", + "133 133 different-sweep-5 1159 1.678732e+09 0.714286 \n", + "134 134 wise-sweep-4 1159 1.678731e+09 0.846154 \n", + "135 135 misty-sweep-3 2289 1.678731e+09 0.775000 \n", + "136 136 unique-sweep-2 1159 1.678730e+09 0.684211 \n", + "137 137 polar-sweep-1 2289 1.678730e+09 0.863636 \n", "\n", - " test/epoch_loss train/epoch_acc _step epoch _timestamp \\\n", - "0 0.566462 0.823096 2059 9 1.680693e+09 \n", - "1 0.645458 0.712531 1039 9 1.680693e+09 \n", - "2 0.348129 0.998771 1039 9 1.680692e+09 \n", - "3 0.555318 0.835381 529 9 1.680692e+09 \n", - "4 1.560271 0.557740 410 1 1.680692e+09 \n", - ".. ... ... ... ... ... \n", - "133 0.493642 0.821867 1159 9 1.678732e+09 \n", - "134 0.548264 0.812039 1159 9 1.678731e+09 \n", - "135 0.241948 0.996314 2289 9 1.678731e+09 \n", - "136 0.479234 0.832924 1159 9 1.678730e+09 \n", - "137 0.544247 0.990172 2289 9 1.678730e+09 \n", + " test/f1-score test/epoch_acc test/epoch_loss train/epoch_loss epoch \\\n", + "0 0.707317 0.733333 0.566462 0.424106 9 \n", + "1 0.747475 0.722222 0.645458 0.64979 9 \n", + "2 0.852941 0.888889 0.348129 0.016143 9 \n", + "3 0.795455 0.800000 0.555318 0.532423 9 \n", + "4 0.707692 0.577778 1.560271 0.75081 1 \n", + ".. ... ... ... ... ... \n", + "133 0.813953 0.822222 0.493642 0.518635 9 \n", + "134 0.835443 0.855556 0.548264 0.54292 9 \n", + "135 0.849315 0.877778 0.241948 0.020604 9 \n", + "136 0.753623 0.811111 0.479234 0.42905 9 \n", + "137 0.883721 0.888889 0.544247 0.024021 9 \n", "\n", - " test/f1-score ... test/batch_loss eps gamma epochs \\\n", - "0 0.707317 ... NaN 1.000000e-01 0.1 10 \n", - "1 0.747475 ... NaN 1.000000e+00 0.5 10 \n", - "2 0.852941 ... NaN 1.000000e-08 0.5 10 \n", - "3 0.795455 ... NaN 1.000000e+00 0.1 10 \n", - "4 0.707692 ... NaN 1.000000e-08 0.5 10 \n", - ".. ... ... ... ... ... ... \n", - "133 0.813953 ... 0.506896 NaN 0.5 10 \n", - "134 0.835443 ... 0.515937 NaN 0.5 10 \n", - "135 0.849315 ... 1.758836 NaN 0.5 10 \n", - "136 0.753623 ... 0.455120 NaN 0.1 10 \n", - "137 0.883721 ... 2.532007 NaN 0.5 10 \n", + " ... test/batch_loss eps gamma epochs beta_one beta_two \\\n", + "0 ... NaN 1.000000e-01 0.1 10 0.99 0.900 \n", + "1 ... NaN 1.000000e+00 0.5 10 0.99 0.900 \n", + "2 ... NaN 1.000000e-08 0.5 10 0.90 0.999 \n", + "3 ... NaN 1.000000e+00 0.1 10 0.90 0.900 \n", + "4 ... NaN 1.000000e-08 0.5 10 0.90 0.990 \n", + ".. ... ... ... ... ... ... ... \n", + "133 ... 0.506896 NaN 0.5 10 NaN NaN \n", + "134 ... 0.515937 NaN 0.5 10 NaN NaN \n", + "135 ... 1.758836 NaN 0.5 10 NaN NaN \n", + "136 ... 0.455120 NaN 0.1 10 NaN NaN \n", + "137 ... 2.532007 NaN 0.5 10 NaN NaN \n", "\n", - " beta_one beta_two optimizer step_size batch_size learning_rate \n", - "0 0.99 0.900 adam 3 4 0.0003 \n", - "1 0.99 0.900 adam 2 8 0.0003 \n", - "2 0.90 0.999 sgd 5 8 0.0030 \n", - "3 0.90 0.900 sgd 2 16 0.0003 \n", - "4 0.90 0.990 adam 7 4 0.0100 \n", - ".. ... ... ... ... ... ... \n", - "133 NaN NaN sgd 3 8 0.0001 \n", - "134 NaN NaN sgd 2 8 0.0001 \n", - "135 NaN NaN sgd 3 4 0.0030 \n", - "136 NaN NaN sgd 3 8 0.0003 \n", - "137 NaN NaN sgd 7 4 0.0030 \n", + " optimizer step_size batch_size learning_rate \n", + "0 adam 3 4 0.0003 \n", + "1 adam 2 8 0.0003 \n", + "2 sgd 5 8 0.0030 \n", + "3 sgd 2 16 0.0003 \n", + "4 adam 7 4 0.0100 \n", + ".. ... ... ... ... \n", + "133 sgd 3 8 0.0001 \n", + "134 sgd 2 8 0.0001 \n", + "135 sgd 3 4 0.0030 \n", + "136 sgd 3 8 0.0003 \n", + "137 sgd 7 4 0.0030 \n", "\n", "[138 rows x 25 columns]" ] }, - "execution_count": 3, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -481,7 +511,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "id": "4679b2f8", "metadata": { "scrolled": true @@ -491,8 +521,8 @@ "name": "stderr", "output_type": "stream", "text": [ - "/home/zenon/.local/share/miniconda3/lib/python3.7/site-packages/ipykernel_launcher.py:1: FutureWarning: In a future version of pandas all arguments of Series.sort_values will be keyword-only\n", - " \"\"\"Entry point for launching an IPython kernel.\n" + "/run/user/1000/ipykernel_39845/2346208349.py:1: FutureWarning: In a future version of pandas all arguments of Series.sort_values will be keyword-only.\n", + " df['learning_rate'].value_counts().sort_values(0)\n" ] }, { @@ -507,7 +537,7 @@ "Name: learning_rate, dtype: int64" ] }, - "execution_count": 4, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -518,7 +548,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 21, "id": "1b1a54fc", "metadata": {}, "outputs": [], @@ -526,22 +556,22 @@ "# Style the plots (with grid this time)\n", "width = 418\n", "sns.set_theme(style='whitegrid',\n", - " rc={'text.usetex': True, 'font.family': 'serif', 'axes.labelsize': 10,\n", - " 'font.size': 10, 'legend.fontsize': 8,\n", - " 'xtick.labelsize': 8, 'ytick.labelsize': 8})\n", + " rc={'text.usetex': True, 'font.family': 'serif', 'axes.labelsize': 16,\n", + " 'font.size': 16, 'legend.fontsize': 11,\n", + " 'xtick.labelsize': 12, 'ytick.labelsize': 12})\n", "\n", "fig_save_dir = '../../thesis/graphics/'" ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 22, "id": "00efa25b", "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "
" ] @@ -553,10 +583,9 @@ "source": [ "df_prepared = df.rename(columns={'learning_rate': 'learning rate', 'batch_size': 'batch size'})\n", "fig, ax = plt.subplots(1, 1, figsize=set_size(width, subplots=(1,1)))\n", - "sns.scatterplot(x=\"learning rate\", y=\"test/f1-score\",\n", - " style=\"optimizer\", hue=\"batch size\",\n", + "sns.scatterplot(x=\"learning rate\", y=\"test/f1-score\", hue=\"batch size\",\n", " palette=sns.cubehelix_palette(5, light=0.8, gamma=1.2),\n", - " sizes=(5, 30), linewidth=0, s=15,\n", + " sizes=(5, 30), linewidth=0, s=50,\n", " data=df_prepared, ax=ax)\n", "ax.set_xscale('log')\n", "ax.set_xticks([0.0001, 0.0003, 0.001, 0.003, 0.01, 0.1])\n", @@ -911,7 +940,7 @@ }, { "cell_type": "code", - "execution_count": 57, + "execution_count": 23, "id": "bb567230", "metadata": {}, "outputs": [], @@ -988,7 +1017,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.13" + "version": "3.11.6" } }, "nbformat": 4, diff --git a/classification/classifier/k-fold-train.ipynb b/classification/classifier/k-fold-train.ipynb index 3866abc..c6e5214 100644 --- a/classification/classifier/k-fold-train.ipynb +++ b/classification/classifier/k-fold-train.ipynb @@ -567,7 +567,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 5, "id": "747ddcf2", "metadata": { "colab": { @@ -588,67 +588,11 @@ "outputId": "e0fd939b-acea-4244-d17f-e9440ebd876a" }, "outputs": [ - { - "data": { - "application/javascript": [ - "\n", - " window._wandbApiKey = new Promise((resolve, reject) => {\n", - " function loadScript(url) {\n", - " return new Promise(function(resolve, reject) {\n", - " let newScript = document.createElement(\"script\");\n", - " newScript.onerror = reject;\n", - " newScript.onload = resolve;\n", - " document.body.appendChild(newScript);\n", - " newScript.src = url;\n", - " });\n", - " }\n", - " loadScript(\"https://cdn.jsdelivr.net/npm/postmate/build/postmate.min.js\").then(() => {\n", - " const iframe = document.createElement('iframe')\n", - " iframe.style.cssText = \"width:0;height:0;border:none\"\n", - " document.body.appendChild(iframe)\n", - " const handshake = new Postmate({\n", - " container: iframe,\n", - " url: 'https://wandb.ai/authorize'\n", - " });\n", - " const timeout = setTimeout(() => reject(\"Couldn't auto authenticate\"), 5000)\n", - " handshake.then(function(child) {\n", - " child.on('authorize', data => {\n", - " clearTimeout(timeout)\n", - " resolve(data)\n", - " });\n", - " });\n", - " })\n", - " });\n", - " " - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, { "name": "stderr", "output_type": "stream", "text": [ - "\u001b[34m\u001b[1mwandb\u001b[0m: Logging into wandb.ai. (Learn how to deploy a W&B server locally: https://wandb.me/wandb-server)\n", - "\u001b[34m\u001b[1mwandb\u001b[0m: You can find your API key in your browser here: https://wandb.ai/authorize\n", - "wandb: Paste an API key from your profile and hit enter, or press ctrl+c to quit:" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " ··········\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[34m\u001b[1mwandb\u001b[0m: Appending key for api.wandb.ai to your netrc file: /root/.netrc\n" + "\u001b[34m\u001b[1mwandb\u001b[0m: Currently logged in as: \u001b[33me1527193\u001b[0m (\u001b[33mflower-classification\u001b[0m). Use \u001b[1m`wandb login --relogin`\u001b[0m to force relogin\n" ] }, { @@ -657,7 +601,7 @@ "True" ] }, - "execution_count": 2, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -670,7 +614,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 6, "id": "c37343d6", "metadata": { "executionInfo": { @@ -753,7 +697,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 7, "id": "9kAalkZjkZss", "metadata": { "executionInfo": { @@ -790,7 +734,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 8, "id": "hHslzk9d4dnq", "metadata": { "executionInfo": { @@ -980,7 +924,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 1, "id": "5eff68bf", "metadata": { "executionInfo": { @@ -1001,9 +945,9 @@ " # Style the plots (with grid this time)\n", " width = 418\n", " sns.set_theme(style='whitegrid',\n", - " rc={'text.usetex': True, 'font.family': 'serif', 'axes.labelsize': 10,\n", - " 'font.size': 10, 'legend.fontsize': 8,\n", - " 'xtick.labelsize': 8, 'ytick.labelsize': 8})\n", + " rc={'text.usetex': True, 'font.family': 'serif', 'axes.labelsize': 16,\n", + " 'font.size': 16, 'legend.fontsize': 11,\n", + " 'xtick.labelsize': 12, 'ytick.labelsize': 12})\n", "\n", " fig_save_dir = '../../thesis/graphics/'\n", " # Initialize a new wandb run\n", @@ -1078,7 +1022,8 @@ " fpr, tpr, thresh = metrics.roc_curve(best_y_true, best_y_score)\n", " ax.plot(fpr,\n", " tpr,\n", - " label=r\"Fold %d (AUC = %0.2f)\" % (fold, best_test_auc),\n", + " legend=False,\n", + " #label=r\"Fold %d (AUC = %0.2f)\" % (fold, best_test_auc),\n", " lw=1,\n", " alpha=0.5)\n", " interp_tpr = np.interp(mean_fpr, fpr, tpr)\n", @@ -1167,7 +1112,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 2, "id": "732a83df", "metadata": { "executionInfo": { @@ -1219,7 +1164,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 9, "id": "9a01fef6", "metadata": { "colab": { @@ -1243,8 +1188,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "Create sweep with ID: bq0rvyfn\n", - "Sweep URL: https://wandb.ai/flower-classification/classifier-optimized/sweeps/bq0rvyfn\n" + "Create sweep with ID: fp9p6hei\n", + "Sweep URL: https://wandb.ai/flower-classification/classifier-optimized/sweeps/fp9p6hei\n" ] } ], @@ -1254,7 +1199,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "id": "e80d1730", "metadata": { "colab": { @@ -1382,7 +1327,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "\u001b[34m\u001b[1mwandb\u001b[0m: Agent Starting Run: qxhbaz0l with config:\n", + "\u001b[34m\u001b[1mwandb\u001b[0m: Agent Starting Run: puf6qvta with config:\n", "\u001b[34m\u001b[1mwandb\u001b[0m: \tbatch_size: 64\n", "\u001b[34m\u001b[1mwandb\u001b[0m: \tepochs: 25\n", "\u001b[34m\u001b[1mwandb\u001b[0m: \tk_splits: 10\n", @@ -1394,7 +1339,8 @@ { "data": { "text/html": [ - "Tracking run with wandb version 0.15.0" + "wandb version 0.16.4 is available! To upgrade, please run:\n", + " $ pip install wandb --upgrade" ], "text/plain": [ "" @@ -1406,7 +1352,7 @@ { "data": { "text/html": [ - "Run data is saved locally in /content/wandb/run-20230501_094215-qxhbaz0l" + "Tracking run with wandb version 0.16.1" ], "text/plain": [ "" @@ -1418,7 +1364,19 @@ { "data": { "text/html": [ - "Syncing run good-sweep-1 to Weights & Biases (docs)
Sweep page: https://wandb.ai/flower-classification/classifier-optimized/sweeps/bq0rvyfn" + "Run data is saved locally in /home/zenon/Documents/master-thesis/classification/classifier/wandb/run-20240309_202329-puf6qvta" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "Syncing run faithful-sweep-1 to Weights & Biases (docs)
Sweep page: https://wandb.ai/flower-classification/classifier-optimized/sweeps/fp9p6hei" ], "text/plain": [ "" @@ -1442,7 +1400,7 @@ { "data": { "text/html": [ - " View sweep at https://wandb.ai/flower-classification/classifier-optimized/sweeps/bq0rvyfn" + " View sweep at https://wandb.ai/flower-classification/classifier-optimized/sweeps/fp9p6hei" ], "text/plain": [ "" @@ -1454,7 +1412,7 @@ { "data": { "text/html": [ - " View run at https://wandb.ai/flower-classification/classifier-optimized/runs/qxhbaz0l" + " View run at https://wandb.ai/flower-classification/classifier-optimized/runs/puf6qvta" ], "text/plain": [ "" @@ -1467,274 +1425,58 @@ "name": "stderr", "output_type": "stream", "text": [ - "/usr/local/lib/python3.10/dist-packages/torch/utils/data/dataloader.py:561: UserWarning: This DataLoader will create 4 worker processes in total. Our suggested max number of worker in current system is 2, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.\n", - " warnings.warn(_create_warning_msg(\n" + "Traceback (most recent call last):\n", + " File \"/run/user/1000/ipykernel_27841/4074982736.py\", line 16, in train\n", + " dataset = build_dataset(config.batch_size)\n", + " ^^^^^^^^^^^^^\n", + "NameError: name 'build_dataset' is not defined\n" ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "Dataset targets: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 1, 1, 1, 1]\n", - "Fold 1\n", - "Dataset sizes: {'train': 813, 'test': 91}\n" - ] + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "VBox(children=(Label(value='0.003 MB of 0.003 MB uploaded\\r'), FloatProgress(value=1.0, max=1.0)))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + " View run faithful-sweep-1 at: https://wandb.ai/flower-classification/classifier-optimized/runs/puf6qvta
Synced 5 W&B file(s), 0 media file(s), 0 artifact file(s) and 0 other file(s)" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "Find logs at: ./wandb/run-20240309_202329-puf6qvta/logs" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" }, { "name": "stderr", "output_type": "stream", "text": [ - "Downloading: \"https://download.pytorch.org/models/resnet50-11ad3fa6.pth\" to /root/.cache/torch/hub/checkpoints/resnet50-11ad3fa6.pth\n", - "100%|██████████| 97.8M/97.8M [00:00<00:00, 206MB/s]\n" + "Run puf6qvta errored: NameError(\"name 'build_dataset' is not defined\")\n", + "\u001b[34m\u001b[1mwandb\u001b[0m: \u001b[32m\u001b[41mERROR\u001b[0m Run puf6qvta errored: NameError(\"name 'build_dataset' is not defined\")\n" ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "e5784a8d425b45418ab8558ec841c9a3", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/25 [00:00" + "
" ] }, "metadata": {}, @@ -548,7 +589,7 @@ "accs = results[['epoch', 'train_acc', 'val_acc']].rename(columns={'train_acc': 'train', 'val_acc': 'val'}).melt('epoch', var_name='metric', value_name='vals')\n", "loss = results[['epoch', 'train_loss', 'val_loss']].rename(columns={'train_loss': 'train', 'val_loss': 'val'}).melt('epoch', var_name='metric', value_name='vals')\n", "\n", - "fig, ax = plt.subplots(1, 2, figsize=set_size(width, subplots=(1,2)))\n", + "fig, ax = plt.subplots(2, 1, figsize=set_size(width, subplots=(2,1)))\n", "sns.lineplot(data=loss, x='epoch', y='vals', color='black',\n", " style='metric', dashes=[\"\", (2,1)],\n", " ax=ax[1], linewidth=1)\n", @@ -556,10 +597,84 @@ " style='metric', dashes=[\"\", (2,1)],\n", " ax=ax[0], linewidth=1)\n", "ax[0].set_ylabel('accuracy')\n", + "ax[0].legend(title=False)\n", "ax[1].set_ylabel('loss')\n", + "ax[1].legend(title=False)\n", "fig.tight_layout()\n", "fig.savefig(fig_save_dir + 'classifier-metrics.pdf', format='pdf', bbox_inches='tight')" ] + }, + { + "cell_type": "code", + "execution_count": 61, + "id": "9ea2cbd9-ad60-49b1-b962-87a05c39cfc6", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "results = pd.read_csv('train-metrics.csv')\n", + "accs = results[['epoch', 'train_acc', 'val_acc']].rename(columns={'train_acc': 'train', 'val_acc': 'val'}).melt('epoch', var_name='metric', value_name='vals')\n", + "loss = results[['epoch', 'train_loss', 'val_loss']].rename(columns={'train_loss': 'train', 'val_loss': 'val'}).melt('epoch', var_name='metric', value_name='vals')\n", + "\n", + "fig, ax = plt.subplots(1, 1, figsize=set_size(width, subplots=(1,1)))\n", + "sns.lineplot(data=accs, x='epoch', y='vals', color='black',\n", + " style='metric', dashes=[\"\", (2,1)],\n", + " ax=ax, linewidth=1)\n", + "ax.set_ylabel('accuracy')\n", + "ax.legend(title=False)\n", + "fig.tight_layout()\n", + "fig.savefig(fig_save_dir + 'classifier-metrics-acc.pdf', format='pdf', bbox_inches='tight')" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "id": "8fee1536-c38d-4a1a-b8a5-6140a8cbe451", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "results = pd.read_csv('train-metrics.csv')\n", + "accs = results[['epoch', 'train_acc', 'val_acc']].rename(columns={'train_acc': 'train', 'val_acc': 'val'}).melt('epoch', var_name='metric', value_name='vals')\n", + "loss = results[['epoch', 'train_loss', 'val_loss']].rename(columns={'train_loss': 'train', 'val_loss': 'val'}).melt('epoch', var_name='metric', value_name='vals')\n", + "\n", + "fig, ax = plt.subplots(1, 1, figsize=set_size(width, subplots=(1,1)))\n", + "sns.lineplot(data=loss, x='epoch', y='vals', color='black',\n", + " style='metric', dashes=[\"\", (2,1)],\n", + " ax=ax, linewidth=1)\n", + "ax.set_ylabel('loss')\n", + "ax.legend(title=False)\n", + "fig.tight_layout()\n", + "fig.savefig(fig_save_dir + 'classifier-metrics-loss.pdf', format='pdf', bbox_inches='tight')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d9d554ab-f7e0-4837-8da1-07e2a17586df", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { @@ -578,7 +693,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.15" + "version": "3.11.6" } }, "nbformat": 4, diff --git a/classification/poetry.lock b/classification/poetry.lock new file mode 100644 index 0000000..b6f27e9 --- /dev/null +++ b/classification/poetry.lock @@ -0,0 +1,4045 @@ +# This file is automatically @generated by Poetry 1.4.2 and should not be changed by hand. + +[[package]] +name = "albumentations" +version = "1.3.1" +description = "Fast image augmentation library and easy to use wrapper around other libraries" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "albumentations-1.3.1-py3-none-any.whl", hash = "sha256:6b641d13733181d9ecdc29550e6ad580d1bfa9d25e2213a66940062f25e291bd"}, + {file = "albumentations-1.3.1.tar.gz", hash = "sha256:a6a38388fe546c568071e8c82f414498e86c9ed03c08b58e7a88b31cf7a244c6"}, +] + +[package.dependencies] +numpy = ">=1.11.1" +opencv-python-headless = ">=4.1.1" +PyYAML = "*" +qudida = ">=0.0.4" +scikit-image = ">=0.16.1" +scipy = ">=1.1.0" + +[package.extras] +develop = ["imgaug (>=0.4.0)", "pytest"] +imgaug = ["imgaug (>=0.4.0)"] +tests = ["pytest"] + +[[package]] +name = "anyio" +version = "4.2.0" +description = "High level compatibility layer for multiple asynchronous event loop implementations" +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "anyio-4.2.0-py3-none-any.whl", hash = "sha256:745843b39e829e108e518c489b31dc757de7d2131d53fac32bd8df268227bfee"}, + {file = "anyio-4.2.0.tar.gz", hash = "sha256:e1875bb4b4e2de1669f4bc7869b6d3f54231cdced71605e6e64c9be77e3be50f"}, +] + +[package.dependencies] +exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""} +idna = ">=2.8" +sniffio = ">=1.1" +typing-extensions = {version = ">=4.1", markers = "python_version < \"3.11\""} + +[package.extras] +doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] +test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"] +trio = ["trio (>=0.23)"] + +[[package]] +name = "appdirs" +version = "1.4.4" +description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +category = "main" +optional = false +python-versions = "*" +files = [ + {file = "appdirs-1.4.4-py2.py3-none-any.whl", hash = "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128"}, + {file = "appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41"}, +] + +[[package]] +name = "appnope" +version = "0.1.3" +description = "Disable App Nap on macOS >= 10.9" +category = "main" +optional = false +python-versions = "*" +files = [ + {file = "appnope-0.1.3-py2.py3-none-any.whl", hash = "sha256:265a455292d0bd8a72453494fa24df5a11eb18373a60c7c0430889f22548605e"}, + {file = "appnope-0.1.3.tar.gz", hash = "sha256:02bd91c4de869fbb1e1c50aafc4098827a7a54ab2f39d9dcba6c9547ed920e24"}, +] + +[[package]] +name = "apscheduler" +version = "3.10.4" +description = "In-process task scheduler with Cron-like capabilities" +category = "main" +optional = false +python-versions = ">=3.6" +files = [ + {file = "APScheduler-3.10.4-py3-none-any.whl", hash = "sha256:fb91e8a768632a4756a585f79ec834e0e27aad5860bac7eaa523d9ccefd87661"}, + {file = "APScheduler-3.10.4.tar.gz", hash = "sha256:e6df071b27d9be898e486bc7940a7be50b4af2e9da7c08f0744a96d4bd4cef4a"}, +] + +[package.dependencies] +pytz = "*" +six = ">=1.4.0" +tzlocal = ">=2.0,<3.0.0 || >=4.0.0" + +[package.extras] +doc = ["sphinx", "sphinx-rtd-theme"] +gevent = ["gevent"] +mongodb = ["pymongo (>=3.0)"] +redis = ["redis (>=3.0)"] +rethinkdb = ["rethinkdb (>=2.4.0)"] +sqlalchemy = ["sqlalchemy (>=1.4)"] +testing = ["pytest", "pytest-asyncio", "pytest-cov", "pytest-tornado5"] +tornado = ["tornado (>=4.3)"] +twisted = ["twisted"] +zookeeper = ["kazoo"] + +[[package]] +name = "argon2-cffi" +version = "23.1.0" +description = "Argon2 for Python" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "argon2_cffi-23.1.0-py3-none-any.whl", hash = "sha256:c670642b78ba29641818ab2e68bd4e6a78ba53b7eff7b4c3815ae16abf91c7ea"}, + {file = "argon2_cffi-23.1.0.tar.gz", hash = "sha256:879c3e79a2729ce768ebb7d36d4609e3a78a4ca2ec3a9f12286ca057e3d0db08"}, +] + +[package.dependencies] +argon2-cffi-bindings = "*" + +[package.extras] +dev = ["argon2-cffi[tests,typing]", "tox (>4)"] +docs = ["furo", "myst-parser", "sphinx", "sphinx-copybutton", "sphinx-notfound-page"] +tests = ["hypothesis", "pytest"] +typing = ["mypy"] + +[[package]] +name = "argon2-cffi-bindings" +version = "21.2.0" +description = "Low-level CFFI bindings for Argon2" +category = "main" +optional = false +python-versions = ">=3.6" +files = [ + {file = "argon2-cffi-bindings-21.2.0.tar.gz", hash = "sha256:bb89ceffa6c791807d1305ceb77dbfacc5aa499891d2c55661c6459651fc39e3"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ccb949252cb2ab3a08c02024acb77cfb179492d5701c7cbdbfd776124d4d2367"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9524464572e12979364b7d600abf96181d3541da11e23ddf565a32e70bd4dc0d"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b746dba803a79238e925d9046a63aa26bf86ab2a2fe74ce6b009a1c3f5c8f2ae"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58ed19212051f49a523abb1dbe954337dc82d947fb6e5a0da60f7c8471a8476c"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:bd46088725ef7f58b5a1ef7ca06647ebaf0eb4baff7d1d0d177c6cc8744abd86"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_i686.whl", hash = "sha256:8cd69c07dd875537a824deec19f978e0f2078fdda07fd5c42ac29668dda5f40f"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:f1152ac548bd5b8bcecfb0b0371f082037e47128653df2e8ba6e914d384f3c3e"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win32.whl", hash = "sha256:603ca0aba86b1349b147cab91ae970c63118a0f30444d4bc80355937c950c082"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win_amd64.whl", hash = "sha256:b2ef1c30440dbbcba7a5dc3e319408b59676e2e039e2ae11a8775ecf482b192f"}, + {file = "argon2_cffi_bindings-21.2.0-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e415e3f62c8d124ee16018e491a009937f8cf7ebf5eb430ffc5de21b900dad93"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3e385d1c39c520c08b53d63300c3ecc28622f076f4c2b0e6d7e796e9f6502194"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c3e3cc67fdb7d82c4718f19b4e7a87123caf8a93fde7e23cf66ac0337d3cb3f"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a22ad9800121b71099d0fb0a65323810a15f2e292f2ba450810a7316e128ee5"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f9f8b450ed0547e3d473fdc8612083fd08dd2120d6ac8f73828df9b7d45bb351"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:93f9bf70084f97245ba10ee36575f0c3f1e7d7724d67d8e5b08e61787c320ed7"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3b9ef65804859d335dc6b31582cad2c5166f0c3e7975f324d9ffaa34ee7e6583"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4966ef5848d820776f5f562a7d45fdd70c2f330c961d0d745b784034bd9f48d"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20ef543a89dee4db46a1a6e206cd015360e5a75822f76df533845c3cbaf72670"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed2937d286e2ad0cc79a7087d3c272832865f779430e0cc2b4f3718d3159b0cb"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5e00316dabdaea0b2dd82d141cc66889ced0cdcbfa599e8b471cf22c620c329a"}, +] + +[package.dependencies] +cffi = ">=1.0.1" + +[package.extras] +dev = ["cogapp", "pre-commit", "pytest", "wheel"] +tests = ["pytest"] + +[[package]] +name = "argparse" +version = "1.4.0" +description = "Python command-line parsing library" +category = "main" +optional = false +python-versions = "*" +files = [ + {file = "argparse-1.4.0-py2.py3-none-any.whl", hash = "sha256:c31647edb69fd3d465a847ea3157d37bed1f95f19760b11a47aa91c04b666314"}, + {file = "argparse-1.4.0.tar.gz", hash = "sha256:62b089a55be1d8949cd2bc7e0df0bddb9e028faefc8c32038cc84862aefdd6e4"}, +] + +[[package]] +name = "arrow" +version = "1.3.0" +description = "Better dates & times for Python" +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "arrow-1.3.0-py3-none-any.whl", hash = "sha256:c728b120ebc00eb84e01882a6f5e7927a53960aa990ce7dd2b10f39005a67f80"}, + {file = "arrow-1.3.0.tar.gz", hash = "sha256:d4540617648cb5f895730f1ad8c82a65f2dad0166f57b75f3ca54759c4d67a85"}, +] + +[package.dependencies] +python-dateutil = ">=2.7.0" +types-python-dateutil = ">=2.8.10" + +[package.extras] +doc = ["doc8", "sphinx (>=7.0.0)", "sphinx-autobuild", "sphinx-autodoc-typehints", "sphinx_rtd_theme (>=1.3.0)"] +test = ["dateparser (>=1.0.0,<2.0.0)", "pre-commit", "pytest", "pytest-cov", "pytest-mock", "pytz (==2021.1)", "simplejson (>=3.0.0,<4.0.0)"] + +[[package]] +name = "asttokens" +version = "2.4.1" +description = "Annotate AST trees with source code positions" +category = "main" +optional = false +python-versions = "*" +files = [ + {file = "asttokens-2.4.1-py2.py3-none-any.whl", hash = "sha256:051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24"}, + {file = "asttokens-2.4.1.tar.gz", hash = "sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0"}, +] + +[package.dependencies] +six = ">=1.12.0" + +[package.extras] +astroid = ["astroid (>=1,<2)", "astroid (>=2,<4)"] +test = ["astroid (>=1,<2)", "astroid (>=2,<4)", "pytest"] + +[[package]] +name = "async-lru" +version = "2.0.4" +description = "Simple LRU cache for asyncio" +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "async-lru-2.0.4.tar.gz", hash = "sha256:b8a59a5df60805ff63220b2a0c5b5393da5521b113cd5465a44eb037d81a5627"}, + {file = "async_lru-2.0.4-py3-none-any.whl", hash = "sha256:ff02944ce3c288c5be660c42dbcca0742b32c3b279d6dceda655190240b99224"}, +] + +[package.dependencies] +typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""} + +[[package]] +name = "attrs" +version = "23.1.0" +description = "Classes Without Boilerplate" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "attrs-23.1.0-py3-none-any.whl", hash = "sha256:1f28b4522cdc2fb4256ac1a020c78acf9cba2c6b461ccd2c126f3aa8e8335d04"}, + {file = "attrs-23.1.0.tar.gz", hash = "sha256:6279836d581513a26f1bf235f9acd333bc9115683f14f7e8fae46c98fc50e015"}, +] + +[package.extras] +cov = ["attrs[tests]", "coverage[toml] (>=5.3)"] +dev = ["attrs[docs,tests]", "pre-commit"] +docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope-interface"] +tests = ["attrs[tests-no-zope]", "zope-interface"] +tests-no-zope = ["cloudpickle", "hypothesis", "mypy (>=1.1.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] + +[[package]] +name = "babel" +version = "2.14.0" +description = "Internationalization utilities" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "Babel-2.14.0-py3-none-any.whl", hash = "sha256:efb1a25b7118e67ce3a259bed20545c29cb68be8ad2c784c83689981b7a57287"}, + {file = "Babel-2.14.0.tar.gz", hash = "sha256:6919867db036398ba21eb5c7a0f6b28ab8cbc3ae7a73a44ebe34ae74a4e7d363"}, +] + +[package.extras] +dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] + +[[package]] +name = "beautifulsoup4" +version = "4.12.2" +description = "Screen-scraping library" +category = "main" +optional = false +python-versions = ">=3.6.0" +files = [ + {file = "beautifulsoup4-4.12.2-py3-none-any.whl", hash = "sha256:bd2520ca0d9d7d12694a53d44ac482d181b4ec1888909b035a3dbf40d0f57d4a"}, + {file = "beautifulsoup4-4.12.2.tar.gz", hash = "sha256:492bbc69dca35d12daac71c4db1bfff0c876c00ef4a2ffacce226d4638eb72da"}, +] + +[package.dependencies] +soupsieve = ">1.2" + +[package.extras] +html5lib = ["html5lib"] +lxml = ["lxml"] + +[[package]] +name = "bleach" +version = "6.1.0" +description = "An easy safelist-based HTML-sanitizing tool." +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "bleach-6.1.0-py3-none-any.whl", hash = "sha256:3225f354cfc436b9789c66c4ee030194bee0568fbf9cbdad3bc8b5c26c5f12b6"}, + {file = "bleach-6.1.0.tar.gz", hash = "sha256:0a31f1837963c41d46bbf1331b8778e1308ea0791db03cc4e7357b97cf42a8fe"}, +] + +[package.dependencies] +six = ">=1.9.0" +webencodings = "*" + +[package.extras] +css = ["tinycss2 (>=1.1.0,<1.3)"] + +[[package]] +name = "blinker" +version = "1.7.0" +description = "Fast, simple object-to-object and broadcast signaling" +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "blinker-1.7.0-py3-none-any.whl", hash = "sha256:c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9"}, + {file = "blinker-1.7.0.tar.gz", hash = "sha256:e6820ff6fa4e4d1d8e2747c2283749c3f547e4fee112b98555cdcdae32996182"}, +] + +[[package]] +name = "certifi" +version = "2023.11.17" +description = "Python package for providing Mozilla's CA Bundle." +category = "main" +optional = false +python-versions = ">=3.6" +files = [ + {file = "certifi-2023.11.17-py3-none-any.whl", hash = "sha256:e036ab49d5b79556f99cfc2d9320b34cfbe5be05c5871b51de9329f0603b0474"}, + {file = "certifi-2023.11.17.tar.gz", hash = "sha256:9b469f3a900bf28dc19b8cfbf8019bf47f7fdd1a65a1d4ffb98fc14166beb4d1"}, +] + +[[package]] +name = "cffi" +version = "1.16.0" +description = "Foreign Function Interface for Python calling C code." +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "cffi-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088"}, + {file = "cffi-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614"}, + {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743"}, + {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d"}, + {file = "cffi-1.16.0-cp310-cp310-win32.whl", hash = "sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a"}, + {file = "cffi-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1"}, + {file = "cffi-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404"}, + {file = "cffi-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e"}, + {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc"}, + {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb"}, + {file = "cffi-1.16.0-cp311-cp311-win32.whl", hash = "sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab"}, + {file = "cffi-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba"}, + {file = "cffi-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956"}, + {file = "cffi-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969"}, + {file = "cffi-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520"}, + {file = "cffi-1.16.0-cp312-cp312-win32.whl", hash = "sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b"}, + {file = "cffi-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235"}, + {file = "cffi-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324"}, + {file = "cffi-1.16.0-cp38-cp38-win32.whl", hash = "sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a"}, + {file = "cffi-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36"}, + {file = "cffi-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed"}, + {file = "cffi-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098"}, + {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000"}, + {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe"}, + {file = "cffi-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4"}, + {file = "cffi-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8"}, + {file = "cffi-1.16.0.tar.gz", hash = "sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0"}, +] + +[package.dependencies] +pycparser = "*" + +[[package]] +name = "charset-normalizer" +version = "3.3.2" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +category = "main" +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, + {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, +] + +[[package]] +name = "click" +version = "8.1.7" +description = "Composable command line interface toolkit" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, + {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +category = "main" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "coloredlogs" +version = "15.0.1" +description = "Colored terminal output for Python's logging module" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "coloredlogs-15.0.1-py2.py3-none-any.whl", hash = "sha256:612ee75c546f53e92e70049c9dbfcc18c935a2b9a53b66085ce9ef6a6e5c0934"}, + {file = "coloredlogs-15.0.1.tar.gz", hash = "sha256:7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5bf16b0"}, +] + +[package.dependencies] +humanfriendly = ">=9.1" + +[package.extras] +cron = ["capturer (>=2.4)"] + +[[package]] +name = "comm" +version = "0.2.0" +description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc." +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "comm-0.2.0-py3-none-any.whl", hash = "sha256:2da8d9ebb8dd7bfc247adaff99f24dce705638a8042b85cb995066793e391001"}, + {file = "comm-0.2.0.tar.gz", hash = "sha256:a517ea2ca28931c7007a7a99c562a0fa5883cfb48963140cf642c41c948498be"}, +] + +[package.dependencies] +traitlets = ">=4" + +[package.extras] +test = ["pytest"] + +[[package]] +name = "contourpy" +version = "1.2.0" +description = "Python library for calculating contours of 2D quadrilateral grids" +category = "main" +optional = false +python-versions = ">=3.9" +files = [ + {file = "contourpy-1.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0274c1cb63625972c0c007ab14dd9ba9e199c36ae1a231ce45d725cbcbfd10a8"}, + {file = "contourpy-1.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ab459a1cbbf18e8698399c595a01f6dcc5c138220ca3ea9e7e6126232d102bb4"}, + {file = "contourpy-1.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fdd887f17c2f4572ce548461e4f96396681212d858cae7bd52ba3310bc6f00f"}, + {file = "contourpy-1.2.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5d16edfc3fc09968e09ddffada434b3bf989bf4911535e04eada58469873e28e"}, + {file = "contourpy-1.2.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c203f617abc0dde5792beb586f827021069fb6d403d7f4d5c2b543d87edceb9"}, + {file = "contourpy-1.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b69303ceb2e4d4f146bf82fda78891ef7bcd80c41bf16bfca3d0d7eb545448aa"}, + {file = "contourpy-1.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:884c3f9d42d7218304bc74a8a7693d172685c84bd7ab2bab1ee567b769696df9"}, + {file = "contourpy-1.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4a1b1208102be6e851f20066bf0e7a96b7d48a07c9b0cfe6d0d4545c2f6cadab"}, + {file = "contourpy-1.2.0-cp310-cp310-win32.whl", hash = "sha256:34b9071c040d6fe45d9826cbbe3727d20d83f1b6110d219b83eb0e2a01d79488"}, + {file = "contourpy-1.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:bd2f1ae63998da104f16a8b788f685e55d65760cd1929518fd94cd682bf03e41"}, + {file = "contourpy-1.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:dd10c26b4eadae44783c45ad6655220426f971c61d9b239e6f7b16d5cdaaa727"}, + {file = "contourpy-1.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5c6b28956b7b232ae801406e529ad7b350d3f09a4fde958dfdf3c0520cdde0dd"}, + {file = "contourpy-1.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ebeac59e9e1eb4b84940d076d9f9a6cec0064e241818bcb6e32124cc5c3e377a"}, + {file = "contourpy-1.2.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:139d8d2e1c1dd52d78682f505e980f592ba53c9f73bd6be102233e358b401063"}, + {file = "contourpy-1.2.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1e9dc350fb4c58adc64df3e0703ab076f60aac06e67d48b3848c23647ae4310e"}, + {file = "contourpy-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18fc2b4ed8e4a8fe849d18dce4bd3c7ea637758c6343a1f2bae1e9bd4c9f4686"}, + {file = "contourpy-1.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:16a7380e943a6d52472096cb7ad5264ecee36ed60888e2a3d3814991a0107286"}, + {file = "contourpy-1.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:8d8faf05be5ec8e02a4d86f616fc2a0322ff4a4ce26c0f09d9f7fb5330a35c95"}, + {file = "contourpy-1.2.0-cp311-cp311-win32.whl", hash = "sha256:67b7f17679fa62ec82b7e3e611c43a016b887bd64fb933b3ae8638583006c6d6"}, + {file = "contourpy-1.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:99ad97258985328b4f207a5e777c1b44a83bfe7cf1f87b99f9c11d4ee477c4de"}, + {file = "contourpy-1.2.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:575bcaf957a25d1194903a10bc9f316c136c19f24e0985a2b9b5608bdf5dbfe0"}, + {file = "contourpy-1.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9e6c93b5b2dbcedad20a2f18ec22cae47da0d705d454308063421a3b290d9ea4"}, + {file = "contourpy-1.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:464b423bc2a009088f19bdf1f232299e8b6917963e2b7e1d277da5041f33a779"}, + {file = "contourpy-1.2.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:68ce4788b7d93e47f84edd3f1f95acdcd142ae60bc0e5493bfd120683d2d4316"}, + {file = "contourpy-1.2.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d7d1f8871998cdff5d2ff6a087e5e1780139abe2838e85b0b46b7ae6cc25399"}, + {file = "contourpy-1.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e739530c662a8d6d42c37c2ed52a6f0932c2d4a3e8c1f90692ad0ce1274abe0"}, + {file = "contourpy-1.2.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:247b9d16535acaa766d03037d8e8fb20866d054d3c7fbf6fd1f993f11fc60ca0"}, + {file = "contourpy-1.2.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:461e3ae84cd90b30f8d533f07d87c00379644205b1d33a5ea03381edc4b69431"}, + {file = "contourpy-1.2.0-cp312-cp312-win32.whl", hash = "sha256:1c2559d6cffc94890b0529ea7eeecc20d6fadc1539273aa27faf503eb4656d8f"}, + {file = "contourpy-1.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:491b1917afdd8638a05b611a56d46587d5a632cabead889a5440f7c638bc6ed9"}, + {file = "contourpy-1.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5fd1810973a375ca0e097dee059c407913ba35723b111df75671a1976efa04bc"}, + {file = "contourpy-1.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:999c71939aad2780f003979b25ac5b8f2df651dac7b38fb8ce6c46ba5abe6ae9"}, + {file = "contourpy-1.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b7caf9b241464c404613512d5594a6e2ff0cc9cb5615c9475cc1d9b514218ae8"}, + {file = "contourpy-1.2.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:266270c6f6608340f6c9836a0fb9b367be61dde0c9a9a18d5ece97774105ff3e"}, + {file = "contourpy-1.2.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dbd50d0a0539ae2e96e537553aff6d02c10ed165ef40c65b0e27e744a0f10af8"}, + {file = "contourpy-1.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11f8d2554e52f459918f7b8e6aa20ec2a3bce35ce95c1f0ef4ba36fbda306df5"}, + {file = "contourpy-1.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ce96dd400486e80ac7d195b2d800b03e3e6a787e2a522bfb83755938465a819e"}, + {file = "contourpy-1.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6d3364b999c62f539cd403f8123ae426da946e142312a514162adb2addd8d808"}, + {file = "contourpy-1.2.0-cp39-cp39-win32.whl", hash = "sha256:1c88dfb9e0c77612febebb6ac69d44a8d81e3dc60f993215425b62c1161353f4"}, + {file = "contourpy-1.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:78e6ad33cf2e2e80c5dfaaa0beec3d61face0fb650557100ee36db808bfa6843"}, + {file = "contourpy-1.2.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:be16975d94c320432657ad2402f6760990cb640c161ae6da1363051805fa8108"}, + {file = "contourpy-1.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b95a225d4948b26a28c08307a60ac00fb8671b14f2047fc5476613252a129776"}, + {file = "contourpy-1.2.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:0d7e03c0f9a4f90dc18d4e77e9ef4ec7b7bbb437f7f675be8e530d65ae6ef956"}, + {file = "contourpy-1.2.0.tar.gz", hash = "sha256:171f311cb758de7da13fc53af221ae47a5877be5a0843a9fe150818c51ed276a"}, +] + +[package.dependencies] +numpy = ">=1.20,<2.0" + +[package.extras] +bokeh = ["bokeh", "selenium"] +docs = ["furo", "sphinx (>=7.2)", "sphinx-copybutton"] +mypy = ["contourpy[bokeh,docs]", "docutils-stubs", "mypy (==1.6.1)", "types-Pillow"] +test = ["Pillow", "contourpy[test-no-images]", "matplotlib"] +test-no-images = ["pytest", "pytest-cov", "pytest-xdist", "wurlitzer"] + +[[package]] +name = "cycler" +version = "0.12.1" +description = "Composable style cycles" +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30"}, + {file = "cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c"}, +] + +[package.extras] +docs = ["ipython", "matplotlib", "numpydoc", "sphinx"] +tests = ["pytest", "pytest-cov", "pytest-xdist"] + +[[package]] +name = "debugpy" +version = "1.8.0" +description = "An implementation of the Debug Adapter Protocol for Python" +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "debugpy-1.8.0-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:7fb95ca78f7ac43393cd0e0f2b6deda438ec7c5e47fa5d38553340897d2fbdfb"}, + {file = "debugpy-1.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef9ab7df0b9a42ed9c878afd3eaaff471fce3fa73df96022e1f5c9f8f8c87ada"}, + {file = "debugpy-1.8.0-cp310-cp310-win32.whl", hash = "sha256:a8b7a2fd27cd9f3553ac112f356ad4ca93338feadd8910277aff71ab24d8775f"}, + {file = "debugpy-1.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:5d9de202f5d42e62f932507ee8b21e30d49aae7e46d5b1dd5c908db1d7068637"}, + {file = "debugpy-1.8.0-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:ef54404365fae8d45cf450d0544ee40cefbcb9cb85ea7afe89a963c27028261e"}, + {file = "debugpy-1.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:60009b132c91951354f54363f8ebdf7457aeb150e84abba5ae251b8e9f29a8a6"}, + {file = "debugpy-1.8.0-cp311-cp311-win32.whl", hash = "sha256:8cd0197141eb9e8a4566794550cfdcdb8b3db0818bdf8c49a8e8f8053e56e38b"}, + {file = "debugpy-1.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:a64093656c4c64dc6a438e11d59369875d200bd5abb8f9b26c1f5f723622e153"}, + {file = "debugpy-1.8.0-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:b05a6b503ed520ad58c8dc682749113d2fd9f41ffd45daec16e558ca884008cd"}, + {file = "debugpy-1.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c6fb41c98ec51dd010d7ed650accfd07a87fe5e93eca9d5f584d0578f28f35f"}, + {file = "debugpy-1.8.0-cp38-cp38-win32.whl", hash = "sha256:46ab6780159eeabb43c1495d9c84cf85d62975e48b6ec21ee10c95767c0590aa"}, + {file = "debugpy-1.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:bdc5ef99d14b9c0fcb35351b4fbfc06ac0ee576aeab6b2511702e5a648a2e595"}, + {file = "debugpy-1.8.0-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:61eab4a4c8b6125d41a34bad4e5fe3d2cc145caecd63c3fe953be4cc53e65bf8"}, + {file = "debugpy-1.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:125b9a637e013f9faac0a3d6a82bd17c8b5d2c875fb6b7e2772c5aba6d082332"}, + {file = "debugpy-1.8.0-cp39-cp39-win32.whl", hash = "sha256:57161629133113c97b387382045649a2b985a348f0c9366e22217c87b68b73c6"}, + {file = "debugpy-1.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:e3412f9faa9ade82aa64a50b602544efcba848c91384e9f93497a458767e6926"}, + {file = "debugpy-1.8.0-py2.py3-none-any.whl", hash = "sha256:9c9b0ac1ce2a42888199df1a1906e45e6f3c9555497643a85e0bf2406e3ffbc4"}, + {file = "debugpy-1.8.0.zip", hash = "sha256:12af2c55b419521e33d5fb21bd022df0b5eb267c3e178f1d374a63a2a6bdccd0"}, +] + +[[package]] +name = "decorator" +version = "5.1.1" +description = "Decorators for Humans" +category = "main" +optional = false +python-versions = ">=3.5" +files = [ + {file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"}, + {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"}, +] + +[[package]] +name = "defusedxml" +version = "0.7.1" +description = "XML bomb protection for Python stdlib modules" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"}, + {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, +] + +[[package]] +name = "docker-pycreds" +version = "0.4.0" +description = "Python bindings for the docker credentials store API" +category = "main" +optional = false +python-versions = "*" +files = [ + {file = "docker-pycreds-0.4.0.tar.gz", hash = "sha256:6ce3270bcaf404cc4c3e27e4b6c70d3521deae82fb508767870fdbf772d584d4"}, + {file = "docker_pycreds-0.4.0-py2.py3-none-any.whl", hash = "sha256:7266112468627868005106ec19cd0d722702d2b7d5912a28e19b826c3d37af49"}, +] + +[package.dependencies] +six = ">=1.4.0" + +[[package]] +name = "exceptiongroup" +version = "1.2.0" +description = "Backport of PEP 654 (exception groups)" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "exceptiongroup-1.2.0-py3-none-any.whl", hash = "sha256:4bfd3996ac73b41e9b9628b04e079f193850720ea5945fc96a08633c66912f14"}, + {file = "exceptiongroup-1.2.0.tar.gz", hash = "sha256:91f5c769735f051a4290d52edd0858999b57e5876e9f85937691bd4c9fa3ed68"}, +] + +[package.extras] +test = ["pytest (>=6)"] + +[[package]] +name = "executing" +version = "2.0.1" +description = "Get the currently executing AST node of a frame, and other information" +category = "main" +optional = false +python-versions = ">=3.5" +files = [ + {file = "executing-2.0.1-py2.py3-none-any.whl", hash = "sha256:eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc"}, + {file = "executing-2.0.1.tar.gz", hash = "sha256:35afe2ce3affba8ee97f2d69927fa823b08b472b7b994e36a52a964b93d16147"}, +] + +[package.extras] +tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipython", "littleutils", "pytest", "rich"] + +[[package]] +name = "fastjsonschema" +version = "2.19.1" +description = "Fastest Python implementation of JSON schema" +category = "main" +optional = false +python-versions = "*" +files = [ + {file = "fastjsonschema-2.19.1-py3-none-any.whl", hash = "sha256:3672b47bc94178c9f23dbb654bf47440155d4db9df5f7bc47643315f9c405cd0"}, + {file = "fastjsonschema-2.19.1.tar.gz", hash = "sha256:e3126a94bdc4623d3de4485f8d468a12f02a67921315ddc87836d6e456dc789d"}, +] + +[package.extras] +devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benchmark", "pytest-cache", "validictory"] + +[[package]] +name = "filelock" +version = "3.13.1" +description = "A platform independent file lock." +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "filelock-3.13.1-py3-none-any.whl", hash = "sha256:57dbda9b35157b05fb3e58ee91448612eb674172fab98ee235ccb0b5bee19a1c"}, + {file = "filelock-3.13.1.tar.gz", hash = "sha256:521f5f56c50f8426f5e03ad3b281b490a87ef15bc6c526f168290f0c7148d44e"}, +] + +[package.extras] +docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.24)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.3.2)", "diff-cover (>=8)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-timeout (>=2.2)"] +typing = ["typing-extensions (>=4.8)"] + +[[package]] +name = "flask" +version = "2.3.3" +description = "A simple framework for building complex web applications." +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "flask-2.3.3-py3-none-any.whl", hash = "sha256:f69fcd559dc907ed196ab9df0e48471709175e696d6e698dd4dbe940f96ce66b"}, + {file = "flask-2.3.3.tar.gz", hash = "sha256:09c347a92aa7ff4a8e7f3206795f30d826654baf38b873d0744cd571ca609efc"}, +] + +[package.dependencies] +blinker = ">=1.6.2" +click = ">=8.1.3" +itsdangerous = ">=2.1.2" +Jinja2 = ">=3.1.2" +Werkzeug = ">=2.3.7" + +[package.extras] +async = ["asgiref (>=3.2)"] +dotenv = ["python-dotenv"] + +[[package]] +name = "flatbuffers" +version = "23.5.26" +description = "The FlatBuffers serialization format for Python" +category = "main" +optional = false +python-versions = "*" +files = [ + {file = "flatbuffers-23.5.26-py2.py3-none-any.whl", hash = "sha256:c0ff356da363087b915fde4b8b45bdda73432fc17cddb3c8157472eab1422ad1"}, + {file = "flatbuffers-23.5.26.tar.gz", hash = "sha256:9ea1144cac05ce5d86e2859f431c6cd5e66cd9c78c558317c7955fb8d4c78d89"}, +] + +[[package]] +name = "fonttools" +version = "4.47.0" +description = "Tools to manipulate font files" +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "fonttools-4.47.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:2d2404107626f97a221dc1a65b05396d2bb2ce38e435f64f26ed2369f68675d9"}, + {file = "fonttools-4.47.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c01f409be619a9a0f5590389e37ccb58b47264939f0e8d58bfa1f3ba07d22671"}, + {file = "fonttools-4.47.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d986b66ff722ef675b7ee22fbe5947a41f60a61a4da15579d5e276d897fbc7fa"}, + {file = "fonttools-4.47.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e8acf6dd0434b211b3bd30d572d9e019831aae17a54016629fa8224783b22df8"}, + {file = "fonttools-4.47.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:495369c660e0c27233e3c572269cbe520f7f4978be675f990f4005937337d391"}, + {file = "fonttools-4.47.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c59227d7ba5b232281c26ae04fac2c73a79ad0e236bca5c44aae904a18f14faf"}, + {file = "fonttools-4.47.0-cp310-cp310-win32.whl", hash = "sha256:59a6c8b71a245800e923cb684a2dc0eac19c56493e2f896218fcf2571ed28984"}, + {file = "fonttools-4.47.0-cp310-cp310-win_amd64.whl", hash = "sha256:52c82df66201f3a90db438d9d7b337c7c98139de598d0728fb99dab9fd0495ca"}, + {file = "fonttools-4.47.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:854421e328d47d70aa5abceacbe8eef231961b162c71cbe7ff3f47e235e2e5c5"}, + {file = "fonttools-4.47.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:511482df31cfea9f697930f61520f6541185fa5eeba2fa760fe72e8eee5af88b"}, + {file = "fonttools-4.47.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce0e2c88c8c985b7b9a7efcd06511fb0a1fe3ddd9a6cd2895ef1dbf9059719d7"}, + {file = "fonttools-4.47.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e7a0a8848726956e9d9fb18c977a279013daadf0cbb6725d2015a6dd57527992"}, + {file = "fonttools-4.47.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e869da810ae35afb3019baa0d0306cdbab4760a54909c89ad8904fa629991812"}, + {file = "fonttools-4.47.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:dd23848f877c3754f53a4903fb7a593ed100924f9b4bff7d5a4e2e8a7001ae11"}, + {file = "fonttools-4.47.0-cp311-cp311-win32.whl", hash = "sha256:bf1810635c00f7c45d93085611c995fc130009cec5abdc35b327156aa191f982"}, + {file = "fonttools-4.47.0-cp311-cp311-win_amd64.whl", hash = "sha256:61df4dee5d38ab65b26da8efd62d859a1eef7a34dcbc331299a28e24d04c59a7"}, + {file = "fonttools-4.47.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:e3f4d61f3a8195eac784f1d0c16c0a3105382c1b9a74d99ac4ba421da39a8826"}, + {file = "fonttools-4.47.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:174995f7b057e799355b393e97f4f93ef1f2197cbfa945e988d49b2a09ecbce8"}, + {file = "fonttools-4.47.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ea592e6a09b71cb7a7661dd93ac0b877a6228e2d677ebacbad0a4d118494c86d"}, + {file = "fonttools-4.47.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40bdbe90b33897d9cc4a39f8e415b0fcdeae4c40a99374b8a4982f127ff5c767"}, + {file = "fonttools-4.47.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:843509ae9b93db5aaf1a6302085e30bddc1111d31e11d724584818f5b698f500"}, + {file = "fonttools-4.47.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:9acfa1cdc479e0dde528b61423855913d949a7f7fe09e276228298fef4589540"}, + {file = "fonttools-4.47.0-cp312-cp312-win32.whl", hash = "sha256:66c92ec7f95fd9732550ebedefcd190a8d81beaa97e89d523a0d17198a8bda4d"}, + {file = "fonttools-4.47.0-cp312-cp312-win_amd64.whl", hash = "sha256:e8fa20748de55d0021f83754b371432dca0439e02847962fc4c42a0e444c2d78"}, + {file = "fonttools-4.47.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:c75e19971209fbbce891ebfd1b10c37320a5a28e8d438861c21d35305aedb81c"}, + {file = "fonttools-4.47.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:e79f1a3970d25f692bbb8c8c2637e621a66c0d60c109ab48d4a160f50856deff"}, + {file = "fonttools-4.47.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:562681188c62c024fe2c611b32e08b8de2afa00c0c4e72bed47c47c318e16d5c"}, + {file = "fonttools-4.47.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a77a60315c33393b2bd29d538d1ef026060a63d3a49a9233b779261bad9c3f71"}, + {file = "fonttools-4.47.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b4fabb8cc9422efae1a925160083fdcbab8fdc96a8483441eb7457235df625bd"}, + {file = "fonttools-4.47.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2a78dba8c2a1e9d53a0fb5382979f024200dc86adc46a56cbb668a2249862fda"}, + {file = "fonttools-4.47.0-cp38-cp38-win32.whl", hash = "sha256:e6b968543fde4119231c12c2a953dcf83349590ca631ba8216a8edf9cd4d36a9"}, + {file = "fonttools-4.47.0-cp38-cp38-win_amd64.whl", hash = "sha256:4a9a51745c0439516d947480d4d884fa18bd1458e05b829e482b9269afa655bc"}, + {file = "fonttools-4.47.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:62d8ddb058b8e87018e5dc26f3258e2c30daad4c87262dfeb0e2617dd84750e6"}, + {file = "fonttools-4.47.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5dde0eab40faaa5476133123f6a622a1cc3ac9b7af45d65690870620323308b4"}, + {file = "fonttools-4.47.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f4da089f6dfdb822293bde576916492cd708c37c2501c3651adde39804630538"}, + {file = "fonttools-4.47.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:253bb46bab970e8aae254cebf2ae3db98a4ef6bd034707aa68a239027d2b198d"}, + {file = "fonttools-4.47.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:1193fb090061efa2f9e2d8d743ae9850c77b66746a3b32792324cdce65784154"}, + {file = "fonttools-4.47.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:084511482dd265bce6dca24c509894062f0117e4e6869384d853f46c0e6d43be"}, + {file = "fonttools-4.47.0-cp39-cp39-win32.whl", hash = "sha256:97620c4af36e4c849e52661492e31dc36916df12571cb900d16960ab8e92a980"}, + {file = "fonttools-4.47.0-cp39-cp39-win_amd64.whl", hash = "sha256:e77bdf52185bdaf63d39f3e1ac3212e6cfa3ab07d509b94557a8902ce9c13c82"}, + {file = "fonttools-4.47.0-py3-none-any.whl", hash = "sha256:d6477ba902dd2d7adda7f0fd3bfaeb92885d45993c9e1928c9f28fc3961415f7"}, + {file = "fonttools-4.47.0.tar.gz", hash = "sha256:ec13a10715eef0e031858c1c23bfaee6cba02b97558e4a7bfa089dba4a8c2ebf"}, +] + +[package.extras] +all = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "fs (>=2.2.0,<3)", "lxml (>=4.0,<5)", "lz4 (>=1.7.4.2)", "matplotlib", "munkres", "pycairo", "scipy", "skia-pathops (>=0.5.0)", "sympy", "uharfbuzz (>=0.23.0)", "unicodedata2 (>=15.1.0)", "xattr", "zopfli (>=0.1.4)"] +graphite = ["lz4 (>=1.7.4.2)"] +interpolatable = ["munkres", "pycairo", "scipy"] +lxml = ["lxml (>=4.0,<5)"] +pathops = ["skia-pathops (>=0.5.0)"] +plot = ["matplotlib"] +repacker = ["uharfbuzz (>=0.23.0)"] +symfont = ["sympy"] +type1 = ["xattr"] +ufo = ["fs (>=2.2.0,<3)"] +unicode = ["unicodedata2 (>=15.1.0)"] +woff = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "zopfli (>=0.1.4)"] + +[[package]] +name = "fqdn" +version = "1.5.1" +description = "Validates fully-qualified domain names against RFC 1123, so that they are acceptable to modern bowsers" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0, !=3.1, !=3.2, !=3.3, !=3.4, <4" +files = [ + {file = "fqdn-1.5.1-py3-none-any.whl", hash = "sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014"}, + {file = "fqdn-1.5.1.tar.gz", hash = "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f"}, +] + +[[package]] +name = "fsspec" +version = "2023.12.2" +description = "File-system specification" +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "fsspec-2023.12.2-py3-none-any.whl", hash = "sha256:d800d87f72189a745fa3d6b033b9dc4a34ad069f60ca60b943a63599f5501960"}, + {file = "fsspec-2023.12.2.tar.gz", hash = "sha256:8548d39e8810b59c38014934f6b31e57f40c1b20f911f4cc2b85389c7e9bf0cb"}, +] + +[package.extras] +abfs = ["adlfs"] +adl = ["adlfs"] +arrow = ["pyarrow (>=1)"] +dask = ["dask", "distributed"] +devel = ["pytest", "pytest-cov"] +dropbox = ["dropbox", "dropboxdrivefs", "requests"] +full = ["adlfs", "aiohttp (!=4.0.0a0,!=4.0.0a1)", "dask", "distributed", "dropbox", "dropboxdrivefs", "fusepy", "gcsfs", "libarchive-c", "ocifs", "panel", "paramiko", "pyarrow (>=1)", "pygit2", "requests", "s3fs", "smbprotocol", "tqdm"] +fuse = ["fusepy"] +gcs = ["gcsfs"] +git = ["pygit2"] +github = ["requests"] +gs = ["gcsfs"] +gui = ["panel"] +hdfs = ["pyarrow (>=1)"] +http = ["aiohttp (!=4.0.0a0,!=4.0.0a1)", "requests"] +libarchive = ["libarchive-c"] +oci = ["ocifs"] +s3 = ["s3fs"] +sftp = ["paramiko"] +smb = ["smbprotocol"] +ssh = ["paramiko"] +tqdm = ["tqdm"] + +[[package]] +name = "gitdb" +version = "4.0.11" +description = "Git Object Database" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "gitdb-4.0.11-py3-none-any.whl", hash = "sha256:81a3407ddd2ee8df444cbacea00e2d038e40150acfa3001696fe0dcf1d3adfa4"}, + {file = "gitdb-4.0.11.tar.gz", hash = "sha256:bf5421126136d6d0af55bc1e7c1af1c397a34f5b7bd79e776cd3e89785c2b04b"}, +] + +[package.dependencies] +smmap = ">=3.0.1,<6" + +[[package]] +name = "gitpython" +version = "3.1.40" +description = "GitPython is a Python library used to interact with Git repositories" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "GitPython-3.1.40-py3-none-any.whl", hash = "sha256:cf14627d5a8049ffbf49915732e5eddbe8134c3bdb9d476e6182b676fc573f8a"}, + {file = "GitPython-3.1.40.tar.gz", hash = "sha256:22b126e9ffb671fdd0c129796343a02bf67bf2994b35449ffc9321aa755e18a4"}, +] + +[package.dependencies] +gitdb = ">=4.0.1,<5" + +[package.extras] +test = ["black", "coverage[toml]", "ddt (>=1.1.1,!=1.4.3)", "mock", "mypy", "pre-commit", "pytest", "pytest-cov", "pytest-instafail", "pytest-subtests", "pytest-sugar"] + +[[package]] +name = "humanfriendly" +version = "10.0" +description = "Human friendly output for text interfaces using Python" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "humanfriendly-10.0-py2.py3-none-any.whl", hash = "sha256:1697e1a8a8f550fd43c2865cd84542fc175a61dcb779b6fee18cf6b6ccba1477"}, + {file = "humanfriendly-10.0.tar.gz", hash = "sha256:6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc"}, +] + +[package.dependencies] +pyreadline3 = {version = "*", markers = "sys_platform == \"win32\" and python_version >= \"3.8\""} + +[[package]] +name = "idna" +version = "3.6" +description = "Internationalized Domain Names in Applications (IDNA)" +category = "main" +optional = false +python-versions = ">=3.5" +files = [ + {file = "idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f"}, + {file = "idna-3.6.tar.gz", hash = "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca"}, +] + +[[package]] +name = "imageio" +version = "2.33.1" +description = "Library for reading and writing a wide range of image, video, scientific, and volumetric data formats." +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "imageio-2.33.1-py3-none-any.whl", hash = "sha256:c5094c48ccf6b2e6da8b4061cd95e1209380afafcbeae4a4e280938cce227e1d"}, + {file = "imageio-2.33.1.tar.gz", hash = "sha256:78722d40b137bd98f5ec7312119f8aea9ad2049f76f434748eb306b6937cc1ce"}, +] + +[package.dependencies] +numpy = "*" +pillow = ">=8.3.2" + +[package.extras] +all-plugins = ["astropy", "av", "imageio-ffmpeg", "pillow-heif", "psutil", "tifffile"] +all-plugins-pypy = ["av", "imageio-ffmpeg", "pillow-heif", "psutil", "tifffile"] +build = ["wheel"] +dev = ["black", "flake8", "fsspec[github]", "pytest", "pytest-cov"] +docs = ["numpydoc", "pydata-sphinx-theme", "sphinx (<6)"] +ffmpeg = ["imageio-ffmpeg", "psutil"] +fits = ["astropy"] +full = ["astropy", "av", "black", "flake8", "fsspec[github]", "gdal", "imageio-ffmpeg", "itk", "numpydoc", "pillow-heif", "psutil", "pydata-sphinx-theme", "pytest", "pytest-cov", "sphinx (<6)", "tifffile", "wheel"] +gdal = ["gdal"] +itk = ["itk"] +linting = ["black", "flake8"] +pillow-heif = ["pillow-heif"] +pyav = ["av"] +test = ["fsspec[github]", "pytest", "pytest-cov"] +tifffile = ["tifffile"] + +[[package]] +name = "ipykernel" +version = "6.28.0" +description = "IPython Kernel for Jupyter" +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "ipykernel-6.28.0-py3-none-any.whl", hash = "sha256:c6e9a9c63a7f4095c0a22a79f765f079f9ec7be4f2430a898ddea889e8665661"}, + {file = "ipykernel-6.28.0.tar.gz", hash = "sha256:69c11403d26de69df02225916f916b37ea4b9af417da0a8c827f84328d88e5f3"}, +] + +[package.dependencies] +appnope = {version = "*", markers = "platform_system == \"Darwin\""} +comm = ">=0.1.1" +debugpy = ">=1.6.5" +ipython = ">=7.23.1" +jupyter-client = ">=6.1.12" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" +matplotlib-inline = ">=0.1" +nest-asyncio = "*" +packaging = "*" +psutil = "*" +pyzmq = ">=24" +tornado = ">=6.1" +traitlets = ">=5.4.0" + +[package.extras] +cov = ["coverage[toml]", "curio", "matplotlib", "pytest-cov", "trio"] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "trio"] +pyqt5 = ["pyqt5"] +pyside6 = ["pyside6"] +test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio", "pytest-cov", "pytest-timeout"] + +[[package]] +name = "ipython" +version = "8.19.0" +description = "IPython: Productive Interactive Computing" +category = "main" +optional = false +python-versions = ">=3.10" +files = [ + {file = "ipython-8.19.0-py3-none-any.whl", hash = "sha256:2f55d59370f59d0d2b2212109fe0e6035cfea436b1c0e6150ad2244746272ec5"}, + {file = "ipython-8.19.0.tar.gz", hash = "sha256:ac4da4ecf0042fb4e0ce57c60430c2db3c719fa8bdf92f8631d6bd8a5785d1f0"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "sys_platform == \"win32\""} +decorator = "*" +exceptiongroup = {version = "*", markers = "python_version < \"3.11\""} +jedi = ">=0.16" +matplotlib-inline = "*" +pexpect = {version = ">4.3", markers = "sys_platform != \"win32\""} +prompt-toolkit = ">=3.0.41,<3.1.0" +pygments = ">=2.4.0" +stack-data = "*" +traitlets = ">=5" + +[package.extras] +all = ["black", "curio", "docrepr", "exceptiongroup", "ipykernel", "ipyparallel", "ipywidgets", "matplotlib", "matplotlib (!=3.2.0)", "nbconvert", "nbformat", "notebook", "numpy (>=1.23)", "pandas", "pickleshare", "pytest", "pytest-asyncio (<0.22)", "qtconsole", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "trio", "typing-extensions"] +black = ["black"] +doc = ["docrepr", "exceptiongroup", "ipykernel", "matplotlib", "pickleshare", "pytest", "pytest-asyncio (<0.22)", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "typing-extensions"] +kernel = ["ipykernel"] +nbconvert = ["nbconvert"] +nbformat = ["nbformat"] +notebook = ["ipywidgets", "notebook"] +parallel = ["ipyparallel"] +qtconsole = ["qtconsole"] +test = ["pickleshare", "pytest", "pytest-asyncio (<0.22)", "testpath"] +test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.23)", "pandas", "pickleshare", "pytest", "pytest-asyncio (<0.22)", "testpath", "trio"] + +[[package]] +name = "ipywidgets" +version = "8.1.1" +description = "Jupyter interactive widgets" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "ipywidgets-8.1.1-py3-none-any.whl", hash = "sha256:2b88d728656aea3bbfd05d32c747cfd0078f9d7e159cf982433b58ad717eed7f"}, + {file = "ipywidgets-8.1.1.tar.gz", hash = "sha256:40211efb556adec6fa450ccc2a77d59ca44a060f4f9f136833df59c9f538e6e8"}, +] + +[package.dependencies] +comm = ">=0.1.3" +ipython = ">=6.1.0" +jupyterlab-widgets = ">=3.0.9,<3.1.0" +traitlets = ">=4.3.1" +widgetsnbextension = ">=4.0.9,<4.1.0" + +[package.extras] +test = ["ipykernel", "jsonschema", "pytest (>=3.6.0)", "pytest-cov", "pytz"] + +[[package]] +name = "isoduration" +version = "20.11.0" +description = "Operations with ISO 8601 durations" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "isoduration-20.11.0-py3-none-any.whl", hash = "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042"}, + {file = "isoduration-20.11.0.tar.gz", hash = "sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9"}, +] + +[package.dependencies] +arrow = ">=0.15.0" + +[[package]] +name = "itsdangerous" +version = "2.1.2" +description = "Safely pass data to untrusted environments and back." +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "itsdangerous-2.1.2-py3-none-any.whl", hash = "sha256:2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44"}, + {file = "itsdangerous-2.1.2.tar.gz", hash = "sha256:5dbbc68b317e5e42f327f9021763545dc3fc3bfe22e6deb96aaf1fc38874156a"}, +] + +[[package]] +name = "jedi" +version = "0.19.1" +description = "An autocompletion tool for Python that can be used for text editors." +category = "main" +optional = false +python-versions = ">=3.6" +files = [ + {file = "jedi-0.19.1-py2.py3-none-any.whl", hash = "sha256:e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0"}, + {file = "jedi-0.19.1.tar.gz", hash = "sha256:cf0496f3651bc65d7174ac1b7d043eff454892c708a87d1b683e57b569927ffd"}, +] + +[package.dependencies] +parso = ">=0.8.3,<0.9.0" + +[package.extras] +docs = ["Jinja2 (==2.11.3)", "MarkupSafe (==1.1.1)", "Pygments (==2.8.1)", "alabaster (==0.7.12)", "babel (==2.9.1)", "chardet (==4.0.0)", "commonmark (==0.8.1)", "docutils (==0.17.1)", "future (==0.18.2)", "idna (==2.10)", "imagesize (==1.2.0)", "mock (==1.0.1)", "packaging (==20.9)", "pyparsing (==2.4.7)", "pytz (==2021.1)", "readthedocs-sphinx-ext (==2.1.4)", "recommonmark (==0.5.0)", "requests (==2.25.1)", "six (==1.15.0)", "snowballstemmer (==2.1.0)", "sphinx (==1.8.5)", "sphinx-rtd-theme (==0.4.3)", "sphinxcontrib-serializinghtml (==1.1.4)", "sphinxcontrib-websupport (==1.2.4)", "urllib3 (==1.26.4)"] +qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] +testing = ["Django", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] + +[[package]] +name = "jinja2" +version = "3.1.2" +description = "A very fast and expressive template engine." +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"}, + {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"}, +] + +[package.dependencies] +MarkupSafe = ">=2.0" + +[package.extras] +i18n = ["Babel (>=2.7)"] + +[[package]] +name = "joblib" +version = "1.3.2" +description = "Lightweight pipelining with Python functions" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "joblib-1.3.2-py3-none-any.whl", hash = "sha256:ef4331c65f239985f3f2220ecc87db222f08fd22097a3dd5698f693875f8cbb9"}, + {file = "joblib-1.3.2.tar.gz", hash = "sha256:92f865e621e17784e7955080b6d042489e3b8e294949cc44c6eac304f59772b1"}, +] + +[[package]] +name = "json5" +version = "0.9.14" +description = "A Python implementation of the JSON5 data format." +category = "main" +optional = false +python-versions = "*" +files = [ + {file = "json5-0.9.14-py2.py3-none-any.whl", hash = "sha256:740c7f1b9e584a468dbb2939d8d458db3427f2c93ae2139d05f47e453eae964f"}, + {file = "json5-0.9.14.tar.gz", hash = "sha256:9ed66c3a6ca3510a976a9ef9b8c0787de24802724ab1860bc0153c7fdd589b02"}, +] + +[package.extras] +dev = ["hypothesis"] + +[[package]] +name = "jsonpointer" +version = "2.4" +description = "Identify specific nodes in a JSON document (RFC 6901)" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*" +files = [ + {file = "jsonpointer-2.4-py2.py3-none-any.whl", hash = "sha256:15d51bba20eea3165644553647711d150376234112651b4f1811022aecad7d7a"}, + {file = "jsonpointer-2.4.tar.gz", hash = "sha256:585cee82b70211fa9e6043b7bb89db6e1aa49524340dde8ad6b63206ea689d88"}, +] + +[[package]] +name = "jsonschema" +version = "4.20.0" +description = "An implementation of JSON Schema validation for Python" +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jsonschema-4.20.0-py3-none-any.whl", hash = "sha256:ed6231f0429ecf966f5bc8dfef245998220549cbbcf140f913b7464c52c3b6b3"}, + {file = "jsonschema-4.20.0.tar.gz", hash = "sha256:4f614fd46d8d61258610998997743ec5492a648b33cf478c1ddc23ed4598a5fa"}, +] + +[package.dependencies] +attrs = ">=22.2.0" +fqdn = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +idna = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +isoduration = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +jsonpointer = {version = ">1.13", optional = true, markers = "extra == \"format-nongpl\""} +jsonschema-specifications = ">=2023.03.6" +referencing = ">=0.28.4" +rfc3339-validator = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +rfc3986-validator = {version = ">0.1.0", optional = true, markers = "extra == \"format-nongpl\""} +rpds-py = ">=0.7.1" +uri-template = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +webcolors = {version = ">=1.11", optional = true, markers = "extra == \"format-nongpl\""} + +[package.extras] +format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"] +format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=1.11)"] + +[[package]] +name = "jsonschema-specifications" +version = "2023.12.1" +description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jsonschema_specifications-2023.12.1-py3-none-any.whl", hash = "sha256:87e4fdf3a94858b8a2ba2778d9ba57d8a9cafca7c7489c46ba0d30a8bc6a9c3c"}, + {file = "jsonschema_specifications-2023.12.1.tar.gz", hash = "sha256:48a76787b3e70f5ed53f1160d2b81f586e4ca6d1548c5de7085d1682674764cc"}, +] + +[package.dependencies] +referencing = ">=0.31.0" + +[[package]] +name = "jupyter" +version = "1.0.0" +description = "Jupyter metapackage. Install all the Jupyter components in one go." +category = "main" +optional = false +python-versions = "*" +files = [ + {file = "jupyter-1.0.0-py2.py3-none-any.whl", hash = "sha256:5b290f93b98ffbc21c0c7e749f054b3267782166d72fa5e3ed1ed4eaf34a2b78"}, + {file = "jupyter-1.0.0.tar.gz", hash = "sha256:d9dc4b3318f310e34c82951ea5d6683f67bed7def4b259fafbfe4f1beb1d8e5f"}, + {file = "jupyter-1.0.0.zip", hash = "sha256:3e1f86076bbb7c8c207829390305a2b1fe836d471ed54be66a3b8c41e7f46cc7"}, +] + +[package.dependencies] +ipykernel = "*" +ipywidgets = "*" +jupyter-console = "*" +nbconvert = "*" +notebook = "*" +qtconsole = "*" + +[[package]] +name = "jupyter-client" +version = "8.6.0" +description = "Jupyter protocol implementation and client libraries" +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_client-8.6.0-py3-none-any.whl", hash = "sha256:909c474dbe62582ae62b758bca86d6518c85234bdee2d908c778db6d72f39d99"}, + {file = "jupyter_client-8.6.0.tar.gz", hash = "sha256:0642244bb83b4764ae60d07e010e15f0e2d275ec4e918a8f7b80fbbef3ca60c7"}, +] + +[package.dependencies] +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" +python-dateutil = ">=2.8.2" +pyzmq = ">=23.0" +tornado = ">=6.2" +traitlets = ">=5.3" + +[package.extras] +docs = ["ipykernel", "myst-parser", "pydata-sphinx-theme", "sphinx (>=4)", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] +test = ["coverage", "ipykernel (>=6.14)", "mypy", "paramiko", "pre-commit", "pytest", "pytest-cov", "pytest-jupyter[client] (>=0.4.1)", "pytest-timeout"] + +[[package]] +name = "jupyter-console" +version = "6.6.3" +description = "Jupyter terminal console" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "jupyter_console-6.6.3-py3-none-any.whl", hash = "sha256:309d33409fcc92ffdad25f0bcdf9a4a9daa61b6f341177570fdac03de5352485"}, + {file = "jupyter_console-6.6.3.tar.gz", hash = "sha256:566a4bf31c87adbfadf22cdf846e3069b59a71ed5da71d6ba4d8aaad14a53539"}, +] + +[package.dependencies] +ipykernel = ">=6.14" +ipython = "*" +jupyter-client = ">=7.0.0" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" +prompt-toolkit = ">=3.0.30" +pygments = "*" +pyzmq = ">=17" +traitlets = ">=5.4" + +[package.extras] +test = ["flaky", "pexpect", "pytest"] + +[[package]] +name = "jupyter-core" +version = "5.6.0" +description = "Jupyter core package. A base package on which Jupyter projects rely." +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_core-5.6.0-py3-none-any.whl", hash = "sha256:7613ee3c01f1b0632b927d368bf4e2f5d38503320b2179eec46eea91d026b0ce"}, + {file = "jupyter_core-5.6.0.tar.gz", hash = "sha256:2970f1554685c89ebfedd784e44eea62d17a935e817f7bb704329a6129e178ca"}, +] + +[package.dependencies] +platformdirs = ">=2.5" +pywin32 = {version = ">=300", markers = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\""} +traitlets = ">=5.3" + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "traitlets"] +test = ["ipykernel", "pre-commit", "pytest", "pytest-cov", "pytest-timeout"] + +[[package]] +name = "jupyter-events" +version = "0.9.0" +description = "Jupyter Event System library" +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_events-0.9.0-py3-none-any.whl", hash = "sha256:d853b3c10273ff9bc8bb8b30076d65e2c9685579db736873de6c2232dde148bf"}, + {file = "jupyter_events-0.9.0.tar.gz", hash = "sha256:81ad2e4bc710881ec274d31c6c50669d71bbaa5dd9d01e600b56faa85700d399"}, +] + +[package.dependencies] +jsonschema = {version = ">=4.18.0", extras = ["format-nongpl"]} +python-json-logger = ">=2.0.4" +pyyaml = ">=5.3" +referencing = "*" +rfc3339-validator = "*" +rfc3986-validator = ">=0.1.1" +traitlets = ">=5.3" + +[package.extras] +cli = ["click", "rich"] +docs = ["jupyterlite-sphinx", "myst-parser", "pydata-sphinx-theme", "sphinxcontrib-spelling"] +test = ["click", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.19.0)", "pytest-console-scripts", "rich"] + +[[package]] +name = "jupyter-lsp" +version = "2.2.1" +description = "Multi-Language Server WebSocket proxy for Jupyter Notebook/Lab server" +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter-lsp-2.2.1.tar.gz", hash = "sha256:b17fab6d70fe83c8896b0cff59237640038247c196056b43684a0902b6a9e0fb"}, + {file = "jupyter_lsp-2.2.1-py3-none-any.whl", hash = "sha256:17a689910c5e4ae5e7d334b02f31d08ffbe98108f6f658fb05e4304b4345368b"}, +] + +[package.dependencies] +jupyter-server = ">=1.1.2" + +[[package]] +name = "jupyter-server" +version = "2.12.1" +description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications." +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_server-2.12.1-py3-none-any.whl", hash = "sha256:fd030dd7be1ca572e4598203f718df6630c12bd28a599d7f1791c4d7938e1010"}, + {file = "jupyter_server-2.12.1.tar.gz", hash = "sha256:dc77b7dcc5fc0547acba2b2844f01798008667201eea27c6319ff9257d700a6d"}, +] + +[package.dependencies] +anyio = ">=3.1.0" +argon2-cffi = "*" +jinja2 = "*" +jupyter-client = ">=7.4.4" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" +jupyter-events = ">=0.9.0" +jupyter-server-terminals = "*" +nbconvert = ">=6.4.4" +nbformat = ">=5.3.0" +overrides = "*" +packaging = "*" +prometheus-client = "*" +pywinpty = {version = "*", markers = "os_name == \"nt\""} +pyzmq = ">=24" +send2trash = ">=1.8.2" +terminado = ">=0.8.3" +tornado = ">=6.2.0" +traitlets = ">=5.6.0" +websocket-client = "*" + +[package.extras] +docs = ["ipykernel", "jinja2", "jupyter-client", "jupyter-server", "myst-parser", "nbformat", "prometheus-client", "pydata-sphinx-theme", "send2trash", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-openapi (>=0.8.0)", "sphinxcontrib-spelling", "sphinxemoji", "tornado", "typing-extensions"] +test = ["flaky", "ipykernel", "pre-commit", "pytest (>=7.0)", "pytest-console-scripts", "pytest-jupyter[server] (>=0.4)", "pytest-timeout", "requests"] + +[[package]] +name = "jupyter-server-terminals" +version = "0.5.1" +description = "A Jupyter Server Extension Providing Terminals." +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_server_terminals-0.5.1-py3-none-any.whl", hash = "sha256:5e63e947ddd97bb2832db5ef837a258d9ccd4192cd608c1270850ad947ae5dd7"}, + {file = "jupyter_server_terminals-0.5.1.tar.gz", hash = "sha256:16d3be9cf48be6a1f943f3a6c93c033be259cf4779184c66421709cf63dccfea"}, +] + +[package.dependencies] +pywinpty = {version = ">=2.0.3", markers = "os_name == \"nt\""} +terminado = ">=0.8.3" + +[package.extras] +docs = ["jinja2", "jupyter-server", "mistune (<4.0)", "myst-parser", "nbformat", "packaging", "pydata-sphinx-theme", "sphinxcontrib-github-alt", "sphinxcontrib-openapi", "sphinxcontrib-spelling", "sphinxemoji", "tornado"] +test = ["jupyter-server (>=2.0.0)", "pytest (>=7.0)", "pytest-jupyter[server] (>=0.5.3)", "pytest-timeout"] + +[[package]] +name = "jupyterlab" +version = "4.0.9" +description = "JupyterLab computational environment" +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyterlab-4.0.9-py3-none-any.whl", hash = "sha256:9f6f8e36d543fdbcc3df961a1d6a3f524b4a4001be0327a398f68fa4e534107c"}, + {file = "jupyterlab-4.0.9.tar.gz", hash = "sha256:9ebada41d52651f623c0c9f069ddb8a21d6848e4c887d8e5ddc0613166ed5c0b"}, +] + +[package.dependencies] +async-lru = ">=1.0.0" +ipykernel = "*" +jinja2 = ">=3.0.3" +jupyter-core = "*" +jupyter-lsp = ">=2.0.0" +jupyter-server = ">=2.4.0,<3" +jupyterlab-server = ">=2.19.0,<3" +notebook-shim = ">=0.2" +packaging = "*" +tomli = {version = "*", markers = "python_version < \"3.11\""} +tornado = ">=6.2.0" +traitlets = "*" + +[package.extras] +dev = ["black[jupyter] (==23.10.1)", "build", "bump2version", "coverage", "hatch", "pre-commit", "pytest-cov", "ruff (==0.1.4)"] +docs = ["jsx-lexer", "myst-parser", "pydata-sphinx-theme (>=0.13.0)", "pytest", "pytest-check-links", "pytest-tornasync", "sphinx (>=1.8,<7.2.0)", "sphinx-copybutton"] +docs-screenshots = ["altair (==5.0.1)", "ipython (==8.14.0)", "ipywidgets (==8.0.6)", "jupyterlab-geojson (==3.4.0)", "jupyterlab-language-pack-zh-cn (==4.0.post0)", "matplotlib (==3.7.1)", "nbconvert (>=7.0.0)", "pandas (==2.0.2)", "scipy (==1.10.1)", "vega-datasets (==0.9.0)"] +test = ["coverage", "pytest (>=7.0)", "pytest-check-links (>=0.7)", "pytest-console-scripts", "pytest-cov", "pytest-jupyter (>=0.5.3)", "pytest-timeout", "pytest-tornasync", "requests", "requests-cache", "virtualenv"] + +[[package]] +name = "jupyterlab-pygments" +version = "0.3.0" +description = "Pygments theme using JupyterLab CSS variables" +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyterlab_pygments-0.3.0-py3-none-any.whl", hash = "sha256:841a89020971da1d8693f1a99997aefc5dc424bb1b251fd6322462a1b8842780"}, + {file = "jupyterlab_pygments-0.3.0.tar.gz", hash = "sha256:721aca4d9029252b11cfa9d185e5b5af4d54772bb8072f9b7036f4170054d35d"}, +] + +[[package]] +name = "jupyterlab-server" +version = "2.25.2" +description = "A set of server components for JupyterLab and JupyterLab like applications." +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyterlab_server-2.25.2-py3-none-any.whl", hash = "sha256:5b1798c9cc6a44f65c757de9f97fc06fc3d42535afbf47d2ace5e964ab447aaf"}, + {file = "jupyterlab_server-2.25.2.tar.gz", hash = "sha256:bd0ec7a99ebcedc8bcff939ef86e52c378e44c2707e053fcd81d046ce979ee63"}, +] + +[package.dependencies] +babel = ">=2.10" +jinja2 = ">=3.0.3" +json5 = ">=0.9.0" +jsonschema = ">=4.18.0" +jupyter-server = ">=1.21,<3" +packaging = ">=21.3" +requests = ">=2.31" + +[package.extras] +docs = ["autodoc-traits", "jinja2 (<3.2.0)", "mistune (<4)", "myst-parser", "pydata-sphinx-theme", "sphinx", "sphinx-copybutton", "sphinxcontrib-openapi (>0.8)"] +openapi = ["openapi-core (>=0.18.0,<0.19.0)", "ruamel-yaml"] +test = ["hatch", "ipykernel", "openapi-core (>=0.18.0,<0.19.0)", "openapi-spec-validator (>=0.6.0,<0.8.0)", "pytest (>=7.0)", "pytest-console-scripts", "pytest-cov", "pytest-jupyter[server] (>=0.6.2)", "pytest-timeout", "requests-mock", "ruamel-yaml", "sphinxcontrib-spelling", "strict-rfc3339", "werkzeug"] + +[[package]] +name = "jupyterlab-widgets" +version = "3.0.9" +description = "Jupyter interactive widgets for JupyterLab" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "jupyterlab_widgets-3.0.9-py3-none-any.whl", hash = "sha256:3cf5bdf5b897bf3bccf1c11873aa4afd776d7430200f765e0686bd352487b58d"}, + {file = "jupyterlab_widgets-3.0.9.tar.gz", hash = "sha256:6005a4e974c7beee84060fdfba341a3218495046de8ae3ec64888e5fe19fdb4c"}, +] + +[[package]] +name = "kiwisolver" +version = "1.4.5" +description = "A fast implementation of the Cassowary constraint solver" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "kiwisolver-1.4.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:05703cf211d585109fcd72207a31bb170a0f22144d68298dc5e61b3c946518af"}, + {file = "kiwisolver-1.4.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:146d14bebb7f1dc4d5fbf74f8a6cb15ac42baadee8912eb84ac0b3b2a3dc6ac3"}, + {file = "kiwisolver-1.4.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6ef7afcd2d281494c0a9101d5c571970708ad911d028137cd558f02b851c08b4"}, + {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9eaa8b117dc8337728e834b9c6e2611f10c79e38f65157c4c38e9400286f5cb1"}, + {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ec20916e7b4cbfb1f12380e46486ec4bcbaa91a9c448b97023fde0d5bbf9e4ff"}, + {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39b42c68602539407884cf70d6a480a469b93b81b7701378ba5e2328660c847a"}, + {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa12042de0171fad672b6c59df69106d20d5596e4f87b5e8f76df757a7c399aa"}, + {file = "kiwisolver-1.4.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2a40773c71d7ccdd3798f6489aaac9eee213d566850a9533f8d26332d626b82c"}, + {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:19df6e621f6d8b4b9c4d45f40a66839294ff2bb235e64d2178f7522d9170ac5b"}, + {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:83d78376d0d4fd884e2c114d0621624b73d2aba4e2788182d286309ebdeed770"}, + {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:e391b1f0a8a5a10ab3b9bb6afcfd74f2175f24f8975fb87ecae700d1503cdee0"}, + {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:852542f9481f4a62dbb5dd99e8ab7aedfeb8fb6342349a181d4036877410f525"}, + {file = "kiwisolver-1.4.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59edc41b24031bc25108e210c0def6f6c2191210492a972d585a06ff246bb79b"}, + {file = "kiwisolver-1.4.5-cp310-cp310-win32.whl", hash = "sha256:a6aa6315319a052b4ee378aa171959c898a6183f15c1e541821c5c59beaa0238"}, + {file = "kiwisolver-1.4.5-cp310-cp310-win_amd64.whl", hash = "sha256:d0ef46024e6a3d79c01ff13801cb19d0cad7fd859b15037aec74315540acc276"}, + {file = "kiwisolver-1.4.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:11863aa14a51fd6ec28688d76f1735f8f69ab1fabf388851a595d0721af042f5"}, + {file = "kiwisolver-1.4.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8ab3919a9997ab7ef2fbbed0cc99bb28d3c13e6d4b1ad36e97e482558a91be90"}, + {file = "kiwisolver-1.4.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fcc700eadbbccbf6bc1bcb9dbe0786b4b1cb91ca0dcda336eef5c2beed37b797"}, + {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dfdd7c0b105af050eb3d64997809dc21da247cf44e63dc73ff0fd20b96be55a9"}, + {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76c6a5964640638cdeaa0c359382e5703e9293030fe730018ca06bc2010c4437"}, + {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bbea0db94288e29afcc4c28afbf3a7ccaf2d7e027489c449cf7e8f83c6346eb9"}, + {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ceec1a6bc6cab1d6ff5d06592a91a692f90ec7505d6463a88a52cc0eb58545da"}, + {file = "kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:040c1aebeda72197ef477a906782b5ab0d387642e93bda547336b8957c61022e"}, + {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f91de7223d4c7b793867797bacd1ee53bfe7359bd70d27b7b58a04efbb9436c8"}, + {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:faae4860798c31530dd184046a900e652c95513796ef51a12bc086710c2eec4d"}, + {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:b0157420efcb803e71d1b28e2c287518b8808b7cf1ab8af36718fd0a2c453eb0"}, + {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:06f54715b7737c2fecdbf140d1afb11a33d59508a47bf11bb38ecf21dc9ab79f"}, + {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fdb7adb641a0d13bdcd4ef48e062363d8a9ad4a182ac7647ec88f695e719ae9f"}, + {file = "kiwisolver-1.4.5-cp311-cp311-win32.whl", hash = "sha256:bb86433b1cfe686da83ce32a9d3a8dd308e85c76b60896d58f082136f10bffac"}, + {file = "kiwisolver-1.4.5-cp311-cp311-win_amd64.whl", hash = "sha256:6c08e1312a9cf1074d17b17728d3dfce2a5125b2d791527f33ffbe805200a355"}, + {file = "kiwisolver-1.4.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:32d5cf40c4f7c7b3ca500f8985eb3fb3a7dfc023215e876f207956b5ea26632a"}, + {file = "kiwisolver-1.4.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f846c260f483d1fd217fe5ed7c173fb109efa6b1fc8381c8b7552c5781756192"}, + {file = "kiwisolver-1.4.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5ff5cf3571589b6d13bfbfd6bcd7a3f659e42f96b5fd1c4830c4cf21d4f5ef45"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7269d9e5f1084a653d575c7ec012ff57f0c042258bf5db0954bf551c158466e7"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da802a19d6e15dffe4b0c24b38b3af68e6c1a68e6e1d8f30148c83864f3881db"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3aba7311af82e335dd1e36ffff68aaca609ca6290c2cb6d821a39aa075d8e3ff"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:763773d53f07244148ccac5b084da5adb90bfaee39c197554f01b286cf869228"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2270953c0d8cdab5d422bee7d2007f043473f9d2999631c86a223c9db56cbd16"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d099e745a512f7e3bbe7249ca835f4d357c586d78d79ae8f1dcd4d8adeb9bda9"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:74db36e14a7d1ce0986fa104f7d5637aea5c82ca6326ed0ec5694280942d1162"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:7e5bab140c309cb3a6ce373a9e71eb7e4873c70c2dda01df6820474f9889d6d4"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:0f114aa76dc1b8f636d077979c0ac22e7cd8f3493abbab152f20eb8d3cda71f3"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:88a2df29d4724b9237fc0c6eaf2a1adae0cdc0b3e9f4d8e7dc54b16812d2d81a"}, + {file = "kiwisolver-1.4.5-cp312-cp312-win32.whl", hash = "sha256:72d40b33e834371fd330fb1472ca19d9b8327acb79a5821d4008391db8e29f20"}, + {file = "kiwisolver-1.4.5-cp312-cp312-win_amd64.whl", hash = "sha256:2c5674c4e74d939b9d91dda0fae10597ac7521768fec9e399c70a1f27e2ea2d9"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3a2b053a0ab7a3960c98725cfb0bf5b48ba82f64ec95fe06f1d06c99b552e130"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3cd32d6c13807e5c66a7cbb79f90b553642f296ae4518a60d8d76243b0ad2898"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:59ec7b7c7e1a61061850d53aaf8e93db63dce0c936db1fda2658b70e4a1be709"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:da4cfb373035def307905d05041c1d06d8936452fe89d464743ae7fb8371078b"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2400873bccc260b6ae184b2b8a4fec0e4082d30648eadb7c3d9a13405d861e89"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:1b04139c4236a0f3aff534479b58f6f849a8b351e1314826c2d230849ed48985"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:4e66e81a5779b65ac21764c295087de82235597a2293d18d943f8e9e32746265"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:7931d8f1f67c4be9ba1dd9c451fb0eeca1a25b89e4d3f89e828fe12a519b782a"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:b3f7e75f3015df442238cca659f8baa5f42ce2a8582727981cbfa15fee0ee205"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:bbf1d63eef84b2e8c89011b7f2235b1e0bf7dacc11cac9431fc6468e99ac77fb"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:4c380469bd3f970ef677bf2bcba2b6b0b4d5c75e7a020fb863ef75084efad66f"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-win32.whl", hash = "sha256:9408acf3270c4b6baad483865191e3e582b638b1654a007c62e3efe96f09a9a3"}, + {file = "kiwisolver-1.4.5-cp37-cp37m-win_amd64.whl", hash = "sha256:5b94529f9b2591b7af5f3e0e730a4e0a41ea174af35a4fd067775f9bdfeee01a"}, + {file = "kiwisolver-1.4.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:11c7de8f692fc99816e8ac50d1d1aef4f75126eefc33ac79aac02c099fd3db71"}, + {file = "kiwisolver-1.4.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:53abb58632235cd154176ced1ae8f0d29a6657aa1aa9decf50b899b755bc2b93"}, + {file = "kiwisolver-1.4.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:88b9f257ca61b838b6f8094a62418421f87ac2a1069f7e896c36a7d86b5d4c29"}, + {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3195782b26fc03aa9c6913d5bad5aeb864bdc372924c093b0f1cebad603dd712"}, + {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fc579bf0f502e54926519451b920e875f433aceb4624a3646b3252b5caa9e0b6"}, + {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5a580c91d686376f0f7c295357595c5a026e6cbc3d77b7c36e290201e7c11ecb"}, + {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cfe6ab8da05c01ba6fbea630377b5da2cd9bcbc6338510116b01c1bc939a2c18"}, + {file = "kiwisolver-1.4.5-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:d2e5a98f0ec99beb3c10e13b387f8db39106d53993f498b295f0c914328b1333"}, + {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:a51a263952b1429e429ff236d2f5a21c5125437861baeed77f5e1cc2d2c7c6da"}, + {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:3edd2fa14e68c9be82c5b16689e8d63d89fe927e56debd6e1dbce7a26a17f81b"}, + {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:74d1b44c6cfc897df648cc9fdaa09bc3e7679926e6f96df05775d4fb3946571c"}, + {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:76d9289ed3f7501012e05abb8358bbb129149dbd173f1f57a1bf1c22d19ab7cc"}, + {file = "kiwisolver-1.4.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:92dea1ffe3714fa8eb6a314d2b3c773208d865a0e0d35e713ec54eea08a66250"}, + {file = "kiwisolver-1.4.5-cp38-cp38-win32.whl", hash = "sha256:5c90ae8c8d32e472be041e76f9d2f2dbff4d0b0be8bd4041770eddb18cf49a4e"}, + {file = "kiwisolver-1.4.5-cp38-cp38-win_amd64.whl", hash = "sha256:c7940c1dc63eb37a67721b10d703247552416f719c4188c54e04334321351ced"}, + {file = "kiwisolver-1.4.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9407b6a5f0d675e8a827ad8742e1d6b49d9c1a1da5d952a67d50ef5f4170b18d"}, + {file = "kiwisolver-1.4.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:15568384086b6df3c65353820a4473575dbad192e35010f622c6ce3eebd57af9"}, + {file = "kiwisolver-1.4.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0dc9db8e79f0036e8173c466d21ef18e1befc02de8bf8aa8dc0813a6dc8a7046"}, + {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:cdc8a402aaee9a798b50d8b827d7ecf75edc5fb35ea0f91f213ff927c15f4ff0"}, + {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6c3bd3cde54cafb87d74d8db50b909705c62b17c2099b8f2e25b461882e544ff"}, + {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:955e8513d07a283056b1396e9a57ceddbd272d9252c14f154d450d227606eb54"}, + {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:346f5343b9e3f00b8db8ba359350eb124b98c99efd0b408728ac6ebf38173958"}, + {file = "kiwisolver-1.4.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b9098e0049e88c6a24ff64545cdfc50807818ba6c1b739cae221bbbcbc58aad3"}, + {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:00bd361b903dc4bbf4eb165f24d1acbee754fce22ded24c3d56eec268658a5cf"}, + {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7b8b454bac16428b22560d0a1cf0a09875339cab69df61d7805bf48919415901"}, + {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:f1d072c2eb0ad60d4c183f3fb44ac6f73fb7a8f16a2694a91f988275cbf352f9"}, + {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:31a82d498054cac9f6d0b53d02bb85811185bcb477d4b60144f915f3b3126342"}, + {file = "kiwisolver-1.4.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6512cb89e334e4700febbffaaa52761b65b4f5a3cf33f960213d5656cea36a77"}, + {file = "kiwisolver-1.4.5-cp39-cp39-win32.whl", hash = "sha256:9db8ea4c388fdb0f780fe91346fd438657ea602d58348753d9fb265ce1bca67f"}, + {file = "kiwisolver-1.4.5-cp39-cp39-win_amd64.whl", hash = "sha256:59415f46a37f7f2efeec758353dd2eae1b07640d8ca0f0c42548ec4125492635"}, + {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:5c7b3b3a728dc6faf3fc372ef24f21d1e3cee2ac3e9596691d746e5a536de920"}, + {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:620ced262a86244e2be10a676b646f29c34537d0d9cc8eb26c08f53d98013390"}, + {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:378a214a1e3bbf5ac4a8708304318b4f890da88c9e6a07699c4ae7174c09a68d"}, + {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aaf7be1207676ac608a50cd08f102f6742dbfc70e8d60c4db1c6897f62f71523"}, + {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:ba55dce0a9b8ff59495ddd050a0225d58bd0983d09f87cfe2b6aec4f2c1234e4"}, + {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:fd32ea360bcbb92d28933fc05ed09bffcb1704ba3fc7942e81db0fd4f81a7892"}, + {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5e7139af55d1688f8b960ee9ad5adafc4ac17c1c473fe07133ac092310d76544"}, + {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:dced8146011d2bc2e883f9bd68618b8247387f4bbec46d7392b3c3b032640126"}, + {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9bf3325c47b11b2e51bca0824ea217c7cd84491d8ac4eefd1e409705ef092bd"}, + {file = "kiwisolver-1.4.5-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5794cf59533bc3f1b1c821f7206a3617999db9fbefc345360aafe2e067514929"}, + {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:e368f200bbc2e4f905b8e71eb38b3c04333bddaa6a2464a6355487b02bb7fb09"}, + {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5d706eba36b4c4d5bc6c6377bb6568098765e990cfc21ee16d13963fab7b3e7"}, + {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85267bd1aa8880a9c88a8cb71e18d3d64d2751a790e6ca6c27b8ccc724bcd5ad"}, + {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:210ef2c3a1f03272649aff1ef992df2e724748918c4bc2d5a90352849eb40bea"}, + {file = "kiwisolver-1.4.5-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:11d011a7574eb3b82bcc9c1a1d35c1d7075677fdd15de527d91b46bd35e935ee"}, + {file = "kiwisolver-1.4.5.tar.gz", hash = "sha256:e57e563a57fb22a142da34f38acc2fc1a5c864bc29ca1517a88abc963e60d6ec"}, +] + +[[package]] +name = "lazy-loader" +version = "0.3" +description = "lazy_loader" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "lazy_loader-0.3-py3-none-any.whl", hash = "sha256:1e9e76ee8631e264c62ce10006718e80b2cfc74340d17d1031e0f84af7478554"}, + {file = "lazy_loader-0.3.tar.gz", hash = "sha256:3b68898e34f5b2a29daaaac172c6555512d0f32074f147e2254e4a6d9d838f37"}, +] + +[package.extras] +lint = ["pre-commit (>=3.3)"] +test = ["pytest (>=7.4)", "pytest-cov (>=4.1)"] + +[[package]] +name = "markupsafe" +version = "2.1.3" +description = "Safely add untrusted strings to HTML/XML markup." +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cd0f502fe016460680cd20aaa5a76d241d6f35a1c3350c474bac1273803893fa"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e09031c87a1e51556fdcb46e5bd4f59dfb743061cf93c4d6831bf894f125eb57"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68e78619a61ecf91e76aa3e6e8e33fc4894a2bebe93410754bd28fce0a8a4f9f"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65c1a9bcdadc6c28eecee2c119465aebff8f7a584dd719facdd9e825ec61ab52"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:525808b8019e36eb524b8c68acdd63a37e75714eac50e988180b169d64480a00"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:962f82a3086483f5e5f64dbad880d31038b698494799b097bc59c2edf392fce6"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:aa7bd130efab1c280bed0f45501b7c8795f9fdbeb02e965371bbef3523627779"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c9c804664ebe8f83a211cace637506669e7890fec1b4195b505c214e50dd4eb7"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-win32.whl", hash = "sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-win_amd64.whl", hash = "sha256:1577735524cdad32f9f694208aa75e422adba74f1baee7551620e43a3141f559"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ad9e82fb8f09ade1c3e1b996a6337afac2b8b9e365f926f5a61aacc71adc5b3c"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3c0fae6c3be832a0a0473ac912810b2877c8cb9d76ca48de1ed31e1c68386575"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b076b6226fb84157e3f7c971a47ff3a679d837cf338547532ab866c57930dbee"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bfce63a9e7834b12b87c64d6b155fdd9b3b96191b6bd334bf37db7ff1fe457f2"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:338ae27d6b8745585f87218a3f23f1512dbf52c26c28e322dbe54bcede54ccb9"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e4dd52d80b8c83fdce44e12478ad2e85c64ea965e75d66dbeafb0a3e77308fcc"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:df0be2b576a7abbf737b1575f048c23fb1d769f267ec4358296f31c2479db8f9"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-win32.whl", hash = "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:f698de3fd0c4e6972b92290a45bd9b1536bffe8c6759c62471efaa8acb4c37bc"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aa57bd9cf8ae831a362185ee444e15a93ecb2e344c8e52e4d721ea3ab6ef1823"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffcc3f7c66b5f5b7931a5aa68fc9cecc51e685ef90282f4a82f0f5e9b704ad11"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47d4f1c5f80fc62fdd7777d0d40a2e9dda0a05883ab11374334f6c4de38adffd"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1f67c7038d560d92149c060157d623c542173016c4babc0c1913cca0564b9939"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:9aad3c1755095ce347e26488214ef77e0485a3c34a50c5a5e2471dff60b9dd9c"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:14ff806850827afd6b07a5f32bd917fb7f45b046ba40c57abdb636674a8b559c"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8f9293864fe09b8149f0cc42ce56e3f0e54de883a9de90cd427f191c346eb2e1"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-win32.whl", hash = "sha256:715d3562f79d540f251b99ebd6d8baa547118974341db04f5ad06d5ea3eb8007"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:1b8dd8c3fd14349433c79fa8abeb573a55fc0fdd769133baac1f5e07abf54aeb"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca379055a47383d02a5400cb0d110cef0a776fc644cda797db0c5696cfd7e18e"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b7ff0f54cb4ff66dd38bebd335a38e2c22c41a8ee45aa608efc890ac3e3931bc"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c011a4149cfbcf9f03994ec2edffcb8b1dc2d2aede7ca243746df97a5d41ce48"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:56d9f2ecac662ca1611d183feb03a3fa4406469dafe241673d521dd5ae92a155"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-win32.whl", hash = "sha256:8758846a7e80910096950b67071243da3e5a20ed2546e6392603c096778d48e0"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-win_amd64.whl", hash = "sha256:787003c0ddb00500e49a10f2844fac87aa6ce977b90b0feaaf9de23c22508b24"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d080e0a5eb2529460b30190fcfcc4199bd7f827663f858a226a81bc27beaa97e"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-win32.whl", hash = "sha256:ceb01949af7121f9fc39f7d27f91be8546f3fb112c608bc4029aef0bab86a2a5"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-win_amd64.whl", hash = "sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-win32.whl", hash = "sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-win_amd64.whl", hash = "sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba"}, + {file = "MarkupSafe-2.1.3.tar.gz", hash = "sha256:af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad"}, +] + +[[package]] +name = "matplotlib" +version = "3.8.2" +description = "Python plotting package" +category = "main" +optional = false +python-versions = ">=3.9" +files = [ + {file = "matplotlib-3.8.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:09796f89fb71a0c0e1e2f4bdaf63fb2cefc84446bb963ecdeb40dfee7dfa98c7"}, + {file = "matplotlib-3.8.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6f9c6976748a25e8b9be51ea028df49b8e561eed7809146da7a47dbecebab367"}, + {file = "matplotlib-3.8.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b78e4f2cedf303869b782071b55fdde5987fda3038e9d09e58c91cc261b5ad18"}, + {file = "matplotlib-3.8.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e208f46cf6576a7624195aa047cb344a7f802e113bb1a06cfd4bee431de5e31"}, + {file = "matplotlib-3.8.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:46a569130ff53798ea5f50afce7406e91fdc471ca1e0e26ba976a8c734c9427a"}, + {file = "matplotlib-3.8.2-cp310-cp310-win_amd64.whl", hash = "sha256:830f00640c965c5b7f6bc32f0d4ce0c36dfe0379f7dd65b07a00c801713ec40a"}, + {file = "matplotlib-3.8.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d86593ccf546223eb75a39b44c32788e6f6440d13cfc4750c1c15d0fcb850b63"}, + {file = "matplotlib-3.8.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9a5430836811b7652991939012f43d2808a2db9b64ee240387e8c43e2e5578c8"}, + {file = "matplotlib-3.8.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9576723858a78751d5aacd2497b8aef29ffea6d1c95981505877f7ac28215c6"}, + {file = "matplotlib-3.8.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ba9cbd8ac6cf422f3102622b20f8552d601bf8837e49a3afed188d560152788"}, + {file = "matplotlib-3.8.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:03f9d160a29e0b65c0790bb07f4f45d6a181b1ac33eb1bb0dd225986450148f0"}, + {file = "matplotlib-3.8.2-cp311-cp311-win_amd64.whl", hash = "sha256:3773002da767f0a9323ba1a9b9b5d00d6257dbd2a93107233167cfb581f64717"}, + {file = "matplotlib-3.8.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:4c318c1e95e2f5926fba326f68177dee364aa791d6df022ceb91b8221bd0a627"}, + {file = "matplotlib-3.8.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:091275d18d942cf1ee9609c830a1bc36610607d8223b1b981c37d5c9fc3e46a4"}, + {file = "matplotlib-3.8.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1b0f3b8ea0e99e233a4bcc44590f01604840d833c280ebb8fe5554fd3e6cfe8d"}, + {file = "matplotlib-3.8.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7b1704a530395aaf73912be741c04d181f82ca78084fbd80bc737be04848331"}, + {file = "matplotlib-3.8.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:533b0e3b0c6768eef8cbe4b583731ce25a91ab54a22f830db2b031e83cca9213"}, + {file = "matplotlib-3.8.2-cp312-cp312-win_amd64.whl", hash = "sha256:0f4fc5d72b75e2c18e55eb32292659cf731d9d5b312a6eb036506304f4675630"}, + {file = "matplotlib-3.8.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:deaed9ad4da0b1aea77fe0aa0cebb9ef611c70b3177be936a95e5d01fa05094f"}, + {file = "matplotlib-3.8.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:172f4d0fbac3383d39164c6caafd3255ce6fa58f08fc392513a0b1d3b89c4f89"}, + {file = "matplotlib-3.8.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c7d36c2209d9136cd8e02fab1c0ddc185ce79bc914c45054a9f514e44c787917"}, + {file = "matplotlib-3.8.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5864bdd7da445e4e5e011b199bb67168cdad10b501750367c496420f2ad00843"}, + {file = "matplotlib-3.8.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ef8345b48e95cee45ff25192ed1f4857273117917a4dcd48e3905619bcd9c9b8"}, + {file = "matplotlib-3.8.2-cp39-cp39-win_amd64.whl", hash = "sha256:7c48d9e221b637c017232e3760ed30b4e8d5dfd081daf327e829bf2a72c731b4"}, + {file = "matplotlib-3.8.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:aa11b3c6928a1e496c1a79917d51d4cd5d04f8a2e75f21df4949eeefdf697f4b"}, + {file = "matplotlib-3.8.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d1095fecf99eeb7384dabad4bf44b965f929a5f6079654b681193edf7169ec20"}, + {file = "matplotlib-3.8.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:bddfb1db89bfaa855912261c805bd0e10218923cc262b9159a49c29a7a1c1afa"}, + {file = "matplotlib-3.8.2.tar.gz", hash = "sha256:01a978b871b881ee76017152f1f1a0cbf6bd5f7b8ff8c96df0df1bd57d8755a1"}, +] + +[package.dependencies] +contourpy = ">=1.0.1" +cycler = ">=0.10" +fonttools = ">=4.22.0" +kiwisolver = ">=1.3.1" +numpy = ">=1.21,<2" +packaging = ">=20.0" +pillow = ">=8" +pyparsing = ">=2.3.1" +python-dateutil = ">=2.7" + +[[package]] +name = "matplotlib-inline" +version = "0.1.6" +description = "Inline Matplotlib backend for Jupyter" +category = "main" +optional = false +python-versions = ">=3.5" +files = [ + {file = "matplotlib-inline-0.1.6.tar.gz", hash = "sha256:f887e5f10ba98e8d2b150ddcf4702c1e5f8b3a20005eb0f74bfdbd360ee6f304"}, + {file = "matplotlib_inline-0.1.6-py3-none-any.whl", hash = "sha256:f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311"}, +] + +[package.dependencies] +traitlets = "*" + +[[package]] +name = "mistune" +version = "3.0.2" +description = "A sane and fast Markdown parser with useful plugins and renderers" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "mistune-3.0.2-py3-none-any.whl", hash = "sha256:71481854c30fdbc938963d3605b72501f5c10a9320ecd412c121c163a1c7d205"}, + {file = "mistune-3.0.2.tar.gz", hash = "sha256:fc7f93ded930c92394ef2cb6f04a8aabab4117a91449e72dcc8dfa646a508be8"}, +] + +[[package]] +name = "mpmath" +version = "1.3.0" +description = "Python library for arbitrary-precision floating-point arithmetic" +category = "main" +optional = false +python-versions = "*" +files = [ + {file = "mpmath-1.3.0-py3-none-any.whl", hash = "sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c"}, + {file = "mpmath-1.3.0.tar.gz", hash = "sha256:7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f"}, +] + +[package.extras] +develop = ["codecov", "pycodestyle", "pytest (>=4.6)", "pytest-cov", "wheel"] +docs = ["sphinx"] +gmpy = ["gmpy2 (>=2.1.0a4)"] +tests = ["pytest (>=4.6)"] + +[[package]] +name = "nbclient" +version = "0.9.0" +description = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor." +category = "main" +optional = false +python-versions = ">=3.8.0" +files = [ + {file = "nbclient-0.9.0-py3-none-any.whl", hash = "sha256:a3a1ddfb34d4a9d17fc744d655962714a866639acd30130e9be84191cd97cd15"}, + {file = "nbclient-0.9.0.tar.gz", hash = "sha256:4b28c207877cf33ef3a9838cdc7a54c5ceff981194a82eac59d558f05487295e"}, +] + +[package.dependencies] +jupyter-client = ">=6.1.12" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" +nbformat = ">=5.1" +traitlets = ">=5.4" + +[package.extras] +dev = ["pre-commit"] +docs = ["autodoc-traits", "mock", "moto", "myst-parser", "nbclient[test]", "sphinx (>=1.7)", "sphinx-book-theme", "sphinxcontrib-spelling"] +test = ["flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "nbconvert (>=7.0.0)", "pytest (>=7.0)", "pytest-asyncio", "pytest-cov (>=4.0)", "testpath", "xmltodict"] + +[[package]] +name = "nbconvert" +version = "7.13.1" +description = "Converting Jupyter Notebooks" +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "nbconvert-7.13.1-py3-none-any.whl", hash = "sha256:3c50eb2d326478cc90b8759cf2ab9dde3d892c6537cd6a5bc0991db8ef734bcc"}, + {file = "nbconvert-7.13.1.tar.gz", hash = "sha256:2dc8267dbdfeedce2dcd34c9e3f1b51af18f43cb105549d1c5a18189ec23ba85"}, +] + +[package.dependencies] +beautifulsoup4 = "*" +bleach = "!=5.0.0" +defusedxml = "*" +jinja2 = ">=3.0" +jupyter-core = ">=4.7" +jupyterlab-pygments = "*" +markupsafe = ">=2.0" +mistune = ">=2.0.3,<4" +nbclient = ">=0.5.0" +nbformat = ">=5.7" +packaging = "*" +pandocfilters = ">=1.4.1" +pygments = ">=2.4.1" +tinycss2 = "*" +traitlets = ">=5.1" + +[package.extras] +all = ["nbconvert[docs,qtpdf,serve,test,webpdf]"] +docs = ["ipykernel", "ipython", "myst-parser", "nbsphinx (>=0.2.12)", "pydata-sphinx-theme", "sphinx (==5.0.2)", "sphinxcontrib-spelling"] +qtpdf = ["nbconvert[qtpng]"] +qtpng = ["pyqtwebengine (>=5.15)"] +serve = ["tornado (>=6.1)"] +test = ["flaky", "ipykernel", "ipywidgets (>=7.5)", "pytest"] +webpdf = ["playwright"] + +[[package]] +name = "nbformat" +version = "5.9.2" +description = "The Jupyter Notebook format" +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "nbformat-5.9.2-py3-none-any.whl", hash = "sha256:1c5172d786a41b82bcfd0c23f9e6b6f072e8fb49c39250219e4acfff1efe89e9"}, + {file = "nbformat-5.9.2.tar.gz", hash = "sha256:5f98b5ba1997dff175e77e0c17d5c10a96eaed2cbd1de3533d1fc35d5e111192"}, +] + +[package.dependencies] +fastjsonschema = "*" +jsonschema = ">=2.6" +jupyter-core = "*" +traitlets = ">=5.1" + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] +test = ["pep440", "pre-commit", "pytest", "testpath"] + +[[package]] +name = "nest-asyncio" +version = "1.5.8" +description = "Patch asyncio to allow nested event loops" +category = "main" +optional = false +python-versions = ">=3.5" +files = [ + {file = "nest_asyncio-1.5.8-py3-none-any.whl", hash = "sha256:accda7a339a70599cb08f9dd09a67e0c2ef8d8d6f4c07f96ab203f2ae254e48d"}, + {file = "nest_asyncio-1.5.8.tar.gz", hash = "sha256:25aa2ca0d2a5b5531956b9e273b45cf664cae2b145101d73b86b199978d48fdb"}, +] + +[[package]] +name = "networkx" +version = "3.2.1" +description = "Python package for creating and manipulating graphs and networks" +category = "main" +optional = false +python-versions = ">=3.9" +files = [ + {file = "networkx-3.2.1-py3-none-any.whl", hash = "sha256:f18c69adc97877c42332c170849c96cefa91881c99a7cb3e95b7c659ebdc1ec2"}, + {file = "networkx-3.2.1.tar.gz", hash = "sha256:9f1bb5cf3409bf324e0a722c20bdb4c20ee39bf1c30ce8ae499c8502b0b5e0c6"}, +] + +[package.extras] +default = ["matplotlib (>=3.5)", "numpy (>=1.22)", "pandas (>=1.4)", "scipy (>=1.9,!=1.11.0,!=1.11.1)"] +developer = ["changelist (==0.4)", "mypy (>=1.1)", "pre-commit (>=3.2)", "rtoml"] +doc = ["nb2plots (>=0.7)", "nbconvert (<7.9)", "numpydoc (>=1.6)", "pillow (>=9.4)", "pydata-sphinx-theme (>=0.14)", "sphinx (>=7)", "sphinx-gallery (>=0.14)", "texext (>=0.6.7)"] +extra = ["lxml (>=4.6)", "pydot (>=1.4.2)", "pygraphviz (>=1.11)", "sympy (>=1.10)"] +test = ["pytest (>=7.2)", "pytest-cov (>=4.0)"] + +[[package]] +name = "notebook" +version = "7.0.6" +description = "Jupyter Notebook - A web-based notebook environment for interactive computing" +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "notebook-7.0.6-py3-none-any.whl", hash = "sha256:0fe8f67102fea3744fedf652e4c15339390902ca70c5a31c4f547fa23da697cc"}, + {file = "notebook-7.0.6.tar.gz", hash = "sha256:ec6113b06529019f7f287819af06c97a2baf7a95ac21a8f6e32192898e9f9a58"}, +] + +[package.dependencies] +jupyter-server = ">=2.4.0,<3" +jupyterlab = ">=4.0.2,<5" +jupyterlab-server = ">=2.22.1,<3" +notebook-shim = ">=0.2,<0.3" +tornado = ">=6.2.0" + +[package.extras] +dev = ["hatch", "pre-commit"] +docs = ["myst-parser", "nbsphinx", "pydata-sphinx-theme", "sphinx (>=1.3.6)", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] +test = ["importlib-resources (>=5.0)", "ipykernel", "jupyter-server[test] (>=2.4.0,<3)", "jupyterlab-server[test] (>=2.22.1,<3)", "nbval", "pytest (>=7.0)", "pytest-console-scripts", "pytest-timeout", "pytest-tornasync", "requests"] + +[[package]] +name = "notebook-shim" +version = "0.2.3" +description = "A shim layer for notebook traits and config" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "notebook_shim-0.2.3-py3-none-any.whl", hash = "sha256:a83496a43341c1674b093bfcebf0fe8e74cbe7eda5fd2bbc56f8e39e1486c0c7"}, + {file = "notebook_shim-0.2.3.tar.gz", hash = "sha256:f69388ac283ae008cd506dda10d0288b09a017d822d5e8c7129a152cbd3ce7e9"}, +] + +[package.dependencies] +jupyter-server = ">=1.8,<3" + +[package.extras] +test = ["pytest", "pytest-console-scripts", "pytest-jupyter", "pytest-tornasync"] + +[[package]] +name = "numpy" +version = "1.26.2" +description = "Fundamental package for array computing in Python" +category = "main" +optional = false +python-versions = ">=3.9" +files = [ + {file = "numpy-1.26.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:3703fc9258a4a122d17043e57b35e5ef1c5a5837c3db8be396c82e04c1cf9b0f"}, + {file = "numpy-1.26.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cc392fdcbd21d4be6ae1bb4475a03ce3b025cd49a9be5345d76d7585aea69440"}, + {file = "numpy-1.26.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:36340109af8da8805d8851ef1d74761b3b88e81a9bd80b290bbfed61bd2b4f75"}, + {file = "numpy-1.26.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bcc008217145b3d77abd3e4d5ef586e3bdfba8fe17940769f8aa09b99e856c00"}, + {file = "numpy-1.26.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3ced40d4e9e18242f70dd02d739e44698df3dcb010d31f495ff00a31ef6014fe"}, + {file = "numpy-1.26.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b272d4cecc32c9e19911891446b72e986157e6a1809b7b56518b4f3755267523"}, + {file = "numpy-1.26.2-cp310-cp310-win32.whl", hash = "sha256:22f8fc02fdbc829e7a8c578dd8d2e15a9074b630d4da29cda483337e300e3ee9"}, + {file = "numpy-1.26.2-cp310-cp310-win_amd64.whl", hash = "sha256:26c9d33f8e8b846d5a65dd068c14e04018d05533b348d9eaeef6c1bd787f9919"}, + {file = "numpy-1.26.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b96e7b9c624ef3ae2ae0e04fa9b460f6b9f17ad8b4bec6d7756510f1f6c0c841"}, + {file = "numpy-1.26.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:aa18428111fb9a591d7a9cc1b48150097ba6a7e8299fb56bdf574df650e7d1f1"}, + {file = "numpy-1.26.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:06fa1ed84aa60ea6ef9f91ba57b5ed963c3729534e6e54055fc151fad0423f0a"}, + {file = "numpy-1.26.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:96ca5482c3dbdd051bcd1fce8034603d6ebfc125a7bd59f55b40d8f5d246832b"}, + {file = "numpy-1.26.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:854ab91a2906ef29dc3925a064fcd365c7b4da743f84b123002f6139bcb3f8a7"}, + {file = "numpy-1.26.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f43740ab089277d403aa07567be138fc2a89d4d9892d113b76153e0e412409f8"}, + {file = "numpy-1.26.2-cp311-cp311-win32.whl", hash = "sha256:a2bbc29fcb1771cd7b7425f98b05307776a6baf43035d3b80c4b0f29e9545186"}, + {file = "numpy-1.26.2-cp311-cp311-win_amd64.whl", hash = "sha256:2b3fca8a5b00184828d12b073af4d0fc5fdd94b1632c2477526f6bd7842d700d"}, + {file = "numpy-1.26.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:a4cd6ed4a339c21f1d1b0fdf13426cb3b284555c27ac2f156dfdaaa7e16bfab0"}, + {file = "numpy-1.26.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5d5244aabd6ed7f312268b9247be47343a654ebea52a60f002dc70c769048e75"}, + {file = "numpy-1.26.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6a3cdb4d9c70e6b8c0814239ead47da00934666f668426fc6e94cce869e13fd7"}, + {file = "numpy-1.26.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa317b2325f7aa0a9471663e6093c210cb2ae9c0ad824732b307d2c51983d5b6"}, + {file = "numpy-1.26.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:174a8880739c16c925799c018f3f55b8130c1f7c8e75ab0a6fa9d41cab092fd6"}, + {file = "numpy-1.26.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:f79b231bf5c16b1f39c7f4875e1ded36abee1591e98742b05d8a0fb55d8a3eec"}, + {file = "numpy-1.26.2-cp312-cp312-win32.whl", hash = "sha256:4a06263321dfd3598cacb252f51e521a8cb4b6df471bb12a7ee5cbab20ea9167"}, + {file = "numpy-1.26.2-cp312-cp312-win_amd64.whl", hash = "sha256:b04f5dc6b3efdaab541f7857351aac359e6ae3c126e2edb376929bd3b7f92d7e"}, + {file = "numpy-1.26.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4eb8df4bf8d3d90d091e0146f6c28492b0be84da3e409ebef54349f71ed271ef"}, + {file = "numpy-1.26.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1a13860fdcd95de7cf58bd6f8bc5a5ef81c0b0625eb2c9a783948847abbef2c2"}, + {file = "numpy-1.26.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:64308ebc366a8ed63fd0bf426b6a9468060962f1a4339ab1074c228fa6ade8e3"}, + {file = "numpy-1.26.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baf8aab04a2c0e859da118f0b38617e5ee65d75b83795055fb66c0d5e9e9b818"}, + {file = "numpy-1.26.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d73a3abcac238250091b11caef9ad12413dab01669511779bc9b29261dd50210"}, + {file = "numpy-1.26.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b361d369fc7e5e1714cf827b731ca32bff8d411212fccd29ad98ad622449cc36"}, + {file = "numpy-1.26.2-cp39-cp39-win32.whl", hash = "sha256:bd3f0091e845164a20bd5a326860c840fe2af79fa12e0469a12768a3ec578d80"}, + {file = "numpy-1.26.2-cp39-cp39-win_amd64.whl", hash = "sha256:2beef57fb031dcc0dc8fa4fe297a742027b954949cabb52a2a376c144e5e6060"}, + {file = "numpy-1.26.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:1cc3d5029a30fb5f06704ad6b23b35e11309491c999838c31f124fee32107c79"}, + {file = "numpy-1.26.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94cc3c222bb9fb5a12e334d0479b97bb2df446fbe622b470928f5284ffca3f8d"}, + {file = "numpy-1.26.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:fe6b44fb8fcdf7eda4ef4461b97b3f63c466b27ab151bec2366db8b197387841"}, + {file = "numpy-1.26.2.tar.gz", hash = "sha256:f65738447676ab5777f11e6bbbdb8ce11b785e105f690bc45966574816b6d3ea"}, +] + +[[package]] +name = "nvidia-cublas-cu12" +version = "12.1.3.1" +description = "CUBLAS native runtime libraries" +category = "main" +optional = false +python-versions = ">=3" +files = [ + {file = "nvidia_cublas_cu12-12.1.3.1-py3-none-manylinux1_x86_64.whl", hash = "sha256:ee53ccca76a6fc08fb9701aa95b6ceb242cdaab118c3bb152af4e579af792728"}, + {file = "nvidia_cublas_cu12-12.1.3.1-py3-none-win_amd64.whl", hash = "sha256:2b964d60e8cf11b5e1073d179d85fa340c120e99b3067558f3cf98dd69d02906"}, +] + +[[package]] +name = "nvidia-cuda-cupti-cu12" +version = "12.1.105" +description = "CUDA profiling tools runtime libs." +category = "main" +optional = false +python-versions = ">=3" +files = [ + {file = "nvidia_cuda_cupti_cu12-12.1.105-py3-none-manylinux1_x86_64.whl", hash = "sha256:e54fde3983165c624cb79254ae9818a456eb6e87a7fd4d56a2352c24ee542d7e"}, + {file = "nvidia_cuda_cupti_cu12-12.1.105-py3-none-win_amd64.whl", hash = "sha256:bea8236d13a0ac7190bd2919c3e8e6ce1e402104276e6f9694479e48bb0eb2a4"}, +] + +[[package]] +name = "nvidia-cuda-nvrtc-cu12" +version = "12.1.105" +description = "NVRTC native runtime libraries" +category = "main" +optional = false +python-versions = ">=3" +files = [ + {file = "nvidia_cuda_nvrtc_cu12-12.1.105-py3-none-manylinux1_x86_64.whl", hash = "sha256:339b385f50c309763ca65456ec75e17bbefcbbf2893f462cb8b90584cd27a1c2"}, + {file = "nvidia_cuda_nvrtc_cu12-12.1.105-py3-none-win_amd64.whl", hash = "sha256:0a98a522d9ff138b96c010a65e145dc1b4850e9ecb75a0172371793752fd46ed"}, +] + +[[package]] +name = "nvidia-cuda-runtime-cu12" +version = "12.1.105" +description = "CUDA Runtime native Libraries" +category = "main" +optional = false +python-versions = ">=3" +files = [ + {file = "nvidia_cuda_runtime_cu12-12.1.105-py3-none-manylinux1_x86_64.whl", hash = "sha256:6e258468ddf5796e25f1dc591a31029fa317d97a0a94ed93468fc86301d61e40"}, + {file = "nvidia_cuda_runtime_cu12-12.1.105-py3-none-win_amd64.whl", hash = "sha256:dfb46ef84d73fababab44cf03e3b83f80700d27ca300e537f85f636fac474344"}, +] + +[[package]] +name = "nvidia-cudnn-cu12" +version = "8.9.2.26" +description = "cuDNN runtime libraries" +category = "main" +optional = false +python-versions = ">=3" +files = [ + {file = "nvidia_cudnn_cu12-8.9.2.26-py3-none-manylinux1_x86_64.whl", hash = "sha256:5ccb288774fdfb07a7e7025ffec286971c06d8d7b4fb162525334616d7629ff9"}, +] + +[package.dependencies] +nvidia-cublas-cu12 = "*" + +[[package]] +name = "nvidia-cufft-cu12" +version = "11.0.2.54" +description = "CUFFT native runtime libraries" +category = "main" +optional = false +python-versions = ">=3" +files = [ + {file = "nvidia_cufft_cu12-11.0.2.54-py3-none-manylinux1_x86_64.whl", hash = "sha256:794e3948a1aa71fd817c3775866943936774d1c14e7628c74f6f7417224cdf56"}, + {file = "nvidia_cufft_cu12-11.0.2.54-py3-none-win_amd64.whl", hash = "sha256:d9ac353f78ff89951da4af698f80870b1534ed69993f10a4cf1d96f21357e253"}, +] + +[[package]] +name = "nvidia-curand-cu12" +version = "10.3.2.106" +description = "CURAND native runtime libraries" +category = "main" +optional = false +python-versions = ">=3" +files = [ + {file = "nvidia_curand_cu12-10.3.2.106-py3-none-manylinux1_x86_64.whl", hash = "sha256:9d264c5036dde4e64f1de8c50ae753237c12e0b1348738169cd0f8a536c0e1e0"}, + {file = "nvidia_curand_cu12-10.3.2.106-py3-none-win_amd64.whl", hash = "sha256:75b6b0c574c0037839121317e17fd01f8a69fd2ef8e25853d826fec30bdba74a"}, +] + +[[package]] +name = "nvidia-cusolver-cu12" +version = "11.4.5.107" +description = "CUDA solver native runtime libraries" +category = "main" +optional = false +python-versions = ">=3" +files = [ + {file = "nvidia_cusolver_cu12-11.4.5.107-py3-none-manylinux1_x86_64.whl", hash = "sha256:8a7ec542f0412294b15072fa7dab71d31334014a69f953004ea7a118206fe0dd"}, + {file = "nvidia_cusolver_cu12-11.4.5.107-py3-none-win_amd64.whl", hash = "sha256:74e0c3a24c78612192a74fcd90dd117f1cf21dea4822e66d89e8ea80e3cd2da5"}, +] + +[package.dependencies] +nvidia-cublas-cu12 = "*" +nvidia-cusparse-cu12 = "*" +nvidia-nvjitlink-cu12 = "*" + +[[package]] +name = "nvidia-cusparse-cu12" +version = "12.1.0.106" +description = "CUSPARSE native runtime libraries" +category = "main" +optional = false +python-versions = ">=3" +files = [ + {file = "nvidia_cusparse_cu12-12.1.0.106-py3-none-manylinux1_x86_64.whl", hash = "sha256:f3b50f42cf363f86ab21f720998517a659a48131e8d538dc02f8768237bd884c"}, + {file = "nvidia_cusparse_cu12-12.1.0.106-py3-none-win_amd64.whl", hash = "sha256:b798237e81b9719373e8fae8d4f091b70a0cf09d9d85c95a557e11df2d8e9a5a"}, +] + +[package.dependencies] +nvidia-nvjitlink-cu12 = "*" + +[[package]] +name = "nvidia-nccl-cu12" +version = "2.18.1" +description = "NVIDIA Collective Communication Library (NCCL) Runtime" +category = "main" +optional = false +python-versions = ">=3" +files = [ + {file = "nvidia_nccl_cu12-2.18.1-py3-none-manylinux1_x86_64.whl", hash = "sha256:1a6c4acefcbebfa6de320f412bf7866de856e786e0462326ba1bac40de0b5e71"}, +] + +[[package]] +name = "nvidia-nvjitlink-cu12" +version = "12.3.101" +description = "Nvidia JIT LTO Library" +category = "main" +optional = false +python-versions = ">=3" +files = [ + {file = "nvidia_nvjitlink_cu12-12.3.101-py3-none-manylinux1_x86_64.whl", hash = "sha256:64335a8088e2b9d196ae8665430bc6a2b7e6ef2eb877a9c735c804bd4ff6467c"}, + {file = "nvidia_nvjitlink_cu12-12.3.101-py3-none-win_amd64.whl", hash = "sha256:1b2e317e437433753530792f13eece58f0aec21a2b05903be7bffe58a606cbd1"}, +] + +[[package]] +name = "nvidia-nvtx-cu12" +version = "12.1.105" +description = "NVIDIA Tools Extension" +category = "main" +optional = false +python-versions = ">=3" +files = [ + {file = "nvidia_nvtx_cu12-12.1.105-py3-none-manylinux1_x86_64.whl", hash = "sha256:dc21cf308ca5691e7c04d962e213f8a4aa9bbfa23d95412f452254c2caeb09e5"}, + {file = "nvidia_nvtx_cu12-12.1.105-py3-none-win_amd64.whl", hash = "sha256:65f4d98982b31b60026e0e6de73fbdfc09d08a96f4656dd3665ca616a11e1e82"}, +] + +[[package]] +name = "onnx" +version = "1.15.0" +description = "Open Neural Network Exchange" +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "onnx-1.15.0-cp310-cp310-macosx_10_12_universal2.whl", hash = "sha256:51cacb6aafba308aaf462252ced562111f6991cdc7bc57a6c554c3519453a8ff"}, + {file = "onnx-1.15.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:0aee26b6f7f7da7e840de75ad9195a77a147d0662c94eaa6483be13ba468ffc1"}, + {file = "onnx-1.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:baf6ef6c93b3b843edb97a8d5b3d229a1301984f3f8dee859c29634d2083e6f9"}, + {file = "onnx-1.15.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:96ed899fe6000edc05bb2828863d3841cfddd5a7cf04c1a771f112e94de75d9f"}, + {file = "onnx-1.15.0-cp310-cp310-win32.whl", hash = "sha256:f1ad3d77fc2f4b4296f0ac2c8cadd8c1dcf765fc586b737462d3a0fe8f7c696a"}, + {file = "onnx-1.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:ca4ebc4f47109bfb12c8c9e83dd99ec5c9f07d2e5f05976356c6ccdce3552010"}, + {file = "onnx-1.15.0-cp311-cp311-macosx_10_12_universal2.whl", hash = "sha256:233ffdb5ca8cc2d960b10965a763910c0830b64b450376da59207f454701f343"}, + {file = "onnx-1.15.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:51fa79c9ea9af033638ec51f9177b8e76c55fad65bb83ea96ee88fafade18ee7"}, + {file = "onnx-1.15.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f277d4861729f5253a51fa41ce91bfec1c4574ee41b5637056b43500917295ce"}, + {file = "onnx-1.15.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d8a7c94d2ebead8f739fdb70d1ce5a71726f4e17b3e5b8ad64455ea1b2801a85"}, + {file = "onnx-1.15.0-cp311-cp311-win32.whl", hash = "sha256:17dcfb86a8c6bdc3971443c29b023dd9c90ff1d15d8baecee0747a6b7f74e650"}, + {file = "onnx-1.15.0-cp311-cp311-win_amd64.whl", hash = "sha256:60a3e28747e305cd2e766e6a53a0a6d952cf9e72005ec6023ce5e07666676a4e"}, + {file = "onnx-1.15.0-cp38-cp38-macosx_10_12_universal2.whl", hash = "sha256:6b5c798d9e0907eaf319e3d3e7c89a2ed9a854bcb83da5fefb6d4c12d5e90721"}, + {file = "onnx-1.15.0-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:a4f774ff50092fe19bd8f46b2c9b27b1d30fbd700c22abde48a478142d464322"}, + {file = "onnx-1.15.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2b0e7f3938f2d994c34616bfb8b4b1cebbc4a0398483344fe5e9f2fe95175e6"}, + {file = "onnx-1.15.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49cebebd0020a4b12c1dd0909d426631212ef28606d7e4d49463d36abe7639ad"}, + {file = "onnx-1.15.0-cp38-cp38-win32.whl", hash = "sha256:1fdf8a3ff75abc2b32c83bf27fb7c18d6b976c9c537263fadd82b9560fe186fa"}, + {file = "onnx-1.15.0-cp38-cp38-win_amd64.whl", hash = "sha256:763e55c26e8de3a2dce008d55ae81b27fa8fb4acbb01a29b9f3c01f200c4d676"}, + {file = "onnx-1.15.0-cp39-cp39-macosx_10_12_universal2.whl", hash = "sha256:b2d5e802837629fc9c86f19448d19dd04d206578328bce202aeb3d4bedab43c4"}, + {file = "onnx-1.15.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:9a9cfbb5e5d5d88f89d0dfc9df5fb858899db874e1d5ed21e76c481f3cafc90d"}, + {file = "onnx-1.15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3f472bbe5cb670a0a4a4db08f41fde69b187a009d0cb628f964840d3f83524e9"}, + {file = "onnx-1.15.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bf2de9bef64792e5b8080c678023ac7d2b9e05d79a3e17e92cf6a4a624831d2"}, + {file = "onnx-1.15.0-cp39-cp39-win32.whl", hash = "sha256:ef4d9eb44b111e69e4534f3233fc2c13d1e26920d24ae4359d513bd54694bc6d"}, + {file = "onnx-1.15.0-cp39-cp39-win_amd64.whl", hash = "sha256:95d7a3e2d79d371e272e39ae3f7547e0b116d0c7f774a4004e97febe6c93507f"}, + {file = "onnx-1.15.0.tar.gz", hash = "sha256:b18461a7d38f286618ca2a6e78062a2a9c634ce498e631e708a8041b00094825"}, +] + +[package.dependencies] +numpy = "*" +protobuf = ">=3.20.2" + +[package.extras] +reference = ["Pillow", "google-re2"] + +[[package]] +name = "onnxruntime" +version = "1.16.3" +description = "ONNX Runtime is a runtime accelerator for Machine Learning models" +category = "main" +optional = false +python-versions = "*" +files = [ + {file = "onnxruntime-1.16.3-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:3bc41f323ac77acfed190be8ffdc47a6a75e4beeb3473fbf55eeb075ccca8df2"}, + {file = "onnxruntime-1.16.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:212741b519ee61a4822c79c47147d63a8b0ffde25cd33988d3d7be9fbd51005d"}, + {file = "onnxruntime-1.16.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f91f5497fe3df4ceee2f9e66c6148d9bfeb320cd6a71df361c66c5b8bac985a"}, + {file = "onnxruntime-1.16.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef2b1fc269cabd27f129fb9058917d6fdc89b188c49ed8700f300b945c81f889"}, + {file = "onnxruntime-1.16.3-cp310-cp310-win32.whl", hash = "sha256:f36b56a593b49a3c430be008c2aea6658d91a3030115729609ec1d5ffbaab1b6"}, + {file = "onnxruntime-1.16.3-cp310-cp310-win_amd64.whl", hash = "sha256:3c467eaa3d2429c026b10c3d17b78b7f311f718ef9d2a0d6938e5c3c2611b0cf"}, + {file = "onnxruntime-1.16.3-cp311-cp311-macosx_10_15_x86_64.whl", hash = "sha256:a225bb683991001d111f75323d355b3590e75e16b5e0f07a0401e741a0143ea1"}, + {file = "onnxruntime-1.16.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9aded21fe3d898edd86be8aa2eb995aa375e800ad3dfe4be9f618a20b8ee3630"}, + {file = "onnxruntime-1.16.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:00cccc37a5195c8fca5011b9690b349db435986bd508eb44c9fce432da9228a4"}, + {file = "onnxruntime-1.16.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3e253e572021563226a86f1c024f8f70cdae28f2fb1cc8c3a9221e8b1ce37db5"}, + {file = "onnxruntime-1.16.3-cp311-cp311-win32.whl", hash = "sha256:a82a8f0b4c978d08f9f5c7a6019ae51151bced9fd91e5aaa0c20a9e4ac7a60b6"}, + {file = "onnxruntime-1.16.3-cp311-cp311-win_amd64.whl", hash = "sha256:78d81d9af457a1dc90db9a7da0d09f3ccb1288ea1236c6ab19f0ca61f3eee2d3"}, + {file = "onnxruntime-1.16.3-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:04ebcd29c20473596a1412e471524b2fb88d55e6301c40b98dd2407b5911595f"}, + {file = "onnxruntime-1.16.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9996bab0f202a6435ab867bc55598f15210d0b72794d5de83712b53d564084ae"}, + {file = "onnxruntime-1.16.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b8f5083f903408238883821dd8c775f8120cb4a604166dbdabe97f4715256d5"}, + {file = "onnxruntime-1.16.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c2dcf1b70f8434abb1116fe0975c00e740722aaf321997195ea3618cc00558e"}, + {file = "onnxruntime-1.16.3-cp38-cp38-win32.whl", hash = "sha256:d4a0151e1accd04da6711f6fd89024509602f82c65a754498e960b032359b02d"}, + {file = "onnxruntime-1.16.3-cp38-cp38-win_amd64.whl", hash = "sha256:e8aa5bba78afbd4d8a2654b14ec7462ff3ce4a6aad312a3c2d2c2b65009f2541"}, + {file = "onnxruntime-1.16.3-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:6829dc2a79d48c911fedaf4c0f01e03c86297d32718a3fdee7a282766dfd282a"}, + {file = "onnxruntime-1.16.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:76f876c53bfa912c6c242fc38213a6f13f47612d4360bc9d599bd23753e53161"}, + {file = "onnxruntime-1.16.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4137e5d443e2dccebe5e156a47f1d6d66f8077b03587c35f11ee0c7eda98b533"}, + {file = "onnxruntime-1.16.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c56695c1a343c7c008b647fff3df44da63741fbe7b6003ef576758640719be7b"}, + {file = "onnxruntime-1.16.3-cp39-cp39-win32.whl", hash = "sha256:985a029798744ce4743fcf8442240fed35c8e4d4d30ec7d0c2cdf1388cd44408"}, + {file = "onnxruntime-1.16.3-cp39-cp39-win_amd64.whl", hash = "sha256:28ff758b17ce3ca6bcad3d936ec53bd7f5482e7630a13f6dcae518eba8f71d85"}, +] + +[package.dependencies] +coloredlogs = "*" +flatbuffers = "*" +numpy = ">=1.21.6" +packaging = "*" +protobuf = "*" +sympy = "*" + +[[package]] +name = "opencv-python" +version = "4.8.1.78" +description = "Wrapper package for OpenCV python bindings." +category = "main" +optional = false +python-versions = ">=3.6" +files = [ + {file = "opencv-python-4.8.1.78.tar.gz", hash = "sha256:cc7adbbcd1112877a39274106cb2752e04984bc01a031162952e97450d6117f6"}, + {file = "opencv_python-4.8.1.78-cp37-abi3-macosx_10_16_x86_64.whl", hash = "sha256:91d5f6f5209dc2635d496f6b8ca6573ecdad051a09e6b5de4c399b8e673c60da"}, + {file = "opencv_python-4.8.1.78-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:bc31f47e05447da8b3089faa0a07ffe80e114c91ce0b171e6424f9badbd1c5cd"}, + {file = "opencv_python-4.8.1.78-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9814beca408d3a0eca1bae7e3e5be68b07c17ecceb392b94170881216e09b319"}, + {file = "opencv_python-4.8.1.78-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c4c406bdb41eb21ea51b4e90dfbc989c002786c3f601c236a99c59a54670a394"}, + {file = "opencv_python-4.8.1.78-cp37-abi3-win32.whl", hash = "sha256:a7aac3900fbacf55b551e7b53626c3dad4c71ce85643645c43e91fcb19045e47"}, + {file = "opencv_python-4.8.1.78-cp37-abi3-win_amd64.whl", hash = "sha256:b983197f97cfa6fcb74e1da1802c7497a6f94ed561aba6980f1f33123f904956"}, +] + +[package.dependencies] +numpy = [ + {version = ">=1.21.2", markers = "python_version >= \"3.10\""}, + {version = ">=1.21.4", markers = "python_version >= \"3.10\" and platform_system == \"Darwin\""}, + {version = ">=1.23.5", markers = "python_version >= \"3.11\""}, + {version = ">=1.19.3", markers = "python_version >= \"3.6\" and platform_system == \"Linux\" and platform_machine == \"aarch64\" or python_version >= \"3.9\""}, + {version = ">=1.17.0", markers = "python_version >= \"3.7\""}, + {version = ">=1.17.3", markers = "python_version >= \"3.8\""}, +] + +[[package]] +name = "opencv-python-headless" +version = "4.8.1.78" +description = "Wrapper package for OpenCV python bindings." +category = "main" +optional = false +python-versions = ">=3.6" +files = [ + {file = "opencv-python-headless-4.8.1.78.tar.gz", hash = "sha256:bc7197b42352f6f865c302a49140b889ec7cd957dd697e2d7fc016ad0d3f28f1"}, + {file = "opencv_python_headless-4.8.1.78-cp37-abi3-macosx_10_16_x86_64.whl", hash = "sha256:f3a33f644249f9ce1c913eac580e4b3ef4ce7cab0a71900274708959c2feb5e3"}, + {file = "opencv_python_headless-4.8.1.78-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:2c7d45721df9801c4dcd34683a15caa0e30f38b185263fec04a6eb274bc720f0"}, + {file = "opencv_python_headless-4.8.1.78-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3b6bd6e1132b6f5dcb3a5bfe30fc4d341a7bfb26134da349a06c9255288ded94"}, + {file = "opencv_python_headless-4.8.1.78-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58e70d2f0915fe23e02c6e405588276c9397844a47d38b9c87fac5f7f9ba2dcc"}, + {file = "opencv_python_headless-4.8.1.78-cp37-abi3-win32.whl", hash = "sha256:382f8c7a6a14f80091284eecedd52cee4812231ee0eff1118592197b538d9252"}, + {file = "opencv_python_headless-4.8.1.78-cp37-abi3-win_amd64.whl", hash = "sha256:0a0f1e9f836f7d5bad1dd164694944c8761711cbdf4b36ebbd4815a8ef731079"}, +] + +[package.dependencies] +numpy = [ + {version = ">=1.21.2", markers = "python_version >= \"3.10\""}, + {version = ">=1.21.4", markers = "python_version >= \"3.10\" and platform_system == \"Darwin\""}, + {version = ">=1.23.5", markers = "python_version >= \"3.11\""}, + {version = ">=1.19.3", markers = "python_version >= \"3.6\" and platform_system == \"Linux\" and platform_machine == \"aarch64\" or python_version >= \"3.9\""}, + {version = ">=1.17.0", markers = "python_version >= \"3.7\""}, + {version = ">=1.17.3", markers = "python_version >= \"3.8\""}, +] + +[[package]] +name = "overrides" +version = "7.4.0" +description = "A decorator to automatically detect mismatch when overriding a method." +category = "main" +optional = false +python-versions = ">=3.6" +files = [ + {file = "overrides-7.4.0-py3-none-any.whl", hash = "sha256:3ad24583f86d6d7a49049695efe9933e67ba62f0c7625d53c59fa832ce4b8b7d"}, + {file = "overrides-7.4.0.tar.gz", hash = "sha256:9502a3cca51f4fac40b5feca985b6703a5c1f6ad815588a7ca9e285b9dca6757"}, +] + +[[package]] +name = "packaging" +version = "23.2" +description = "Core utilities for Python packages" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7"}, + {file = "packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"}, +] + +[[package]] +name = "pandas" +version = "1.5.3" +description = "Powerful data structures for data analysis, time series, and statistics" +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pandas-1.5.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3749077d86e3a2f0ed51367f30bf5b82e131cc0f14260c4d3e499186fccc4406"}, + {file = "pandas-1.5.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:972d8a45395f2a2d26733eb8d0f629b2f90bebe8e8eddbb8829b180c09639572"}, + {file = "pandas-1.5.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:50869a35cbb0f2e0cd5ec04b191e7b12ed688874bd05dd777c19b28cbea90996"}, + {file = "pandas-1.5.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c3ac844a0fe00bfaeb2c9b51ab1424e5c8744f89860b138434a363b1f620f354"}, + {file = "pandas-1.5.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a0a56cef15fd1586726dace5616db75ebcfec9179a3a55e78f72c5639fa2a23"}, + {file = "pandas-1.5.3-cp310-cp310-win_amd64.whl", hash = "sha256:478ff646ca42b20376e4ed3fa2e8d7341e8a63105586efe54fa2508ee087f328"}, + {file = "pandas-1.5.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6973549c01ca91ec96199e940495219c887ea815b2083722821f1d7abfa2b4dc"}, + {file = "pandas-1.5.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c39a8da13cede5adcd3be1182883aea1c925476f4e84b2807a46e2775306305d"}, + {file = "pandas-1.5.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f76d097d12c82a535fda9dfe5e8dd4127952b45fea9b0276cb30cca5ea313fbc"}, + {file = "pandas-1.5.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e474390e60ed609cec869b0da796ad94f420bb057d86784191eefc62b65819ae"}, + {file = "pandas-1.5.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5f2b952406a1588ad4cad5b3f55f520e82e902388a6d5a4a91baa8d38d23c7f6"}, + {file = "pandas-1.5.3-cp311-cp311-win_amd64.whl", hash = "sha256:bc4c368f42b551bf72fac35c5128963a171b40dce866fb066540eeaf46faa003"}, + {file = "pandas-1.5.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:14e45300521902689a81f3f41386dc86f19b8ba8dd5ac5a3c7010ef8d2932813"}, + {file = "pandas-1.5.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9842b6f4b8479e41968eced654487258ed81df7d1c9b7b870ceea24ed9459b31"}, + {file = "pandas-1.5.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:26d9c71772c7afb9d5046e6e9cf42d83dd147b5cf5bcb9d97252077118543792"}, + {file = "pandas-1.5.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5fbcb19d6fceb9e946b3e23258757c7b225ba450990d9ed63ccceeb8cae609f7"}, + {file = "pandas-1.5.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:565fa34a5434d38e9d250af3c12ff931abaf88050551d9fbcdfafca50d62babf"}, + {file = "pandas-1.5.3-cp38-cp38-win32.whl", hash = "sha256:87bd9c03da1ac870a6d2c8902a0e1fd4267ca00f13bc494c9e5a9020920e1d51"}, + {file = "pandas-1.5.3-cp38-cp38-win_amd64.whl", hash = "sha256:41179ce559943d83a9b4bbacb736b04c928b095b5f25dd2b7389eda08f46f373"}, + {file = "pandas-1.5.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c74a62747864ed568f5a82a49a23a8d7fe171d0c69038b38cedf0976831296fa"}, + {file = "pandas-1.5.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c4c00e0b0597c8e4f59e8d461f797e5d70b4d025880516a8261b2817c47759ee"}, + {file = "pandas-1.5.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a50d9a4336a9621cab7b8eb3fb11adb82de58f9b91d84c2cd526576b881a0c5a"}, + {file = "pandas-1.5.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd05f7783b3274aa206a1af06f0ceed3f9b412cf665b7247eacd83be41cf7bf0"}, + {file = "pandas-1.5.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f69c4029613de47816b1bb30ff5ac778686688751a5e9c99ad8c7031f6508e5"}, + {file = "pandas-1.5.3-cp39-cp39-win32.whl", hash = "sha256:7cec0bee9f294e5de5bbfc14d0573f65526071029d036b753ee6507d2a21480a"}, + {file = "pandas-1.5.3-cp39-cp39-win_amd64.whl", hash = "sha256:dfd681c5dc216037e0b0a2c821f5ed99ba9f03ebcf119c7dac0e9a7b960b9ec9"}, + {file = "pandas-1.5.3.tar.gz", hash = "sha256:74a3fd7e5a7ec052f183273dc7b0acd3a863edf7520f5d3a1765c04ffdb3b0b1"}, +] + +[package.dependencies] +numpy = [ + {version = ">=1.21.0", markers = "python_version >= \"3.10\""}, + {version = ">=1.23.2", markers = "python_version >= \"3.11\""}, +] +python-dateutil = ">=2.8.1" +pytz = ">=2020.1" + +[package.extras] +test = ["hypothesis (>=5.5.3)", "pytest (>=6.0)", "pytest-xdist (>=1.31)"] + +[[package]] +name = "pandocfilters" +version = "1.5.0" +description = "Utilities for writing pandoc filters in python" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "pandocfilters-1.5.0-py2.py3-none-any.whl", hash = "sha256:33aae3f25fd1a026079f5d27bdd52496f0e0803b3469282162bafdcbdf6ef14f"}, + {file = "pandocfilters-1.5.0.tar.gz", hash = "sha256:0b679503337d233b4339a817bfc8c50064e2eff681314376a47cb582305a7a38"}, +] + +[[package]] +name = "parso" +version = "0.8.3" +description = "A Python Parser" +category = "main" +optional = false +python-versions = ">=3.6" +files = [ + {file = "parso-0.8.3-py2.py3-none-any.whl", hash = "sha256:c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75"}, + {file = "parso-0.8.3.tar.gz", hash = "sha256:8c07be290bb59f03588915921e29e8a50002acaf2cdc5fa0e0114f91709fafa0"}, +] + +[package.extras] +qa = ["flake8 (==3.8.3)", "mypy (==0.782)"] +testing = ["docopt", "pytest (<6.0.0)"] + +[[package]] +name = "pexpect" +version = "4.9.0" +description = "Pexpect allows easy control of interactive console applications." +category = "main" +optional = false +python-versions = "*" +files = [ + {file = "pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523"}, + {file = "pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f"}, +] + +[package.dependencies] +ptyprocess = ">=0.5" + +[[package]] +name = "pillow" +version = "10.1.0" +description = "Python Imaging Library (Fork)" +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "Pillow-10.1.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:1ab05f3db77e98f93964697c8efc49c7954b08dd61cff526b7f2531a22410106"}, + {file = "Pillow-10.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6932a7652464746fcb484f7fc3618e6503d2066d853f68a4bd97193a3996e273"}, + {file = "Pillow-10.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5f63b5a68daedc54c7c3464508d8c12075e56dcfbd42f8c1bf40169061ae666"}, + {file = "Pillow-10.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0949b55eb607898e28eaccb525ab104b2d86542a85c74baf3a6dc24002edec2"}, + {file = "Pillow-10.1.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:ae88931f93214777c7a3aa0a8f92a683f83ecde27f65a45f95f22d289a69e593"}, + {file = "Pillow-10.1.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:b0eb01ca85b2361b09480784a7931fc648ed8b7836f01fb9241141b968feb1db"}, + {file = "Pillow-10.1.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d27b5997bdd2eb9fb199982bb7eb6164db0426904020dc38c10203187ae2ff2f"}, + {file = "Pillow-10.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7df5608bc38bd37ef585ae9c38c9cd46d7c81498f086915b0f97255ea60c2818"}, + {file = "Pillow-10.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:41f67248d92a5e0a2076d3517d8d4b1e41a97e2df10eb8f93106c89107f38b57"}, + {file = "Pillow-10.1.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:1fb29c07478e6c06a46b867e43b0bcdb241b44cc52be9bc25ce5944eed4648e7"}, + {file = "Pillow-10.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2cdc65a46e74514ce742c2013cd4a2d12e8553e3a2563c64879f7c7e4d28bce7"}, + {file = "Pillow-10.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50d08cd0a2ecd2a8657bd3d82c71efd5a58edb04d9308185d66c3a5a5bed9610"}, + {file = "Pillow-10.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:062a1610e3bc258bff2328ec43f34244fcec972ee0717200cb1425214fe5b839"}, + {file = "Pillow-10.1.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:61f1a9d247317fa08a308daaa8ee7b3f760ab1809ca2da14ecc88ae4257d6172"}, + {file = "Pillow-10.1.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:a646e48de237d860c36e0db37ecaecaa3619e6f3e9d5319e527ccbc8151df061"}, + {file = "Pillow-10.1.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:47e5bf85b80abc03be7455c95b6d6e4896a62f6541c1f2ce77a7d2bb832af262"}, + {file = "Pillow-10.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:a92386125e9ee90381c3369f57a2a50fa9e6aa8b1cf1d9c4b200d41a7dd8e992"}, + {file = "Pillow-10.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:0f7c276c05a9767e877a0b4c5050c8bee6a6d960d7f0c11ebda6b99746068c2a"}, + {file = "Pillow-10.1.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:a89b8312d51715b510a4fe9fc13686283f376cfd5abca8cd1c65e4c76e21081b"}, + {file = "Pillow-10.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:00f438bb841382b15d7deb9a05cc946ee0f2c352653c7aa659e75e592f6fa17d"}, + {file = "Pillow-10.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3d929a19f5469b3f4df33a3df2983db070ebb2088a1e145e18facbc28cae5b27"}, + {file = "Pillow-10.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a92109192b360634a4489c0c756364c0c3a2992906752165ecb50544c251312"}, + {file = "Pillow-10.1.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:0248f86b3ea061e67817c47ecbe82c23f9dd5d5226200eb9090b3873d3ca32de"}, + {file = "Pillow-10.1.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:9882a7451c680c12f232a422730f986a1fcd808da0fd428f08b671237237d651"}, + {file = "Pillow-10.1.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:1c3ac5423c8c1da5928aa12c6e258921956757d976405e9467c5f39d1d577a4b"}, + {file = "Pillow-10.1.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:806abdd8249ba3953c33742506fe414880bad78ac25cc9a9b1c6ae97bedd573f"}, + {file = "Pillow-10.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:eaed6977fa73408b7b8a24e8b14e59e1668cfc0f4c40193ea7ced8e210adf996"}, + {file = "Pillow-10.1.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:fe1e26e1ffc38be097f0ba1d0d07fcade2bcfd1d023cda5b29935ae8052bd793"}, + {file = "Pillow-10.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7a7e3daa202beb61821c06d2517428e8e7c1aab08943e92ec9e5755c2fc9ba5e"}, + {file = "Pillow-10.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:24fadc71218ad2b8ffe437b54876c9382b4a29e030a05a9879f615091f42ffc2"}, + {file = "Pillow-10.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa1d323703cfdac2036af05191b969b910d8f115cf53093125e4058f62012c9a"}, + {file = "Pillow-10.1.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:912e3812a1dbbc834da2b32299b124b5ddcb664ed354916fd1ed6f193f0e2d01"}, + {file = "Pillow-10.1.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:7dbaa3c7de82ef37e7708521be41db5565004258ca76945ad74a8e998c30af8d"}, + {file = "Pillow-10.1.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:9d7bc666bd8c5a4225e7ac71f2f9d12466ec555e89092728ea0f5c0c2422ea80"}, + {file = "Pillow-10.1.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:baada14941c83079bf84c037e2d8b7506ce201e92e3d2fa0d1303507a8538212"}, + {file = "Pillow-10.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:2ef6721c97894a7aa77723740a09547197533146fba8355e86d6d9a4a1056b14"}, + {file = "Pillow-10.1.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:0a026c188be3b443916179f5d04548092e253beb0c3e2ee0a4e2cdad72f66099"}, + {file = "Pillow-10.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:04f6f6149f266a100374ca3cc368b67fb27c4af9f1cc8cb6306d849dcdf12616"}, + {file = "Pillow-10.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb40c011447712d2e19cc261c82655f75f32cb724788df315ed992a4d65696bb"}, + {file = "Pillow-10.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1a8413794b4ad9719346cd9306118450b7b00d9a15846451549314a58ac42219"}, + {file = "Pillow-10.1.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:c9aeea7b63edb7884b031a35305629a7593272b54f429a9869a4f63a1bf04c34"}, + {file = "Pillow-10.1.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:b4005fee46ed9be0b8fb42be0c20e79411533d1fd58edabebc0dd24626882cfd"}, + {file = "Pillow-10.1.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4d0152565c6aa6ebbfb1e5d8624140a440f2b99bf7afaafbdbf6430426497f28"}, + {file = "Pillow-10.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d921bc90b1defa55c9917ca6b6b71430e4286fc9e44c55ead78ca1a9f9eba5f2"}, + {file = "Pillow-10.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:cfe96560c6ce2f4c07d6647af2d0f3c54cc33289894ebd88cfbb3bcd5391e256"}, + {file = "Pillow-10.1.0-pp310-pypy310_pp73-macosx_10_10_x86_64.whl", hash = "sha256:937bdc5a7f5343d1c97dc98149a0be7eb9704e937fe3dc7140e229ae4fc572a7"}, + {file = "Pillow-10.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b1c25762197144e211efb5f4e8ad656f36c8d214d390585d1d21281f46d556ba"}, + {file = "Pillow-10.1.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:afc8eef765d948543a4775f00b7b8c079b3321d6b675dde0d02afa2ee23000b4"}, + {file = "Pillow-10.1.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:883f216eac8712b83a63f41b76ddfb7b2afab1b74abbb413c5df6680f071a6b9"}, + {file = "Pillow-10.1.0-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:b920e4d028f6442bea9a75b7491c063f0b9a3972520731ed26c83e254302eb1e"}, + {file = "Pillow-10.1.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c41d960babf951e01a49c9746f92c5a7e0d939d1652d7ba30f6b3090f27e412"}, + {file = "Pillow-10.1.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:1fafabe50a6977ac70dfe829b2d5735fd54e190ab55259ec8aea4aaea412fa0b"}, + {file = "Pillow-10.1.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:3b834f4b16173e5b92ab6566f0473bfb09f939ba14b23b8da1f54fa63e4b623f"}, + {file = "Pillow-10.1.0.tar.gz", hash = "sha256:e6bf8de6c36ed96c86ea3b6e1d5273c53f46ef518a062464cd7ef5dd2cf92e38"}, +] + +[package.extras] +docs = ["furo", "olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-removed-in", "sphinxext-opengraph"] +tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"] + +[[package]] +name = "platformdirs" +version = "4.1.0" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "platformdirs-4.1.0-py3-none-any.whl", hash = "sha256:11c8f37bcca40db96d8144522d925583bdb7a31f7b0e37e3ed4318400a8e2380"}, + {file = "platformdirs-4.1.0.tar.gz", hash = "sha256:906d548203468492d432bcb294d4bc2fff751bf84971fbb2c10918cc206ee420"}, +] + +[package.extras] +docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.1)", "sphinx-autodoc-typehints (>=1.24)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)"] + +[[package]] +name = "prometheus-client" +version = "0.19.0" +description = "Python client for the Prometheus monitoring system." +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "prometheus_client-0.19.0-py3-none-any.whl", hash = "sha256:c88b1e6ecf6b41cd8fb5731c7ae919bf66df6ec6fafa555cd6c0e16ca169ae92"}, + {file = "prometheus_client-0.19.0.tar.gz", hash = "sha256:4585b0d1223148c27a225b10dbec5ae9bc4c81a99a3fa80774fa6209935324e1"}, +] + +[package.extras] +twisted = ["twisted"] + +[[package]] +name = "prompt-toolkit" +version = "3.0.43" +description = "Library for building powerful interactive command lines in Python" +category = "main" +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "prompt_toolkit-3.0.43-py3-none-any.whl", hash = "sha256:a11a29cb3bf0a28a387fe5122cdb649816a957cd9261dcedf8c9f1fef33eacf6"}, + {file = "prompt_toolkit-3.0.43.tar.gz", hash = "sha256:3527b7af26106cbc65a040bcc84839a3566ec1b051bb0bfe953631e704b0ff7d"}, +] + +[package.dependencies] +wcwidth = "*" + +[[package]] +name = "protobuf" +version = "4.25.1" +description = "" +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "protobuf-4.25.1-cp310-abi3-win32.whl", hash = "sha256:193f50a6ab78a970c9b4f148e7c750cfde64f59815e86f686c22e26b4fe01ce7"}, + {file = "protobuf-4.25.1-cp310-abi3-win_amd64.whl", hash = "sha256:3497c1af9f2526962f09329fd61a36566305e6c72da2590ae0d7d1322818843b"}, + {file = "protobuf-4.25.1-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:0bf384e75b92c42830c0a679b0cd4d6e2b36ae0cf3dbb1e1dfdda48a244f4bcd"}, + {file = "protobuf-4.25.1-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:0f881b589ff449bf0b931a711926e9ddaad3b35089cc039ce1af50b21a4ae8cb"}, + {file = "protobuf-4.25.1-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:ca37bf6a6d0046272c152eea90d2e4ef34593aaa32e8873fc14c16440f22d4b7"}, + {file = "protobuf-4.25.1-cp38-cp38-win32.whl", hash = "sha256:abc0525ae2689a8000837729eef7883b9391cd6aa7950249dcf5a4ede230d5dd"}, + {file = "protobuf-4.25.1-cp38-cp38-win_amd64.whl", hash = "sha256:1484f9e692091450e7edf418c939e15bfc8fc68856e36ce399aed6889dae8bb0"}, + {file = "protobuf-4.25.1-cp39-cp39-win32.whl", hash = "sha256:8bdbeaddaac52d15c6dce38c71b03038ef7772b977847eb6d374fc86636fa510"}, + {file = "protobuf-4.25.1-cp39-cp39-win_amd64.whl", hash = "sha256:becc576b7e6b553d22cbdf418686ee4daa443d7217999125c045ad56322dda10"}, + {file = "protobuf-4.25.1-py3-none-any.whl", hash = "sha256:a19731d5e83ae4737bb2a089605e636077ac001d18781b3cf489b9546c7c80d6"}, + {file = "protobuf-4.25.1.tar.gz", hash = "sha256:57d65074b4f5baa4ab5da1605c02be90ac20c8b40fb137d6a8df9f416b0d0ce2"}, +] + +[[package]] +name = "psutil" +version = "5.9.7" +description = "Cross-platform lib for process and system monitoring in Python." +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" +files = [ + {file = "psutil-5.9.7-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:0bd41bf2d1463dfa535942b2a8f0e958acf6607ac0be52265ab31f7923bcd5e6"}, + {file = "psutil-5.9.7-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:5794944462509e49d4d458f4dbfb92c47539e7d8d15c796f141f474010084056"}, + {file = "psutil-5.9.7-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:fe361f743cb3389b8efda21980d93eb55c1f1e3898269bc9a2a1d0bb7b1f6508"}, + {file = "psutil-5.9.7-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:e469990e28f1ad738f65a42dcfc17adaed9d0f325d55047593cb9033a0ab63df"}, + {file = "psutil-5.9.7-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:3c4747a3e2ead1589e647e64aad601981f01b68f9398ddf94d01e3dc0d1e57c7"}, + {file = "psutil-5.9.7-cp27-none-win32.whl", hash = "sha256:1d4bc4a0148fdd7fd8f38e0498639ae128e64538faa507df25a20f8f7fb2341c"}, + {file = "psutil-5.9.7-cp27-none-win_amd64.whl", hash = "sha256:4c03362e280d06bbbfcd52f29acd79c733e0af33d707c54255d21029b8b32ba6"}, + {file = "psutil-5.9.7-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ea36cc62e69a13ec52b2f625c27527f6e4479bca2b340b7a452af55b34fcbe2e"}, + {file = "psutil-5.9.7-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1132704b876e58d277168cd729d64750633d5ff0183acf5b3c986b8466cd0284"}, + {file = "psutil-5.9.7-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe8b7f07948f1304497ce4f4684881250cd859b16d06a1dc4d7941eeb6233bfe"}, + {file = "psutil-5.9.7-cp36-cp36m-win32.whl", hash = "sha256:b27f8fdb190c8c03914f908a4555159327d7481dac2f01008d483137ef3311a9"}, + {file = "psutil-5.9.7-cp36-cp36m-win_amd64.whl", hash = "sha256:44969859757f4d8f2a9bd5b76eba8c3099a2c8cf3992ff62144061e39ba8568e"}, + {file = "psutil-5.9.7-cp37-abi3-win32.whl", hash = "sha256:c727ca5a9b2dd5193b8644b9f0c883d54f1248310023b5ad3e92036c5e2ada68"}, + {file = "psutil-5.9.7-cp37-abi3-win_amd64.whl", hash = "sha256:f37f87e4d73b79e6c5e749440c3113b81d1ee7d26f21c19c47371ddea834f414"}, + {file = "psutil-5.9.7-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:032f4f2c909818c86cea4fe2cc407f1c0f0cde8e6c6d702b28b8ce0c0d143340"}, + {file = "psutil-5.9.7.tar.gz", hash = "sha256:3f02134e82cfb5d089fddf20bb2e03fd5cd52395321d1c8458a9e58500ff417c"}, +] + +[package.extras] +test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] + +[[package]] +name = "ptyprocess" +version = "0.7.0" +description = "Run a subprocess in a pseudo terminal" +category = "main" +optional = false +python-versions = "*" +files = [ + {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"}, + {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"}, +] + +[[package]] +name = "pure-eval" +version = "0.2.2" +description = "Safely evaluate AST nodes without side effects" +category = "main" +optional = false +python-versions = "*" +files = [ + {file = "pure_eval-0.2.2-py3-none-any.whl", hash = "sha256:01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350"}, + {file = "pure_eval-0.2.2.tar.gz", hash = "sha256:2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3"}, +] + +[package.extras] +tests = ["pytest"] + +[[package]] +name = "pycparser" +version = "2.21" +description = "C parser in Python" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"}, + {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, +] + +[[package]] +name = "pygments" +version = "2.17.2" +description = "Pygments is a syntax highlighting package written in Python." +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pygments-2.17.2-py3-none-any.whl", hash = "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c"}, + {file = "pygments-2.17.2.tar.gz", hash = "sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367"}, +] + +[package.extras] +plugins = ["importlib-metadata"] +windows-terminal = ["colorama (>=0.4.6)"] + +[[package]] +name = "pyparsing" +version = "3.1.1" +description = "pyparsing module - Classes and methods to define and execute parsing grammars" +category = "main" +optional = false +python-versions = ">=3.6.8" +files = [ + {file = "pyparsing-3.1.1-py3-none-any.whl", hash = "sha256:32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb"}, + {file = "pyparsing-3.1.1.tar.gz", hash = "sha256:ede28a1a32462f5a9705e07aea48001a08f7cf81a021585011deba701581a0db"}, +] + +[package.extras] +diagrams = ["jinja2", "railroad-diagrams"] + +[[package]] +name = "pyreadline3" +version = "3.4.1" +description = "A python implementation of GNU readline." +category = "main" +optional = false +python-versions = "*" +files = [ + {file = "pyreadline3-3.4.1-py3-none-any.whl", hash = "sha256:b0efb6516fd4fb07b45949053826a62fa4cb353db5be2bbb4a7aa1fdd1e345fb"}, + {file = "pyreadline3-3.4.1.tar.gz", hash = "sha256:6f3d1f7b8a31ba32b73917cefc1f28cc660562f39aea8646d30bd6eff21f7bae"}, +] + +[[package]] +name = "python-dateutil" +version = "2.8.2" +description = "Extensions to the standard Python datetime module" +category = "main" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +files = [ + {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, + {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, +] + +[package.dependencies] +six = ">=1.5" + +[[package]] +name = "python-json-logger" +version = "2.0.7" +description = "A python library adding a json log formatter" +category = "main" +optional = false +python-versions = ">=3.6" +files = [ + {file = "python-json-logger-2.0.7.tar.gz", hash = "sha256:23e7ec02d34237c5aa1e29a070193a4ea87583bb4e7f8fd06d3de8264c4b2e1c"}, + {file = "python_json_logger-2.0.7-py3-none-any.whl", hash = "sha256:f380b826a991ebbe3de4d897aeec42760035ac760345e57b812938dc8b35e2bd"}, +] + +[[package]] +name = "pytz" +version = "2023.3.post1" +description = "World timezone definitions, modern and historical" +category = "main" +optional = false +python-versions = "*" +files = [ + {file = "pytz-2023.3.post1-py2.py3-none-any.whl", hash = "sha256:ce42d816b81b68506614c11e8937d3aa9e41007ceb50bfdcb0749b921bf646c7"}, + {file = "pytz-2023.3.post1.tar.gz", hash = "sha256:7b4fddbeb94a1eba4b557da24f19fdf9db575192544270a9101d8509f9f43d7b"}, +] + +[[package]] +name = "pywin32" +version = "306" +description = "Python for Window Extensions" +category = "main" +optional = false +python-versions = "*" +files = [ + {file = "pywin32-306-cp310-cp310-win32.whl", hash = "sha256:06d3420a5155ba65f0b72f2699b5bacf3109f36acbe8923765c22938a69dfc8d"}, + {file = "pywin32-306-cp310-cp310-win_amd64.whl", hash = "sha256:84f4471dbca1887ea3803d8848a1616429ac94a4a8d05f4bc9c5dcfd42ca99c8"}, + {file = "pywin32-306-cp311-cp311-win32.whl", hash = "sha256:e65028133d15b64d2ed8f06dd9fbc268352478d4f9289e69c190ecd6818b6407"}, + {file = "pywin32-306-cp311-cp311-win_amd64.whl", hash = "sha256:a7639f51c184c0272e93f244eb24dafca9b1855707d94c192d4a0b4c01e1100e"}, + {file = "pywin32-306-cp311-cp311-win_arm64.whl", hash = "sha256:70dba0c913d19f942a2db25217d9a1b726c278f483a919f1abfed79c9cf64d3a"}, + {file = "pywin32-306-cp312-cp312-win32.whl", hash = "sha256:383229d515657f4e3ed1343da8be101000562bf514591ff383ae940cad65458b"}, + {file = "pywin32-306-cp312-cp312-win_amd64.whl", hash = "sha256:37257794c1ad39ee9be652da0462dc2e394c8159dfd913a8a4e8eb6fd346da0e"}, + {file = "pywin32-306-cp312-cp312-win_arm64.whl", hash = "sha256:5821ec52f6d321aa59e2db7e0a35b997de60c201943557d108af9d4ae1ec7040"}, + {file = "pywin32-306-cp37-cp37m-win32.whl", hash = "sha256:1c73ea9a0d2283d889001998059f5eaaba3b6238f767c9cf2833b13e6a685f65"}, + {file = "pywin32-306-cp37-cp37m-win_amd64.whl", hash = "sha256:72c5f621542d7bdd4fdb716227be0dd3f8565c11b280be6315b06ace35487d36"}, + {file = "pywin32-306-cp38-cp38-win32.whl", hash = "sha256:e4c092e2589b5cf0d365849e73e02c391c1349958c5ac3e9d5ccb9a28e017b3a"}, + {file = "pywin32-306-cp38-cp38-win_amd64.whl", hash = "sha256:e8ac1ae3601bee6ca9f7cb4b5363bf1c0badb935ef243c4733ff9a393b1690c0"}, + {file = "pywin32-306-cp39-cp39-win32.whl", hash = "sha256:e25fd5b485b55ac9c057f67d94bc203f3f6595078d1fb3b458c9c28b7153a802"}, + {file = "pywin32-306-cp39-cp39-win_amd64.whl", hash = "sha256:39b61c15272833b5c329a2989999dcae836b1eed650252ab1b7bfbe1d59f30f4"}, +] + +[[package]] +name = "pywinpty" +version = "2.0.12" +description = "Pseudo terminal support for Windows from Python." +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pywinpty-2.0.12-cp310-none-win_amd64.whl", hash = "sha256:21319cd1d7c8844fb2c970fb3a55a3db5543f112ff9cfcd623746b9c47501575"}, + {file = "pywinpty-2.0.12-cp311-none-win_amd64.whl", hash = "sha256:853985a8f48f4731a716653170cd735da36ffbdc79dcb4c7b7140bce11d8c722"}, + {file = "pywinpty-2.0.12-cp312-none-win_amd64.whl", hash = "sha256:1617b729999eb6713590e17665052b1a6ae0ad76ee31e60b444147c5b6a35dca"}, + {file = "pywinpty-2.0.12-cp38-none-win_amd64.whl", hash = "sha256:189380469ca143d06e19e19ff3fba0fcefe8b4a8cc942140a6b863aed7eebb2d"}, + {file = "pywinpty-2.0.12-cp39-none-win_amd64.whl", hash = "sha256:7520575b6546db23e693cbd865db2764097bd6d4ef5dc18c92555904cd62c3d4"}, + {file = "pywinpty-2.0.12.tar.gz", hash = "sha256:8197de460ae8ebb7f5d1701dfa1b5df45b157bb832e92acba316305e18ca00dd"}, +] + +[[package]] +name = "pyyaml" +version = "6.0.1" +description = "YAML parser and emitter for Python" +category = "main" +optional = false +python-versions = ">=3.6" +files = [ + {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, + {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, + {file = "PyYAML-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290"}, + {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, + {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, + {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, + {file = "PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, + {file = "PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b"}, + {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, + {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, + {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, + {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, + {file = "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"}, + {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd"}, + {file = "PyYAML-6.0.1-cp36-cp36m-win32.whl", hash = "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585"}, + {file = "PyYAML-6.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa"}, + {file = "PyYAML-6.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c"}, + {file = "PyYAML-6.0.1-cp37-cp37m-win32.whl", hash = "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba"}, + {file = "PyYAML-6.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867"}, + {file = "PyYAML-6.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, + {file = "PyYAML-6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6"}, + {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, + {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, + {file = "PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5"}, + {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, + {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, + {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, +] + +[[package]] +name = "pyzmq" +version = "25.1.2" +description = "Python bindings for 0MQ" +category = "main" +optional = false +python-versions = ">=3.6" +files = [ + {file = "pyzmq-25.1.2-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:e624c789359f1a16f83f35e2c705d07663ff2b4d4479bad35621178d8f0f6ea4"}, + {file = "pyzmq-25.1.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:49151b0efece79f6a79d41a461d78535356136ee70084a1c22532fc6383f4ad0"}, + {file = "pyzmq-25.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d9a5f194cf730f2b24d6af1f833c14c10f41023da46a7f736f48b6d35061e76e"}, + {file = "pyzmq-25.1.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:faf79a302f834d9e8304fafdc11d0d042266667ac45209afa57e5efc998e3872"}, + {file = "pyzmq-25.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f51a7b4ead28d3fca8dda53216314a553b0f7a91ee8fc46a72b402a78c3e43d"}, + {file = "pyzmq-25.1.2-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:0ddd6d71d4ef17ba5a87becf7ddf01b371eaba553c603477679ae817a8d84d75"}, + {file = "pyzmq-25.1.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:246747b88917e4867e2367b005fc8eefbb4a54b7db363d6c92f89d69abfff4b6"}, + {file = "pyzmq-25.1.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:00c48ae2fd81e2a50c3485de1b9d5c7c57cd85dc8ec55683eac16846e57ac979"}, + {file = "pyzmq-25.1.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:5a68d491fc20762b630e5db2191dd07ff89834086740f70e978bb2ef2668be08"}, + {file = "pyzmq-25.1.2-cp310-cp310-win32.whl", hash = "sha256:09dfe949e83087da88c4a76767df04b22304a682d6154de2c572625c62ad6886"}, + {file = "pyzmq-25.1.2-cp310-cp310-win_amd64.whl", hash = "sha256:fa99973d2ed20417744fca0073390ad65ce225b546febb0580358e36aa90dba6"}, + {file = "pyzmq-25.1.2-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:82544e0e2d0c1811482d37eef297020a040c32e0687c1f6fc23a75b75db8062c"}, + {file = "pyzmq-25.1.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:01171fc48542348cd1a360a4b6c3e7d8f46cdcf53a8d40f84db6707a6768acc1"}, + {file = "pyzmq-25.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bc69c96735ab501419c432110016329bf0dea8898ce16fab97c6d9106dc0b348"}, + {file = "pyzmq-25.1.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3e124e6b1dd3dfbeb695435dff0e383256655bb18082e094a8dd1f6293114642"}, + {file = "pyzmq-25.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7598d2ba821caa37a0f9d54c25164a4fa351ce019d64d0b44b45540950458840"}, + {file = "pyzmq-25.1.2-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:d1299d7e964c13607efd148ca1f07dcbf27c3ab9e125d1d0ae1d580a1682399d"}, + {file = "pyzmq-25.1.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:4e6f689880d5ad87918430957297c975203a082d9a036cc426648fcbedae769b"}, + {file = "pyzmq-25.1.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:cc69949484171cc961e6ecd4a8911b9ce7a0d1f738fcae717177c231bf77437b"}, + {file = "pyzmq-25.1.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9880078f683466b7f567b8624bfc16cad65077be046b6e8abb53bed4eeb82dd3"}, + {file = "pyzmq-25.1.2-cp311-cp311-win32.whl", hash = "sha256:4e5837af3e5aaa99a091302df5ee001149baff06ad22b722d34e30df5f0d9097"}, + {file = "pyzmq-25.1.2-cp311-cp311-win_amd64.whl", hash = "sha256:25c2dbb97d38b5ac9fd15586e048ec5eb1e38f3d47fe7d92167b0c77bb3584e9"}, + {file = "pyzmq-25.1.2-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:11e70516688190e9c2db14fcf93c04192b02d457b582a1f6190b154691b4c93a"}, + {file = "pyzmq-25.1.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:313c3794d650d1fccaaab2df942af9f2c01d6217c846177cfcbc693c7410839e"}, + {file = "pyzmq-25.1.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1b3cbba2f47062b85fe0ef9de5b987612140a9ba3a9c6d2543c6dec9f7c2ab27"}, + {file = "pyzmq-25.1.2-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fc31baa0c32a2ca660784d5af3b9487e13b61b3032cb01a115fce6588e1bed30"}, + {file = "pyzmq-25.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:02c9087b109070c5ab0b383079fa1b5f797f8d43e9a66c07a4b8b8bdecfd88ee"}, + {file = "pyzmq-25.1.2-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:f8429b17cbb746c3e043cb986328da023657e79d5ed258b711c06a70c2ea7537"}, + {file = "pyzmq-25.1.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:5074adeacede5f810b7ef39607ee59d94e948b4fd954495bdb072f8c54558181"}, + {file = "pyzmq-25.1.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:7ae8f354b895cbd85212da245f1a5ad8159e7840e37d78b476bb4f4c3f32a9fe"}, + {file = "pyzmq-25.1.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:b264bf2cc96b5bc43ce0e852be995e400376bd87ceb363822e2cb1964fcdc737"}, + {file = "pyzmq-25.1.2-cp312-cp312-win32.whl", hash = "sha256:02bbc1a87b76e04fd780b45e7f695471ae6de747769e540da909173d50ff8e2d"}, + {file = "pyzmq-25.1.2-cp312-cp312-win_amd64.whl", hash = "sha256:ced111c2e81506abd1dc142e6cd7b68dd53747b3b7ae5edbea4578c5eeff96b7"}, + {file = "pyzmq-25.1.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:7b6d09a8962a91151f0976008eb7b29b433a560fde056ec7a3db9ec8f1075438"}, + {file = "pyzmq-25.1.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:967668420f36878a3c9ecb5ab33c9d0ff8d054f9c0233d995a6d25b0e95e1b6b"}, + {file = "pyzmq-25.1.2-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5edac3f57c7ddaacdb4d40f6ef2f9e299471fc38d112f4bc6d60ab9365445fb0"}, + {file = "pyzmq-25.1.2-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:0dabfb10ef897f3b7e101cacba1437bd3a5032ee667b7ead32bbcdd1a8422fe7"}, + {file = "pyzmq-25.1.2-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:2c6441e0398c2baacfe5ba30c937d274cfc2dc5b55e82e3749e333aabffde561"}, + {file = "pyzmq-25.1.2-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:16b726c1f6c2e7625706549f9dbe9b06004dfbec30dbed4bf50cbdfc73e5b32a"}, + {file = "pyzmq-25.1.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:a86c2dd76ef71a773e70551a07318b8e52379f58dafa7ae1e0a4be78efd1ff16"}, + {file = "pyzmq-25.1.2-cp36-cp36m-win32.whl", hash = "sha256:359f7f74b5d3c65dae137f33eb2bcfa7ad9ebefd1cab85c935f063f1dbb245cc"}, + {file = "pyzmq-25.1.2-cp36-cp36m-win_amd64.whl", hash = "sha256:55875492f820d0eb3417b51d96fea549cde77893ae3790fd25491c5754ea2f68"}, + {file = "pyzmq-25.1.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b8c8a419dfb02e91b453615c69568442e897aaf77561ee0064d789705ff37a92"}, + {file = "pyzmq-25.1.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8807c87fa893527ae8a524c15fc505d9950d5e856f03dae5921b5e9aa3b8783b"}, + {file = "pyzmq-25.1.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5e319ed7d6b8f5fad9b76daa0a68497bc6f129858ad956331a5835785761e003"}, + {file = "pyzmq-25.1.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:3c53687dde4d9d473c587ae80cc328e5b102b517447456184b485587ebd18b62"}, + {file = "pyzmq-25.1.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:9add2e5b33d2cd765ad96d5eb734a5e795a0755f7fc49aa04f76d7ddda73fd70"}, + {file = "pyzmq-25.1.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:e690145a8c0c273c28d3b89d6fb32c45e0d9605b2293c10e650265bf5c11cfec"}, + {file = "pyzmq-25.1.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:00a06faa7165634f0cac1abb27e54d7a0b3b44eb9994530b8ec73cf52e15353b"}, + {file = "pyzmq-25.1.2-cp37-cp37m-win32.whl", hash = "sha256:0f97bc2f1f13cb16905a5f3e1fbdf100e712d841482b2237484360f8bc4cb3d7"}, + {file = "pyzmq-25.1.2-cp37-cp37m-win_amd64.whl", hash = "sha256:6cc0020b74b2e410287e5942e1e10886ff81ac77789eb20bec13f7ae681f0fdd"}, + {file = "pyzmq-25.1.2-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:bef02cfcbded83473bdd86dd8d3729cd82b2e569b75844fb4ea08fee3c26ae41"}, + {file = "pyzmq-25.1.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:e10a4b5a4b1192d74853cc71a5e9fd022594573926c2a3a4802020360aa719d8"}, + {file = "pyzmq-25.1.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:8c5f80e578427d4695adac6fdf4370c14a2feafdc8cb35549c219b90652536ae"}, + {file = "pyzmq-25.1.2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5dde6751e857910c1339890f3524de74007958557593b9e7e8c5f01cd919f8a7"}, + {file = "pyzmq-25.1.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ea1608dd169da230a0ad602d5b1ebd39807ac96cae1845c3ceed39af08a5c6df"}, + {file = "pyzmq-25.1.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0f513130c4c361201da9bc69df25a086487250e16b5571ead521b31ff6b02220"}, + {file = "pyzmq-25.1.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:019744b99da30330798bb37df33549d59d380c78e516e3bab9c9b84f87a9592f"}, + {file = "pyzmq-25.1.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2e2713ef44be5d52dd8b8e2023d706bf66cb22072e97fc71b168e01d25192755"}, + {file = "pyzmq-25.1.2-cp38-cp38-win32.whl", hash = "sha256:07cd61a20a535524906595e09344505a9bd46f1da7a07e504b315d41cd42eb07"}, + {file = "pyzmq-25.1.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb7e49a17fb8c77d3119d41a4523e432eb0c6932187c37deb6fbb00cc3028088"}, + {file = "pyzmq-25.1.2-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:94504ff66f278ab4b7e03e4cba7e7e400cb73bfa9d3d71f58d8972a8dc67e7a6"}, + {file = "pyzmq-25.1.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6dd0d50bbf9dca1d0bdea219ae6b40f713a3fb477c06ca3714f208fd69e16fd8"}, + {file = "pyzmq-25.1.2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:004ff469d21e86f0ef0369717351073e0e577428e514c47c8480770d5e24a565"}, + {file = "pyzmq-25.1.2-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c0b5ca88a8928147b7b1e2dfa09f3b6c256bc1135a1338536cbc9ea13d3b7add"}, + {file = "pyzmq-25.1.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c9a79f1d2495b167119d02be7448bfba57fad2a4207c4f68abc0bab4b92925b"}, + {file = "pyzmq-25.1.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:518efd91c3d8ac9f9b4f7dd0e2b7b8bf1a4fe82a308009016b07eaa48681af82"}, + {file = "pyzmq-25.1.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:1ec23bd7b3a893ae676d0e54ad47d18064e6c5ae1fadc2f195143fb27373f7f6"}, + {file = "pyzmq-25.1.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:db36c27baed588a5a8346b971477b718fdc66cf5b80cbfbd914b4d6d355e44e2"}, + {file = "pyzmq-25.1.2-cp39-cp39-win32.whl", hash = "sha256:39b1067f13aba39d794a24761e385e2eddc26295826530a8c7b6c6c341584289"}, + {file = "pyzmq-25.1.2-cp39-cp39-win_amd64.whl", hash = "sha256:8e9f3fabc445d0ce320ea2c59a75fe3ea591fdbdeebec5db6de530dd4b09412e"}, + {file = "pyzmq-25.1.2-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a8c1d566344aee826b74e472e16edae0a02e2a044f14f7c24e123002dcff1c05"}, + {file = "pyzmq-25.1.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:759cfd391a0996345ba94b6a5110fca9c557ad4166d86a6e81ea526c376a01e8"}, + {file = "pyzmq-25.1.2-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7c61e346ac34b74028ede1c6b4bcecf649d69b707b3ff9dc0fab453821b04d1e"}, + {file = "pyzmq-25.1.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4cb8fc1f8d69b411b8ec0b5f1ffbcaf14c1db95b6bccea21d83610987435f1a4"}, + {file = "pyzmq-25.1.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:3c00c9b7d1ca8165c610437ca0c92e7b5607b2f9076f4eb4b095c85d6e680a1d"}, + {file = "pyzmq-25.1.2-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:df0c7a16ebb94452d2909b9a7b3337940e9a87a824c4fc1c7c36bb4404cb0cde"}, + {file = "pyzmq-25.1.2-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:45999e7f7ed5c390f2e87ece7f6c56bf979fb213550229e711e45ecc7d42ccb8"}, + {file = "pyzmq-25.1.2-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ac170e9e048b40c605358667aca3d94e98f604a18c44bdb4c102e67070f3ac9b"}, + {file = "pyzmq-25.1.2-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1b604734bec94f05f81b360a272fc824334267426ae9905ff32dc2be433ab96"}, + {file = "pyzmq-25.1.2-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:a793ac733e3d895d96f865f1806f160696422554e46d30105807fdc9841b9f7d"}, + {file = "pyzmq-25.1.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:0806175f2ae5ad4b835ecd87f5f85583316b69f17e97786f7443baaf54b9bb98"}, + {file = "pyzmq-25.1.2-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:ef12e259e7bc317c7597d4f6ef59b97b913e162d83b421dd0db3d6410f17a244"}, + {file = "pyzmq-25.1.2-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ea253b368eb41116011add00f8d5726762320b1bda892f744c91997b65754d73"}, + {file = "pyzmq-25.1.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1b9b1f2ad6498445a941d9a4fee096d387fee436e45cc660e72e768d3d8ee611"}, + {file = "pyzmq-25.1.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:8b14c75979ce932c53b79976a395cb2a8cd3aaf14aef75e8c2cb55a330b9b49d"}, + {file = "pyzmq-25.1.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:889370d5174a741a62566c003ee8ddba4b04c3f09a97b8000092b7ca83ec9c49"}, + {file = "pyzmq-25.1.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9a18fff090441a40ffda8a7f4f18f03dc56ae73f148f1832e109f9bffa85df15"}, + {file = "pyzmq-25.1.2-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:99a6b36f95c98839ad98f8c553d8507644c880cf1e0a57fe5e3a3f3969040882"}, + {file = "pyzmq-25.1.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4345c9a27f4310afbb9c01750e9461ff33d6fb74cd2456b107525bbeebcb5be3"}, + {file = "pyzmq-25.1.2-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:3516e0b6224cf6e43e341d56da15fd33bdc37fa0c06af4f029f7d7dfceceabbc"}, + {file = "pyzmq-25.1.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:146b9b1f29ead41255387fb07be56dc29639262c0f7344f570eecdcd8d683314"}, + {file = "pyzmq-25.1.2.tar.gz", hash = "sha256:93f1aa311e8bb912e34f004cf186407a4e90eec4f0ecc0efd26056bf7eda0226"}, +] + +[package.dependencies] +cffi = {version = "*", markers = "implementation_name == \"pypy\""} + +[[package]] +name = "qtconsole" +version = "5.5.1" +description = "Jupyter Qt console" +category = "main" +optional = false +python-versions = ">= 3.8" +files = [ + {file = "qtconsole-5.5.1-py3-none-any.whl", hash = "sha256:8c75fa3e9b4ed884880ff7cea90a1b67451219279ec33deaee1d59e3df1a5d2b"}, + {file = "qtconsole-5.5.1.tar.gz", hash = "sha256:a0e806c6951db9490628e4df80caec9669b65149c7ba40f9bf033c025a5b56bc"}, +] + +[package.dependencies] +ipykernel = ">=4.1" +jupyter-client = ">=4.1" +jupyter-core = "*" +packaging = "*" +pygments = "*" +pyzmq = ">=17.1" +qtpy = ">=2.4.0" +traitlets = "<5.2.1 || >5.2.1,<5.2.2 || >5.2.2" + +[package.extras] +doc = ["Sphinx (>=1.3)"] +test = ["flaky", "pytest", "pytest-qt"] + +[[package]] +name = "qtpy" +version = "2.4.1" +description = "Provides an abstraction layer on top of the various Qt bindings (PyQt5/6 and PySide2/6)." +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "QtPy-2.4.1-py3-none-any.whl", hash = "sha256:1c1d8c4fa2c884ae742b069151b0abe15b3f70491f3972698c683b8e38de839b"}, + {file = "QtPy-2.4.1.tar.gz", hash = "sha256:a5a15ffd519550a1361bdc56ffc07fda56a6af7292f17c7b395d4083af632987"}, +] + +[package.dependencies] +packaging = "*" + +[package.extras] +test = ["pytest (>=6,!=7.0.0,!=7.0.1)", "pytest-cov (>=3.0.0)", "pytest-qt"] + +[[package]] +name = "qudida" +version = "0.0.4" +description = "QUick and DIrty Domain Adaptation" +category = "main" +optional = false +python-versions = ">=3.5.0" +files = [ + {file = "qudida-0.0.4-py3-none-any.whl", hash = "sha256:4519714c40cd0f2e6c51e1735edae8f8b19f4efe1f33be13e9d644ca5f736dd6"}, + {file = "qudida-0.0.4.tar.gz", hash = "sha256:db198e2887ab0c9aa0023e565afbff41dfb76b361f85fd5e13f780d75ba18cc8"}, +] + +[package.dependencies] +numpy = ">=0.18.0" +opencv-python-headless = ">=4.0.1" +scikit-learn = ">=0.19.1" +typing-extensions = "*" + +[[package]] +name = "referencing" +version = "0.32.0" +description = "JSON Referencing + Python" +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "referencing-0.32.0-py3-none-any.whl", hash = "sha256:bdcd3efb936f82ff86f993093f6da7435c7de69a3b3a5a06678a6050184bee99"}, + {file = "referencing-0.32.0.tar.gz", hash = "sha256:689e64fe121843dcfd57b71933318ef1f91188ffb45367332700a86ac8fd6161"}, +] + +[package.dependencies] +attrs = ">=22.2.0" +rpds-py = ">=0.7.0" + +[[package]] +name = "requests" +version = "2.31.0" +description = "Python HTTP for Humans." +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, + {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, +] + +[package.dependencies] +certifi = ">=2017.4.17" +charset-normalizer = ">=2,<4" +idna = ">=2.5,<4" +urllib3 = ">=1.21.1,<3" + +[package.extras] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] + +[[package]] +name = "rfc3339-validator" +version = "0.1.4" +description = "A pure python RFC3339 validator" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "rfc3339_validator-0.1.4-py2.py3-none-any.whl", hash = "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa"}, + {file = "rfc3339_validator-0.1.4.tar.gz", hash = "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b"}, +] + +[package.dependencies] +six = "*" + +[[package]] +name = "rfc3986-validator" +version = "0.1.1" +description = "Pure python rfc3986 validator" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "rfc3986_validator-0.1.1-py2.py3-none-any.whl", hash = "sha256:2f235c432ef459970b4306369336b9d5dbdda31b510ca1e327636e01f528bfa9"}, + {file = "rfc3986_validator-0.1.1.tar.gz", hash = "sha256:3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055"}, +] + +[[package]] +name = "rpds-py" +version = "0.15.2" +description = "Python bindings to Rust's persistent data structures (rpds)" +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "rpds_py-0.15.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:337a8653fb11d2fbe7157c961cc78cb3c161d98cf44410ace9a3dc2db4fad882"}, + {file = "rpds_py-0.15.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:813a65f95bfcb7c8f2a70dd6add9b51e9accc3bdb3e03d0ff7a9e6a2d3e174bf"}, + {file = "rpds_py-0.15.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:082e0e55d73690ffb4da4352d1b5bbe1b5c6034eb9dc8c91aa2a3ee15f70d3e2"}, + {file = "rpds_py-0.15.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5595c80dd03d7e6c6afb73f3594bf3379a7d79fa57164b591d012d4b71d6ac4c"}, + {file = "rpds_py-0.15.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fb10bb720348fe1647a94eb605accb9ef6a9b1875d8845f9e763d9d71a706387"}, + {file = "rpds_py-0.15.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:53304cc14b1d94487d70086e1cb0cb4c29ec6da994d58ae84a4d7e78c6a6d04d"}, + {file = "rpds_py-0.15.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d64a657de7aae8db2da60dc0c9e4638a0c3893b4d60101fd564a3362b2bfeb34"}, + {file = "rpds_py-0.15.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ee40206d1d6e95eaa2b7b919195e3689a5cf6ded730632de7f187f35a1b6052c"}, + {file = "rpds_py-0.15.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:1607cda6129f815493a3c184492acb5ae4aa6ed61d3a1b3663aa9824ed26f7ac"}, + {file = "rpds_py-0.15.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:f3e6e2e502c4043c52a99316d89dc49f416acda5b0c6886e0dd8ea7bb35859e8"}, + {file = "rpds_py-0.15.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:044f6f46d62444800402851afa3c3ae50141f12013060c1a3a0677e013310d6d"}, + {file = "rpds_py-0.15.2-cp310-none-win32.whl", hash = "sha256:c827a931c6b57f50f1bb5de400dcfb00bad8117e3753e80b96adb72d9d811514"}, + {file = "rpds_py-0.15.2-cp310-none-win_amd64.whl", hash = "sha256:3bbc89ce2a219662ea142f0abcf8d43f04a41d5b1880be17a794c39f0d609cb0"}, + {file = "rpds_py-0.15.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:1fd0f0b1ccd7d537b858a56355a250108df692102e08aa2036e1a094fd78b2dc"}, + {file = "rpds_py-0.15.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b414ef79f1f06fb90b5165db8aef77512c1a5e3ed1b4807da8476b7e2c853283"}, + {file = "rpds_py-0.15.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c31272c674f725dfe0f343d73b0abe8c878c646967ec1c6106122faae1efc15b"}, + {file = "rpds_py-0.15.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a6945c2d61c42bb7e818677f43638675b8c1c43e858b67a96df3eb2426a86c9d"}, + {file = "rpds_py-0.15.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:02744236ac1895d7be837878e707a5c35fb8edc5137602f253b63623d7ad5c8c"}, + {file = "rpds_py-0.15.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2181e86d4e1cdf49a7320cb72a36c45efcb7670d0a88f09fd2d3a7967c0540fd"}, + {file = "rpds_py-0.15.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a8ff8e809da81363bffca2b965cb6e4bf6056b495fc3f078467d1f8266fe27f"}, + {file = "rpds_py-0.15.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:97532802f14d383f37d603a56e226909f825a83ff298dc1b6697de00d2243999"}, + {file = "rpds_py-0.15.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:13716e53627ad97babf72ac9e01cf9a7d4af2f75dd5ed7b323a7a9520e948282"}, + {file = "rpds_py-0.15.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:2f1f295a5c28cfa74a7d48c95acc1c8a7acd49d7d9072040d4b694fe11cd7166"}, + {file = "rpds_py-0.15.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:8ec464f20fe803ae00419bd1610934e3bda963aeba1e6181dfc9033dc7e8940c"}, + {file = "rpds_py-0.15.2-cp311-none-win32.whl", hash = "sha256:b61d5096e75fd71018b25da50b82dd70ec39b5e15bb2134daf7eb7bbbc103644"}, + {file = "rpds_py-0.15.2-cp311-none-win_amd64.whl", hash = "sha256:9d41ebb471a6f064c0d1c873c4f7dded733d16ca5db7d551fb04ff3805d87802"}, + {file = "rpds_py-0.15.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:13ff62d3561a23c17341b4afc78e8fcfd799ab67c0b1ca32091d71383a98ba4b"}, + {file = "rpds_py-0.15.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b70b45a40ad0798b69748b34d508259ef2bdc84fb2aad4048bc7c9cafb68ddb3"}, + {file = "rpds_py-0.15.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b4ecbba7efd82bd2a4bb88aab7f984eb5470991c1347bdd1f35fb34ea28dba6e"}, + {file = "rpds_py-0.15.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9d38494a8d21c246c535b41ecdb2d562c4b933cf3d68de03e8bc43a0d41be652"}, + {file = "rpds_py-0.15.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:13152dfe7d7c27c40df8b99ac6aab12b978b546716e99f67e8a67a1d441acbc3"}, + {file = "rpds_py-0.15.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:164fcee32f15d04d61568c9cb0d919e37ff3195919cd604039ff3053ada0461b"}, + {file = "rpds_py-0.15.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a5122b17a4faf5d7a6d91fa67b479736c0cacc7afe791ddebb7163a8550b799"}, + {file = "rpds_py-0.15.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:46b4f3d47d1033db569173be62365fbf7808c2bd3fb742314d251f130d90d44c"}, + {file = "rpds_py-0.15.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c61e42b4ceb9759727045765e87d51c1bb9f89987aca1fcc8a040232138cad1c"}, + {file = "rpds_py-0.15.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:d2aa3ca9552f83b0b4fa6ca8c6ce08da6580f37e3e0ab7afac73a1cfdc230c0e"}, + {file = "rpds_py-0.15.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ec19e823b4ccd87bd69e990879acbce9e961fc7aebe150156b8f4418d4b27b7f"}, + {file = "rpds_py-0.15.2-cp312-none-win32.whl", hash = "sha256:afeabb382c1256a7477b739820bce7fe782bb807d82927102cee73e79b41b38b"}, + {file = "rpds_py-0.15.2-cp312-none-win_amd64.whl", hash = "sha256:422b0901878a31ef167435c5ad46560362891816a76cc0d150683f3868a6f0d1"}, + {file = "rpds_py-0.15.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:baf744e5f9d5ee6531deea443be78b36ed1cd36c65a0b95ea4e8d69fa0102268"}, + {file = "rpds_py-0.15.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7e072f5da38d6428ba1fc1115d3cc0dae895df671cb04c70c019985e8c7606be"}, + {file = "rpds_py-0.15.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f138f550b83554f5b344d6be35d3ed59348510edc3cb96f75309db6e9bfe8210"}, + {file = "rpds_py-0.15.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b2a4cd924d0e2f4b1a68034abe4cadc73d69ad5f4cf02db6481c0d4d749f548f"}, + {file = "rpds_py-0.15.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5eb05b654a41e0f81ab27a7c3e88b6590425eb3e934e1d533ecec5dc88a6ffff"}, + {file = "rpds_py-0.15.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2ee066a64f0d2ba45391cac15b3a70dcb549e968a117bd0500634754cfe0e5fc"}, + {file = "rpds_py-0.15.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c51a899792ee2c696072791e56b2020caff58b275abecbc9ae0cb71af0645c95"}, + {file = "rpds_py-0.15.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ac2ac84a4950d627d84b61f082eba61314373cfab4b3c264b62efab02ababe83"}, + {file = "rpds_py-0.15.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:62b292fff4739c6be89e6a0240c02bda5a9066a339d90ab191cf66e9fdbdc193"}, + {file = "rpds_py-0.15.2-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:98ee201a52a7f65608e5494518932e1473fd43535f12cade0a1b4ab32737fe28"}, + {file = "rpds_py-0.15.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:3d40fb3ca22e3d40f494d577441b263026a3bd8c97ae6ce89b2d3c4b39ac9581"}, + {file = "rpds_py-0.15.2-cp38-none-win32.whl", hash = "sha256:30479a9f1fce47df56b07460b520f49fa2115ec2926d3b1303c85c81f8401ed1"}, + {file = "rpds_py-0.15.2-cp38-none-win_amd64.whl", hash = "sha256:2df3d07a16a3bef0917b28cd564778fbb31f3ffa5b5e33584470e2d1b0f248f0"}, + {file = "rpds_py-0.15.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:56b51ba29a18e5f5810224bcf00747ad931c0716e3c09a76b4a1edd3d4aba71f"}, + {file = "rpds_py-0.15.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3c11bc5814554b018f6c5d6ae0969e43766f81e995000b53a5d8c8057055e886"}, + {file = "rpds_py-0.15.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2faa97212b0dc465afeedf49045cdd077f97be1188285e646a9f689cb5dfff9e"}, + {file = "rpds_py-0.15.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:86c01299942b0f4b5b5f28c8701689181ad2eab852e65417172dbdd6c5b3ccc8"}, + {file = "rpds_py-0.15.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dd7d3608589072f63078b4063a6c536af832e76b0b3885f1bfe9e892abe6c207"}, + {file = "rpds_py-0.15.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:938518a11780b39998179d07f31a4a468888123f9b00463842cd40f98191f4d3"}, + {file = "rpds_py-0.15.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2dccc623725d0b298f557d869a68496a2fd2a9e9c41107f234fa5f7a37d278ac"}, + {file = "rpds_py-0.15.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d46ee458452727a147d7897bb33886981ae1235775e05decae5d5d07f537695a"}, + {file = "rpds_py-0.15.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:d9d7ebcd11ea76ba0feaae98485cd8e31467c3d7985210fab46983278214736b"}, + {file = "rpds_py-0.15.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:8a5f574b92b3ee7d254e56d56e37ec0e1416acb1ae357c4956d76a1788dc58fb"}, + {file = "rpds_py-0.15.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:3db0c998c92b909d7c90b66c965590d4f3cd86157176a6cf14aa1f867b77b889"}, + {file = "rpds_py-0.15.2-cp39-none-win32.whl", hash = "sha256:bbc7421cbd28b4316d1d017db338039a7943f945c6f2bb15e1439b14b5682d28"}, + {file = "rpds_py-0.15.2-cp39-none-win_amd64.whl", hash = "sha256:1c24e30d720c0009b6fb2e1905b025da56103c70a8b31b99138e4ed1c2a6c5b0"}, + {file = "rpds_py-0.15.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:1e6fcd0a0f62f2997107f758bb372397b8d5fd5f39cc6dcb86f7cb98a2172d6c"}, + {file = "rpds_py-0.15.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d800a8e2ac62db1b9ea5d6d1724f1a93c53907ca061de4d05ed94e8dfa79050c"}, + {file = "rpds_py-0.15.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9e09d017e3f4d9bd7d17a30d3f59e4d6d9ba2d2ced280eec2425e84112cf623f"}, + {file = "rpds_py-0.15.2-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b88c3ab98556bc351b36d6208a6089de8c8db14a7f6e1f57f82a334bd2c18f0b"}, + {file = "rpds_py-0.15.2-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8f333bfe782a2d05a67cfaa0cc9cd68b36b39ee6acfe099f980541ed973a7093"}, + {file = "rpds_py-0.15.2-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b629db53fe17e6ce478a969d30bd1d0e8b53238c46e3a9c9db39e8b65a9ef973"}, + {file = "rpds_py-0.15.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:485fbdd23becb822804ed05622907ee5c8e8a5f43f6f43894a45f463b2217045"}, + {file = "rpds_py-0.15.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:893e38d0f4319dfa70c0f36381a37cc418985c87b11d9784365b1fff4fa6973b"}, + {file = "rpds_py-0.15.2-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:8ffdeb7dbd0160d4e391e1f857477e4762d00aa2199c294eb95dfb9451aa1d9f"}, + {file = "rpds_py-0.15.2-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:fc33267d58dfbb2361baed52668c5d8c15d24bc0372cecbb79fed77339b55e0d"}, + {file = "rpds_py-0.15.2-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:2e7e5633577b3bd56bf3af2ef6ae3778bbafb83743989d57f0e7edbf6c0980e4"}, + {file = "rpds_py-0.15.2-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:8b9650f92251fdef843e74fc252cdfd6e3c700157ad686eeb0c6d7fdb2d11652"}, + {file = "rpds_py-0.15.2-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:07a2e1d78d382f7181789713cdf0c16edbad4fe14fe1d115526cb6f0eef0daa3"}, + {file = "rpds_py-0.15.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:03f9c5875515820633bd7709a25c3e60c1ea9ad1c5d4030ce8a8c203309c36fd"}, + {file = "rpds_py-0.15.2-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:580182fa5b269c2981e9ce9764367cb4edc81982ce289208d4607c203f44ffde"}, + {file = "rpds_py-0.15.2-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa1e626c524d2c7972c0f3a8a575d654a3a9c008370dc2a97e46abd0eaa749b9"}, + {file = "rpds_py-0.15.2-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ae9d83a81b09ce3a817e2cbb23aabc07f86a3abc664c613cd283ce7a03541e95"}, + {file = "rpds_py-0.15.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9235be95662559141934fced8197de6fee8c58870f36756b0584424b6d708393"}, + {file = "rpds_py-0.15.2-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a72e00826a2b032dda3eb25aa3e3579c6d6773d22d8446089a57a123481cc46c"}, + {file = "rpds_py-0.15.2-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:ab095edf1d840a6a6a4307e1a5b907a299a94e7b90e75436ee770b8c35d22a25"}, + {file = "rpds_py-0.15.2-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:3b79c63d29101cbaa53a517683557bb550462394fb91044cc5998dd2acff7340"}, + {file = "rpds_py-0.15.2-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:911e600e798374c0d86235e7ef19109cf865d1336942d398ff313375a25a93ba"}, + {file = "rpds_py-0.15.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3cd61e759c4075510052d1eca5cddbd297fe1164efec14ef1fce3f09b974dfe4"}, + {file = "rpds_py-0.15.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:9d2ae79f31da5143e020a8d4fc74e1f0cbcb8011bdf97453c140aa616db51406"}, + {file = "rpds_py-0.15.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e99d6510c8557510c220b865d966b105464740dcbebf9b79ecd4fbab30a13d9"}, + {file = "rpds_py-0.15.2-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6c43e1b89099279cc03eb1c725c5de12af6edcd2f78e2f8a022569efa639ada3"}, + {file = "rpds_py-0.15.2-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ac7187bee72384b9cfedf09a29a3b2b6e8815cc64c095cdc8b5e6aec81e9fd5f"}, + {file = "rpds_py-0.15.2-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3423007fc0661827e06f8a185a3792c73dda41f30f3421562f210cf0c9e49569"}, + {file = "rpds_py-0.15.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2974e6dff38afafd5ccf8f41cb8fc94600b3f4fd9b0a98f6ece6e2219e3158d5"}, + {file = "rpds_py-0.15.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:93c18a1696a8e0388ed84b024fe1a188a26ba999b61d1d9a371318cb89885a8c"}, + {file = "rpds_py-0.15.2-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:c7cd0841a586b7105513a7c8c3d5c276f3adc762a072d81ef7fae80632afad1e"}, + {file = "rpds_py-0.15.2-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:709dc11af2f74ba89c68b1592368c6edcbccdb0a06ba77eb28c8fe08bb6997da"}, + {file = "rpds_py-0.15.2-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:fc066395e6332da1e7525d605b4c96055669f8336600bef8ac569d5226a7c76f"}, + {file = "rpds_py-0.15.2.tar.gz", hash = "sha256:373b76eeb79e8c14f6d82cb1d4d5293f9e4059baec6c1b16dca7ad13b6131b39"}, +] + +[[package]] +name = "scikit-image" +version = "0.22.0" +description = "Image processing in Python" +category = "main" +optional = false +python-versions = ">=3.9" +files = [ + {file = "scikit_image-0.22.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:74ec5c1d4693506842cc7c9487c89d8fc32aed064e9363def7af08b8f8cbb31d"}, + {file = "scikit_image-0.22.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:a05ae4fe03d802587ed8974e900b943275548cde6a6807b785039d63e9a7a5ff"}, + {file = "scikit_image-0.22.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6a92dca3d95b1301442af055e196a54b5a5128c6768b79fc0a4098f1d662dee6"}, + {file = "scikit_image-0.22.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3663d063d8bf2fb9bdfb0ca967b9ee3b6593139c860c7abc2d2351a8a8863938"}, + {file = "scikit_image-0.22.0-cp310-cp310-win_amd64.whl", hash = "sha256:ebdbdc901bae14dab637f8d5c99f6d5cc7aaf4a3b6f4003194e003e9f688a6fc"}, + {file = "scikit_image-0.22.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:95d6da2d8a44a36ae04437c76d32deb4e3c993ffc846b394b9949fd8ded73cb2"}, + {file = "scikit_image-0.22.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:2c6ef454a85f569659b813ac2a93948022b0298516b757c9c6c904132be327e2"}, + {file = "scikit_image-0.22.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e87872f067444ee90a00dd49ca897208308645382e8a24bd3e76f301af2352cd"}, + {file = "scikit_image-0.22.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c5c378db54e61b491b9edeefff87e49fcf7fdf729bb93c777d7a5f15d36f743e"}, + {file = "scikit_image-0.22.0-cp311-cp311-win_amd64.whl", hash = "sha256:2bcb74adb0634258a67f66c2bb29978c9a3e222463e003b67ba12056c003971b"}, + {file = "scikit_image-0.22.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:003ca2274ac0fac252280e7179ff986ff783407001459ddea443fe7916e38cff"}, + {file = "scikit_image-0.22.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:cf3c0c15b60ae3e557a0c7575fbd352f0c3ce0afca562febfe3ab80efbeec0e9"}, + {file = "scikit_image-0.22.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f5b23908dd4d120e6aecb1ed0277563e8cbc8d6c0565bdc4c4c6475d53608452"}, + {file = "scikit_image-0.22.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:be79d7493f320a964f8fcf603121595ba82f84720de999db0fcca002266a549a"}, + {file = "scikit_image-0.22.0-cp312-cp312-win_amd64.whl", hash = "sha256:722b970aa5da725dca55252c373b18bbea7858c1cdb406e19f9b01a4a73b30b2"}, + {file = "scikit_image-0.22.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:22318b35044cfeeb63ee60c56fc62450e5fe516228138f1d06c7a26378248a86"}, + {file = "scikit_image-0.22.0-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:9e801c44a814afdadeabf4dffdffc23733e393767958b82319706f5fa3e1eaa9"}, + {file = "scikit_image-0.22.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c472a1fb3665ec5c00423684590631d95f9afcbc97f01407d348b821880b2cb3"}, + {file = "scikit_image-0.22.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b7a6c89e8d6252332121b58f50e1625c35f7d6a85489c0b6b7ee4f5155d547a"}, + {file = "scikit_image-0.22.0-cp39-cp39-win_amd64.whl", hash = "sha256:5071b8f6341bfb0737ab05c8ab4ac0261f9e25dbcc7b5d31e5ed230fd24a7929"}, + {file = "scikit_image-0.22.0.tar.gz", hash = "sha256:018d734df1d2da2719087d15f679d19285fce97cd37695103deadfaef2873236"}, +] + +[package.dependencies] +imageio = ">=2.27" +lazy_loader = ">=0.3" +networkx = ">=2.8" +numpy = ">=1.22" +packaging = ">=21" +pillow = ">=9.0.1" +scipy = ">=1.8" +tifffile = ">=2022.8.12" + +[package.extras] +build = ["Cython (>=0.29.32)", "build", "meson-python (>=0.14)", "ninja", "numpy (>=1.22)", "packaging (>=21)", "pythran", "setuptools (>=67)", "spin (==0.6)", "wheel"] +data = ["pooch (>=1.6.0)"] +developer = ["pre-commit", "tomli"] +docs = ["PyWavelets (>=1.1.1)", "dask[array] (>=2022.9.2)", "ipykernel", "ipywidgets", "kaleido", "matplotlib (>=3.5)", "myst-parser", "numpydoc (>=1.6)", "pandas (>=1.5)", "plotly (>=5.10)", "pooch (>=1.6)", "pydata-sphinx-theme (>=0.14.1)", "pytest-runner", "scikit-learn (>=1.1)", "seaborn (>=0.11)", "sphinx (>=7.2)", "sphinx-copybutton", "sphinx-gallery (>=0.14)", "sphinx_design (>=0.5)", "tifffile (>=2022.8.12)"] +optional = ["PyWavelets (>=1.1.1)", "SimpleITK", "astropy (>=5.0)", "cloudpickle (>=0.2.1)", "dask[array] (>=2021.1.0)", "matplotlib (>=3.5)", "pooch (>=1.6.0)", "pyamg", "scikit-learn (>=1.1)"] +test = ["asv", "matplotlib (>=3.5)", "numpydoc (>=1.5)", "pooch (>=1.6.0)", "pytest (>=7.0)", "pytest-cov (>=2.11.0)", "pytest-faulthandler", "pytest-localserver"] + +[[package]] +name = "scikit-learn" +version = "1.3.2" +description = "A set of python modules for machine learning and data mining" +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "scikit-learn-1.3.2.tar.gz", hash = "sha256:a2f54c76accc15a34bfb9066e6c7a56c1e7235dda5762b990792330b52ccfb05"}, + {file = "scikit_learn-1.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e326c0eb5cf4d6ba40f93776a20e9a7a69524c4db0757e7ce24ba222471ee8a1"}, + {file = "scikit_learn-1.3.2-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:535805c2a01ccb40ca4ab7d081d771aea67e535153e35a1fd99418fcedd1648a"}, + {file = "scikit_learn-1.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1215e5e58e9880b554b01187b8c9390bf4dc4692eedeaf542d3273f4785e342c"}, + {file = "scikit_learn-1.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ee107923a623b9f517754ea2f69ea3b62fc898a3641766cb7deb2f2ce450161"}, + {file = "scikit_learn-1.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:35a22e8015048c628ad099da9df5ab3004cdbf81edc75b396fd0cff8699ac58c"}, + {file = "scikit_learn-1.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6fb6bc98f234fda43163ddbe36df8bcde1d13ee176c6dc9b92bb7d3fc842eb66"}, + {file = "scikit_learn-1.3.2-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:18424efee518a1cde7b0b53a422cde2f6625197de6af36da0b57ec502f126157"}, + {file = "scikit_learn-1.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3271552a5eb16f208a6f7f617b8cc6d1f137b52c8a1ef8edf547db0259b2c9fb"}, + {file = "scikit_learn-1.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc4144a5004a676d5022b798d9e573b05139e77f271253a4703eed295bde0433"}, + {file = "scikit_learn-1.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:67f37d708f042a9b8d59551cf94d30431e01374e00dc2645fa186059c6c5d78b"}, + {file = "scikit_learn-1.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:8db94cd8a2e038b37a80a04df8783e09caac77cbe052146432e67800e430c028"}, + {file = "scikit_learn-1.3.2-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:61a6efd384258789aa89415a410dcdb39a50e19d3d8410bd29be365bcdd512d5"}, + {file = "scikit_learn-1.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb06f8dce3f5ddc5dee1715a9b9f19f20d295bed8e3cd4fa51e1d050347de525"}, + {file = "scikit_learn-1.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5b2de18d86f630d68fe1f87af690d451388bb186480afc719e5f770590c2ef6c"}, + {file = "scikit_learn-1.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:0402638c9a7c219ee52c94cbebc8fcb5eb9fe9c773717965c1f4185588ad3107"}, + {file = "scikit_learn-1.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a19f90f95ba93c1a7f7924906d0576a84da7f3b2282ac3bfb7a08a32801add93"}, + {file = "scikit_learn-1.3.2-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:b8692e395a03a60cd927125eef3a8e3424d86dde9b2370d544f0ea35f78a8073"}, + {file = "scikit_learn-1.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:15e1e94cc23d04d39da797ee34236ce2375ddea158b10bee3c343647d615581d"}, + {file = "scikit_learn-1.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:785a2213086b7b1abf037aeadbbd6d67159feb3e30263434139c98425e3dcfcf"}, + {file = "scikit_learn-1.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:64381066f8aa63c2710e6b56edc9f0894cc7bf59bd71b8ce5613a4559b6145e0"}, + {file = "scikit_learn-1.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6c43290337f7a4b969d207e620658372ba3c1ffb611f8bc2b6f031dc5c6d1d03"}, + {file = "scikit_learn-1.3.2-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:dc9002fc200bed597d5d34e90c752b74df516d592db162f756cc52836b38fe0e"}, + {file = "scikit_learn-1.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d08ada33e955c54355d909b9c06a4789a729977f165b8bae6f225ff0a60ec4a"}, + {file = "scikit_learn-1.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:763f0ae4b79b0ff9cca0bf3716bcc9915bdacff3cebea15ec79652d1cc4fa5c9"}, + {file = "scikit_learn-1.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:ed932ea780517b00dae7431e031faae6b49b20eb6950918eb83bd043237950e0"}, +] + +[package.dependencies] +joblib = ">=1.1.1" +numpy = ">=1.17.3,<2.0" +scipy = ">=1.5.0" +threadpoolctl = ">=2.0.0" + +[package.extras] +benchmark = ["matplotlib (>=3.1.3)", "memory-profiler (>=0.57.0)", "pandas (>=1.0.5)"] +docs = ["Pillow (>=7.1.2)", "matplotlib (>=3.1.3)", "memory-profiler (>=0.57.0)", "numpydoc (>=1.2.0)", "pandas (>=1.0.5)", "plotly (>=5.14.0)", "pooch (>=1.6.0)", "scikit-image (>=0.16.2)", "seaborn (>=0.9.0)", "sphinx (>=6.0.0)", "sphinx-copybutton (>=0.5.2)", "sphinx-gallery (>=0.10.1)", "sphinx-prompt (>=1.3.0)", "sphinxext-opengraph (>=0.4.2)"] +examples = ["matplotlib (>=3.1.3)", "pandas (>=1.0.5)", "plotly (>=5.14.0)", "pooch (>=1.6.0)", "scikit-image (>=0.16.2)", "seaborn (>=0.9.0)"] +tests = ["black (>=23.3.0)", "matplotlib (>=3.1.3)", "mypy (>=1.3)", "numpydoc (>=1.2.0)", "pandas (>=1.0.5)", "pooch (>=1.6.0)", "pyamg (>=4.0.0)", "pytest (>=7.1.2)", "pytest-cov (>=2.9.0)", "ruff (>=0.0.272)", "scikit-image (>=0.16.2)"] + +[[package]] +name = "scipy" +version = "1.11.4" +description = "Fundamental algorithms for scientific computing in Python" +category = "main" +optional = false +python-versions = ">=3.9" +files = [ + {file = "scipy-1.11.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bc9a714581f561af0848e6b69947fda0614915f072dfd14142ed1bfe1b806710"}, + {file = "scipy-1.11.4-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:cf00bd2b1b0211888d4dc75656c0412213a8b25e80d73898083f402b50f47e41"}, + {file = "scipy-1.11.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9999c008ccf00e8fbcce1236f85ade5c569d13144f77a1946bef8863e8f6eb4"}, + {file = "scipy-1.11.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:933baf588daa8dc9a92c20a0be32f56d43faf3d1a60ab11b3f08c356430f6e56"}, + {file = "scipy-1.11.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8fce70f39076a5aa62e92e69a7f62349f9574d8405c0a5de6ed3ef72de07f446"}, + {file = "scipy-1.11.4-cp310-cp310-win_amd64.whl", hash = "sha256:6550466fbeec7453d7465e74d4f4b19f905642c89a7525571ee91dd7adabb5a3"}, + {file = "scipy-1.11.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f313b39a7e94f296025e3cffc2c567618174c0b1dde173960cf23808f9fae4be"}, + {file = "scipy-1.11.4-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:1b7c3dca977f30a739e0409fb001056484661cb2541a01aba0bb0029f7b68db8"}, + {file = "scipy-1.11.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:00150c5eae7b610c32589dda259eacc7c4f1665aedf25d921907f4d08a951b1c"}, + {file = "scipy-1.11.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:530f9ad26440e85766509dbf78edcfe13ffd0ab7fec2560ee5c36ff74d6269ff"}, + {file = "scipy-1.11.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5e347b14fe01003d3b78e196e84bd3f48ffe4c8a7b8a1afbcb8f5505cb710993"}, + {file = "scipy-1.11.4-cp311-cp311-win_amd64.whl", hash = "sha256:acf8ed278cc03f5aff035e69cb511741e0418681d25fbbb86ca65429c4f4d9cd"}, + {file = "scipy-1.11.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:028eccd22e654b3ea01ee63705681ee79933652b2d8f873e7949898dda6d11b6"}, + {file = "scipy-1.11.4-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:2c6ff6ef9cc27f9b3db93a6f8b38f97387e6e0591600369a297a50a8e96e835d"}, + {file = "scipy-1.11.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b030c6674b9230d37c5c60ab456e2cf12f6784596d15ce8da9365e70896effc4"}, + {file = "scipy-1.11.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad669df80528aeca5f557712102538f4f37e503f0c5b9541655016dd0932ca79"}, + {file = "scipy-1.11.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:ce7fff2e23ab2cc81ff452a9444c215c28e6305f396b2ba88343a567feec9660"}, + {file = "scipy-1.11.4-cp312-cp312-win_amd64.whl", hash = "sha256:36750b7733d960d7994888f0d148d31ea3017ac15eef664194b4ef68d36a4a97"}, + {file = "scipy-1.11.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6e619aba2df228a9b34718efb023966da781e89dd3d21637b27f2e54db0410d7"}, + {file = "scipy-1.11.4-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:f3cd9e7b3c2c1ec26364856f9fbe78695fe631150f94cd1c22228456404cf1ec"}, + {file = "scipy-1.11.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d10e45a6c50211fe256da61a11c34927c68f277e03138777bdebedd933712fea"}, + {file = "scipy-1.11.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91af76a68eeae0064887a48e25c4e616fa519fa0d38602eda7e0f97d65d57937"}, + {file = "scipy-1.11.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6df1468153a31cf55ed5ed39647279beb9cfb5d3f84369453b49e4b8502394fd"}, + {file = "scipy-1.11.4-cp39-cp39-win_amd64.whl", hash = "sha256:ee410e6de8f88fd5cf6eadd73c135020bfbbbdfcd0f6162c36a7638a1ea8cc65"}, + {file = "scipy-1.11.4.tar.gz", hash = "sha256:90a2b78e7f5733b9de748f589f09225013685f9b218275257f8a8168ededaeaa"}, +] + +[package.dependencies] +numpy = ">=1.21.6,<1.28.0" + +[package.extras] +dev = ["click", "cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy", "pycodestyle", "pydevtool", "rich-click", "ruff", "types-psutil", "typing_extensions"] +doc = ["jupytext", "matplotlib (>2)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (==0.9.0)", "sphinx (!=4.1.0)", "sphinx-design (>=0.2.0)"] +test = ["asv", "gmpy2", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] + +[[package]] +name = "seaborn" +version = "0.13.0" +description = "Statistical data visualization" +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "seaborn-0.13.0-py3-none-any.whl", hash = "sha256:70d740828c48de0f402bb17234e475eda687e3c65f4383ea25d0cc4728f7772e"}, + {file = "seaborn-0.13.0.tar.gz", hash = "sha256:0e76abd2ec291c655b516703c6a022f0fd5afed26c8e714e8baef48150f73598"}, +] + +[package.dependencies] +matplotlib = ">=3.3,<3.6.1 || >3.6.1" +numpy = ">=1.20,<1.24.0 || >1.24.0" +pandas = ">=1.2" + +[package.extras] +dev = ["flake8", "flit", "mypy", "pandas-stubs", "pre-commit", "pytest", "pytest-cov", "pytest-xdist"] +docs = ["ipykernel", "nbconvert", "numpydoc", "pydata_sphinx_theme (==0.10.0rc2)", "pyyaml", "sphinx (<6.0.0)", "sphinx-copybutton", "sphinx-design", "sphinx-issues"] +stats = ["scipy (>=1.7)", "statsmodels (>=0.12)"] + +[[package]] +name = "send2trash" +version = "1.8.2" +description = "Send file to trash natively under Mac OS X, Windows and Linux" +category = "main" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" +files = [ + {file = "Send2Trash-1.8.2-py3-none-any.whl", hash = "sha256:a384719d99c07ce1eefd6905d2decb6f8b7ed054025bb0e618919f945de4f679"}, + {file = "Send2Trash-1.8.2.tar.gz", hash = "sha256:c132d59fa44b9ca2b1699af5c86f57ce9f4c5eb56629d5d55fbb7a35f84e2312"}, +] + +[package.extras] +nativelib = ["pyobjc-framework-Cocoa", "pywin32"] +objc = ["pyobjc-framework-Cocoa"] +win32 = ["pywin32"] + +[[package]] +name = "sentry-sdk" +version = "1.39.1" +description = "Python client for Sentry (https://sentry.io)" +category = "main" +optional = false +python-versions = "*" +files = [ + {file = "sentry-sdk-1.39.1.tar.gz", hash = "sha256:320a55cdf9da9097a0bead239c35b7e61f53660ef9878861824fd6d9b2eaf3b5"}, + {file = "sentry_sdk-1.39.1-py2.py3-none-any.whl", hash = "sha256:81b5b9ffdd1a374e9eb0c053b5d2012155db9cbe76393a8585677b753bd5fdc1"}, +] + +[package.dependencies] +certifi = "*" +urllib3 = {version = ">=1.26.11", markers = "python_version >= \"3.6\""} + +[package.extras] +aiohttp = ["aiohttp (>=3.5)"] +arq = ["arq (>=0.23)"] +asyncpg = ["asyncpg (>=0.23)"] +beam = ["apache-beam (>=2.12)"] +bottle = ["bottle (>=0.12.13)"] +celery = ["celery (>=3)"] +chalice = ["chalice (>=1.16.0)"] +clickhouse-driver = ["clickhouse-driver (>=0.2.0)"] +django = ["django (>=1.8)"] +falcon = ["falcon (>=1.4)"] +fastapi = ["fastapi (>=0.79.0)"] +flask = ["blinker (>=1.1)", "flask (>=0.11)", "markupsafe"] +grpcio = ["grpcio (>=1.21.1)"] +httpx = ["httpx (>=0.16.0)"] +huey = ["huey (>=2)"] +loguru = ["loguru (>=0.5)"] +opentelemetry = ["opentelemetry-distro (>=0.35b0)"] +opentelemetry-experimental = ["opentelemetry-distro (>=0.40b0,<1.0)", "opentelemetry-instrumentation-aiohttp-client (>=0.40b0,<1.0)", "opentelemetry-instrumentation-django (>=0.40b0,<1.0)", "opentelemetry-instrumentation-fastapi (>=0.40b0,<1.0)", "opentelemetry-instrumentation-flask (>=0.40b0,<1.0)", "opentelemetry-instrumentation-requests (>=0.40b0,<1.0)", "opentelemetry-instrumentation-sqlite3 (>=0.40b0,<1.0)", "opentelemetry-instrumentation-urllib (>=0.40b0,<1.0)"] +pure-eval = ["asttokens", "executing", "pure-eval"] +pymongo = ["pymongo (>=3.1)"] +pyspark = ["pyspark (>=2.4.4)"] +quart = ["blinker (>=1.1)", "quart (>=0.16.1)"] +rq = ["rq (>=0.6)"] +sanic = ["sanic (>=0.8)"] +sqlalchemy = ["sqlalchemy (>=1.2)"] +starlette = ["starlette (>=0.19.1)"] +starlite = ["starlite (>=1.48)"] +tornado = ["tornado (>=5)"] + +[[package]] +name = "setproctitle" +version = "1.3.3" +description = "A Python module to customize the process title" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "setproctitle-1.3.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:897a73208da48db41e687225f355ce993167079eda1260ba5e13c4e53be7f754"}, + {file = "setproctitle-1.3.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8c331e91a14ba4076f88c29c777ad6b58639530ed5b24b5564b5ed2fd7a95452"}, + {file = "setproctitle-1.3.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bbbd6c7de0771c84b4aa30e70b409565eb1fc13627a723ca6be774ed6b9d9fa3"}, + {file = "setproctitle-1.3.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c05ac48ef16ee013b8a326c63e4610e2430dbec037ec5c5b58fcced550382b74"}, + {file = "setproctitle-1.3.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1342f4fdb37f89d3e3c1c0a59d6ddbedbde838fff5c51178a7982993d238fe4f"}, + {file = "setproctitle-1.3.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc74e84fdfa96821580fb5e9c0b0777c1c4779434ce16d3d62a9c4d8c710df39"}, + {file = "setproctitle-1.3.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:9617b676b95adb412bb69645d5b077d664b6882bb0d37bfdafbbb1b999568d85"}, + {file = "setproctitle-1.3.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6a249415f5bb88b5e9e8c4db47f609e0bf0e20a75e8d744ea787f3092ba1f2d0"}, + {file = "setproctitle-1.3.3-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:38da436a0aaace9add67b999eb6abe4b84397edf4a78ec28f264e5b4c9d53cd5"}, + {file = "setproctitle-1.3.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:da0d57edd4c95bf221b2ebbaa061e65b1788f1544977288bdf95831b6e44e44d"}, + {file = "setproctitle-1.3.3-cp310-cp310-win32.whl", hash = "sha256:a1fcac43918b836ace25f69b1dca8c9395253ad8152b625064415b1d2f9be4fb"}, + {file = "setproctitle-1.3.3-cp310-cp310-win_amd64.whl", hash = "sha256:200620c3b15388d7f3f97e0ae26599c0c378fdf07ae9ac5a13616e933cbd2086"}, + {file = "setproctitle-1.3.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:334f7ed39895d692f753a443102dd5fed180c571eb6a48b2a5b7f5b3564908c8"}, + {file = "setproctitle-1.3.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:950f6476d56ff7817a8fed4ab207727fc5260af83481b2a4b125f32844df513a"}, + {file = "setproctitle-1.3.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:195c961f54a09eb2acabbfc90c413955cf16c6e2f8caa2adbf2237d1019c7dd8"}, + {file = "setproctitle-1.3.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f05e66746bf9fe6a3397ec246fe481096664a9c97eb3fea6004735a4daf867fd"}, + {file = "setproctitle-1.3.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b5901a31012a40ec913265b64e48c2a4059278d9f4e6be628441482dd13fb8b5"}, + {file = "setproctitle-1.3.3-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64286f8a995f2cd934082b398fc63fca7d5ffe31f0e27e75b3ca6b4efda4e353"}, + {file = "setproctitle-1.3.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:184239903bbc6b813b1a8fc86394dc6ca7d20e2ebe6f69f716bec301e4b0199d"}, + {file = "setproctitle-1.3.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:664698ae0013f986118064b6676d7dcd28fefd0d7d5a5ae9497cbc10cba48fa5"}, + {file = "setproctitle-1.3.3-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:e5119a211c2e98ff18b9908ba62a3bd0e3fabb02a29277a7232a6fb4b2560aa0"}, + {file = "setproctitle-1.3.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:417de6b2e214e837827067048f61841f5d7fc27926f2e43954567094051aff18"}, + {file = "setproctitle-1.3.3-cp311-cp311-win32.whl", hash = "sha256:6a143b31d758296dc2f440175f6c8e0b5301ced3b0f477b84ca43cdcf7f2f476"}, + {file = "setproctitle-1.3.3-cp311-cp311-win_amd64.whl", hash = "sha256:a680d62c399fa4b44899094027ec9a1bdaf6f31c650e44183b50d4c4d0ccc085"}, + {file = "setproctitle-1.3.3-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:d4460795a8a7a391e3567b902ec5bdf6c60a47d791c3b1d27080fc203d11c9dc"}, + {file = "setproctitle-1.3.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:bdfd7254745bb737ca1384dee57e6523651892f0ea2a7344490e9caefcc35e64"}, + {file = "setproctitle-1.3.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:477d3da48e216d7fc04bddab67b0dcde633e19f484a146fd2a34bb0e9dbb4a1e"}, + {file = "setproctitle-1.3.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ab2900d111e93aff5df9fddc64cf51ca4ef2c9f98702ce26524f1acc5a786ae7"}, + {file = "setproctitle-1.3.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:088b9efc62d5aa5d6edf6cba1cf0c81f4488b5ce1c0342a8b67ae39d64001120"}, + {file = "setproctitle-1.3.3-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a6d50252377db62d6a0bb82cc898089916457f2db2041e1d03ce7fadd4a07381"}, + {file = "setproctitle-1.3.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:87e668f9561fd3a457ba189edfc9e37709261287b52293c115ae3487a24b92f6"}, + {file = "setproctitle-1.3.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:287490eb90e7a0ddd22e74c89a92cc922389daa95babc833c08cf80c84c4df0a"}, + {file = "setproctitle-1.3.3-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:4fe1c49486109f72d502f8be569972e27f385fe632bd8895f4730df3c87d5ac8"}, + {file = "setproctitle-1.3.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4a6ba2494a6449b1f477bd3e67935c2b7b0274f2f6dcd0f7c6aceae10c6c6ba3"}, + {file = "setproctitle-1.3.3-cp312-cp312-win32.whl", hash = "sha256:2df2b67e4b1d7498632e18c56722851ba4db5d6a0c91aaf0fd395111e51cdcf4"}, + {file = "setproctitle-1.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:f38d48abc121263f3b62943f84cbaede05749047e428409c2c199664feb6abc7"}, + {file = "setproctitle-1.3.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:816330675e3504ae4d9a2185c46b573105d2310c20b19ea2b4596a9460a4f674"}, + {file = "setproctitle-1.3.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68f960bc22d8d8e4ac886d1e2e21ccbd283adcf3c43136161c1ba0fa509088e0"}, + {file = "setproctitle-1.3.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:00e6e7adff74796ef12753ff399491b8827f84f6c77659d71bd0b35870a17d8f"}, + {file = "setproctitle-1.3.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:53bc0d2358507596c22b02db079618451f3bd720755d88e3cccd840bafb4c41c"}, + {file = "setproctitle-1.3.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad6d20f9541f5f6ac63df553b6d7a04f313947f550eab6a61aa758b45f0d5657"}, + {file = "setproctitle-1.3.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c1c84beab776b0becaa368254801e57692ed749d935469ac10e2b9b825dbdd8e"}, + {file = "setproctitle-1.3.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:507e8dc2891021350eaea40a44ddd887c9f006e6b599af8d64a505c0f718f170"}, + {file = "setproctitle-1.3.3-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:b1067647ac7aba0b44b591936118a22847bda3c507b0a42d74272256a7a798e9"}, + {file = "setproctitle-1.3.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:2e71f6365744bf53714e8bd2522b3c9c1d83f52ffa6324bd7cbb4da707312cd8"}, + {file = "setproctitle-1.3.3-cp37-cp37m-win32.whl", hash = "sha256:7f1d36a1e15a46e8ede4e953abb104fdbc0845a266ec0e99cc0492a4364f8c44"}, + {file = "setproctitle-1.3.3-cp37-cp37m-win_amd64.whl", hash = "sha256:c9a402881ec269d0cc9c354b149fc29f9ec1a1939a777f1c858cdb09c7a261df"}, + {file = "setproctitle-1.3.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ff814dea1e5c492a4980e3e7d094286077054e7ea116cbeda138819db194b2cd"}, + {file = "setproctitle-1.3.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:accb66d7b3ccb00d5cd11d8c6e07055a4568a24c95cf86109894dcc0c134cc89"}, + {file = "setproctitle-1.3.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:554eae5a5b28f02705b83a230e9d163d645c9a08914c0ad921df363a07cf39b1"}, + {file = "setproctitle-1.3.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a911b26264dbe9e8066c7531c0591cfab27b464459c74385b276fe487ca91c12"}, + {file = "setproctitle-1.3.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2982efe7640c4835f7355fdb4da313ad37fb3b40f5c69069912f8048f77b28c8"}, + {file = "setproctitle-1.3.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:df3f4274b80709d8bcab2f9a862973d453b308b97a0b423a501bcd93582852e3"}, + {file = "setproctitle-1.3.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:af2c67ae4c795d1674a8d3ac1988676fa306bcfa1e23fddb5e0bd5f5635309ca"}, + {file = "setproctitle-1.3.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:af4061f67fd7ec01624c5e3c21f6b7af2ef0e6bab7fbb43f209e6506c9ce0092"}, + {file = "setproctitle-1.3.3-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:37a62cbe16d4c6294e84670b59cf7adcc73faafe6af07f8cb9adaf1f0e775b19"}, + {file = "setproctitle-1.3.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:a83ca086fbb017f0d87f240a8f9bbcf0809f3b754ee01cec928fff926542c450"}, + {file = "setproctitle-1.3.3-cp38-cp38-win32.whl", hash = "sha256:059f4ce86f8cc92e5860abfc43a1dceb21137b26a02373618d88f6b4b86ba9b2"}, + {file = "setproctitle-1.3.3-cp38-cp38-win_amd64.whl", hash = "sha256:ab92e51cd4a218208efee4c6d37db7368fdf182f6e7ff148fb295ecddf264287"}, + {file = "setproctitle-1.3.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c7951820b77abe03d88b114b998867c0f99da03859e5ab2623d94690848d3e45"}, + {file = "setproctitle-1.3.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5bc94cf128676e8fac6503b37763adb378e2b6be1249d207630f83fc325d9b11"}, + {file = "setproctitle-1.3.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f5d9027eeda64d353cf21a3ceb74bb1760bd534526c9214e19f052424b37e42"}, + {file = "setproctitle-1.3.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2e4a8104db15d3462e29d9946f26bed817a5b1d7a47eabca2d9dc2b995991503"}, + {file = "setproctitle-1.3.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c32c41ace41f344d317399efff4cffb133e709cec2ef09c99e7a13e9f3b9483c"}, + {file = "setproctitle-1.3.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cbf16381c7bf7f963b58fb4daaa65684e10966ee14d26f5cc90f07049bfd8c1e"}, + {file = "setproctitle-1.3.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:e18b7bd0898398cc97ce2dfc83bb192a13a087ef6b2d5a8a36460311cb09e775"}, + {file = "setproctitle-1.3.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:69d565d20efe527bd8a9b92e7f299ae5e73b6c0470f3719bd66f3cd821e0d5bd"}, + {file = "setproctitle-1.3.3-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:ddedd300cd690a3b06e7eac90ed4452348b1348635777ce23d460d913b5b63c3"}, + {file = "setproctitle-1.3.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:415bfcfd01d1fbf5cbd75004599ef167a533395955305f42220a585f64036081"}, + {file = "setproctitle-1.3.3-cp39-cp39-win32.whl", hash = "sha256:21112fcd2195d48f25760f0eafa7a76510871bbb3b750219310cf88b04456ae3"}, + {file = "setproctitle-1.3.3-cp39-cp39-win_amd64.whl", hash = "sha256:5a740f05d0968a5a17da3d676ce6afefebeeeb5ce137510901bf6306ba8ee002"}, + {file = "setproctitle-1.3.3-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:6b9e62ddb3db4b5205c0321dd69a406d8af9ee1693529d144e86bd43bcb4b6c0"}, + {file = "setproctitle-1.3.3-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9e3b99b338598de0bd6b2643bf8c343cf5ff70db3627af3ca427a5e1a1a90dd9"}, + {file = "setproctitle-1.3.3-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:38ae9a02766dad331deb06855fb7a6ca15daea333b3967e214de12cfae8f0ef5"}, + {file = "setproctitle-1.3.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:200ede6fd11233085ba9b764eb055a2a191fb4ffb950c68675ac53c874c22e20"}, + {file = "setproctitle-1.3.3-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:0d3a953c50776751e80fe755a380a64cb14d61e8762bd43041ab3f8cc436092f"}, + {file = "setproctitle-1.3.3-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5e08e232b78ba3ac6bc0d23ce9e2bee8fad2be391b7e2da834fc9a45129eb87"}, + {file = "setproctitle-1.3.3-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f1da82c3e11284da4fcbf54957dafbf0655d2389cd3d54e4eaba636faf6d117a"}, + {file = "setproctitle-1.3.3-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:aeaa71fb9568ebe9b911ddb490c644fbd2006e8c940f21cb9a1e9425bd709574"}, + {file = "setproctitle-1.3.3-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:59335d000c6250c35989394661eb6287187854e94ac79ea22315469ee4f4c244"}, + {file = "setproctitle-1.3.3-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c3ba57029c9c50ecaf0c92bb127224cc2ea9fda057b5d99d3f348c9ec2855ad3"}, + {file = "setproctitle-1.3.3-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d876d355c53d975c2ef9c4f2487c8f83dad6aeaaee1b6571453cb0ee992f55f6"}, + {file = "setproctitle-1.3.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:224602f0939e6fb9d5dd881be1229d485f3257b540f8a900d4271a2c2aa4e5f4"}, + {file = "setproctitle-1.3.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d7f27e0268af2d7503386e0e6be87fb9b6657afd96f5726b733837121146750d"}, + {file = "setproctitle-1.3.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f5e7266498cd31a4572378c61920af9f6b4676a73c299fce8ba93afd694f8ae7"}, + {file = "setproctitle-1.3.3-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:33c5609ad51cd99d388e55651b19148ea99727516132fb44680e1f28dd0d1de9"}, + {file = "setproctitle-1.3.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:eae8988e78192fd1a3245a6f4f382390b61bce6cfcc93f3809726e4c885fa68d"}, + {file = "setproctitle-1.3.3.tar.gz", hash = "sha256:c913e151e7ea01567837ff037a23ca8740192880198b7fbb90b16d181607caae"}, +] + +[package.extras] +test = ["pytest"] + +[[package]] +name = "setuptools" +version = "69.0.3" +description = "Easily download, build, install, upgrade, and uninstall Python packages" +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "setuptools-69.0.3-py3-none-any.whl", hash = "sha256:385eb4edd9c9d5c17540511303e39a147ce2fc04bc55289c322b9e5904fe2c05"}, + {file = "setuptools-69.0.3.tar.gz", hash = "sha256:be1af57fc409f93647f2e8e4573a142ed38724b8cdd389706a867bb4efcf1e78"}, +] + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.1)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] + +[[package]] +name = "six" +version = "1.16.0" +description = "Python 2 and 3 compatibility utilities" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] + +[[package]] +name = "smmap" +version = "5.0.1" +description = "A pure Python implementation of a sliding window memory map manager" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "smmap-5.0.1-py3-none-any.whl", hash = "sha256:e6d8668fa5f93e706934a62d7b4db19c8d9eb8cf2adbb75ef1b675aa332b69da"}, + {file = "smmap-5.0.1.tar.gz", hash = "sha256:dceeb6c0028fdb6734471eb07c0cd2aae706ccaecab45965ee83f11c8d3b1f62"}, +] + +[[package]] +name = "sniffio" +version = "1.3.0" +description = "Sniff out which async library your code is running under" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "sniffio-1.3.0-py3-none-any.whl", hash = "sha256:eecefdce1e5bbfb7ad2eeaabf7c1eeb404d7757c379bd1f7e5cce9d8bf425384"}, + {file = "sniffio-1.3.0.tar.gz", hash = "sha256:e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101"}, +] + +[[package]] +name = "soupsieve" +version = "2.5" +description = "A modern CSS selector implementation for Beautiful Soup." +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "soupsieve-2.5-py3-none-any.whl", hash = "sha256:eaa337ff55a1579b6549dc679565eac1e3d000563bcb1c8ab0d0fefbc0c2cdc7"}, + {file = "soupsieve-2.5.tar.gz", hash = "sha256:5663d5a7b3bfaeee0bc4372e7fc48f9cff4940b3eec54a6451cc5299f1097690"}, +] + +[[package]] +name = "stack-data" +version = "0.6.3" +description = "Extract data from python stack frames and tracebacks for informative displays" +category = "main" +optional = false +python-versions = "*" +files = [ + {file = "stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695"}, + {file = "stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9"}, +] + +[package.dependencies] +asttokens = ">=2.1.0" +executing = ">=1.2.0" +pure-eval = "*" + +[package.extras] +tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] + +[[package]] +name = "sympy" +version = "1.12" +description = "Computer algebra system (CAS) in Python" +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "sympy-1.12-py3-none-any.whl", hash = "sha256:c3588cd4295d0c0f603d0f2ae780587e64e2efeedb3521e46b9bb1d08d184fa5"}, + {file = "sympy-1.12.tar.gz", hash = "sha256:ebf595c8dac3e0fdc4152c51878b498396ec7f30e7a914d6071e674d49420fb8"}, +] + +[package.dependencies] +mpmath = ">=0.19" + +[[package]] +name = "terminado" +version = "0.18.0" +description = "Tornado websocket backend for the Xterm.js Javascript terminal emulator library." +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "terminado-0.18.0-py3-none-any.whl", hash = "sha256:87b0d96642d0fe5f5abd7783857b9cab167f221a39ff98e3b9619a788a3c0f2e"}, + {file = "terminado-0.18.0.tar.gz", hash = "sha256:1ea08a89b835dd1b8c0c900d92848147cef2537243361b2e3f4dc15df9b6fded"}, +] + +[package.dependencies] +ptyprocess = {version = "*", markers = "os_name != \"nt\""} +pywinpty = {version = ">=1.1.0", markers = "os_name == \"nt\""} +tornado = ">=6.1.0" + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] +test = ["pre-commit", "pytest (>=7.0)", "pytest-timeout"] +typing = ["mypy (>=1.6,<2.0)", "traitlets (>=5.11.1)"] + +[[package]] +name = "threadpoolctl" +version = "3.2.0" +description = "threadpoolctl" +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "threadpoolctl-3.2.0-py3-none-any.whl", hash = "sha256:2b7818516e423bdaebb97c723f86a7c6b0a83d3f3b0970328d66f4d9104dc032"}, + {file = "threadpoolctl-3.2.0.tar.gz", hash = "sha256:c96a0ba3bdddeaca37dc4cc7344aafad41cdb8c313f74fdfe387a867bba93355"}, +] + +[[package]] +name = "tifffile" +version = "2023.12.9" +description = "Read and write TIFF files" +category = "main" +optional = false +python-versions = ">=3.9" +files = [ + {file = "tifffile-2023.12.9-py3-none-any.whl", hash = "sha256:9b066e4b1a900891ea42ffd33dab8ba34c537935618b9893ddef42d7d422692f"}, + {file = "tifffile-2023.12.9.tar.gz", hash = "sha256:9dd1da91180a6453018a241ff219e1905f169384355cd89c9ef4034c1b46cdb8"}, +] + +[package.dependencies] +numpy = "*" + +[package.extras] +all = ["defusedxml", "fsspec", "imagecodecs (>=2023.8.12)", "lxml", "matplotlib", "zarr"] + +[[package]] +name = "tinycss2" +version = "1.2.1" +description = "A tiny CSS parser" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "tinycss2-1.2.1-py3-none-any.whl", hash = "sha256:2b80a96d41e7c3914b8cda8bc7f705a4d9c49275616e886103dd839dfc847847"}, + {file = "tinycss2-1.2.1.tar.gz", hash = "sha256:8cff3a8f066c2ec677c06dbc7b45619804a6938478d9d73c284b29d14ecb0627"}, +] + +[package.dependencies] +webencodings = ">=0.4" + +[package.extras] +doc = ["sphinx", "sphinx_rtd_theme"] +test = ["flake8", "isort", "pytest"] + +[[package]] +name = "tomli" +version = "2.0.1" +description = "A lil' TOML parser" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, + {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, +] + +[[package]] +name = "torch" +version = "2.1.2" +description = "Tensors and Dynamic neural networks in Python with strong GPU acceleration" +category = "main" +optional = false +python-versions = ">=3.8.0" +files = [ + {file = "torch-2.1.2-cp310-cp310-manylinux1_x86_64.whl", hash = "sha256:3a871edd6c02dae77ad810335c0833391c1a4ce49af21ea8cf0f6a5d2096eea8"}, + {file = "torch-2.1.2-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:bef6996c27d8f6e92ea4e13a772d89611da0e103b48790de78131e308cf73076"}, + {file = "torch-2.1.2-cp310-cp310-win_amd64.whl", hash = "sha256:0e13034fd5fb323cbbc29e56d0637a3791e50dd589616f40c79adfa36a5a35a1"}, + {file = "torch-2.1.2-cp310-none-macosx_10_9_x86_64.whl", hash = "sha256:d9b535cad0df3d13997dbe8bd68ac33e0e3ae5377639c9881948e40794a61403"}, + {file = "torch-2.1.2-cp310-none-macosx_11_0_arm64.whl", hash = "sha256:f9a55d55af02826ebfbadf4e9b682f0f27766bc33df8236b48d28d705587868f"}, + {file = "torch-2.1.2-cp311-cp311-manylinux1_x86_64.whl", hash = "sha256:a6ebbe517097ef289cc7952783588c72de071d4b15ce0f8b285093f0916b1162"}, + {file = "torch-2.1.2-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:8f32ce591616a30304f37a7d5ea80b69ca9e1b94bba7f308184bf616fdaea155"}, + {file = "torch-2.1.2-cp311-cp311-win_amd64.whl", hash = "sha256:e0ee6cf90c8970e05760f898d58f9ac65821c37ffe8b04269ec787aa70962b69"}, + {file = "torch-2.1.2-cp311-none-macosx_10_9_x86_64.whl", hash = "sha256:76d37967c31c99548ad2c4d3f2cf191db48476f2e69b35a0937137116da356a1"}, + {file = "torch-2.1.2-cp311-none-macosx_11_0_arm64.whl", hash = "sha256:e2d83f07b4aac983453ea5bf8f9aa9dacf2278a8d31247f5d9037f37befc60e4"}, + {file = "torch-2.1.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:f41fe0c7ecbf903a568c73486139a75cfab287a0f6c17ed0698fdea7a1e8641d"}, + {file = "torch-2.1.2-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:e3225f47d50bb66f756fe9196a768055d1c26b02154eb1f770ce47a2578d3aa7"}, + {file = "torch-2.1.2-cp38-cp38-win_amd64.whl", hash = "sha256:33d59cd03cb60106857f6c26b36457793637512998666ee3ce17311f217afe2b"}, + {file = "torch-2.1.2-cp38-none-macosx_10_9_x86_64.whl", hash = "sha256:8e221deccd0def6c2badff6be403e0c53491805ed9915e2c029adbcdb87ab6b5"}, + {file = "torch-2.1.2-cp38-none-macosx_11_0_arm64.whl", hash = "sha256:05b18594f60a911a0c4f023f38a8bda77131fba5fd741bda626e97dcf5a3dd0a"}, + {file = "torch-2.1.2-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:9ca96253b761e9aaf8e06fb30a66ee301aecbf15bb5a303097de1969077620b6"}, + {file = "torch-2.1.2-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:d93ba70f67b08c2ae5598ee711cbc546a1bc8102cef938904b8c85c2089a51a0"}, + {file = "torch-2.1.2-cp39-cp39-win_amd64.whl", hash = "sha256:255b50bc0608db177e6a3cc118961d77de7e5105f07816585fa6f191f33a9ff3"}, + {file = "torch-2.1.2-cp39-none-macosx_10_9_x86_64.whl", hash = "sha256:6984cd5057c0c977b3c9757254e989d3f1124f4ce9d07caa6cb637783c71d42a"}, + {file = "torch-2.1.2-cp39-none-macosx_11_0_arm64.whl", hash = "sha256:bc195d7927feabc0eb7c110e457c955ed2ab616f3c7c28439dd4188cf589699f"}, +] + +[package.dependencies] +filelock = "*" +fsspec = "*" +jinja2 = "*" +networkx = "*" +nvidia-cublas-cu12 = {version = "12.1.3.1", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} +nvidia-cuda-cupti-cu12 = {version = "12.1.105", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} +nvidia-cuda-nvrtc-cu12 = {version = "12.1.105", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} +nvidia-cuda-runtime-cu12 = {version = "12.1.105", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} +nvidia-cudnn-cu12 = {version = "8.9.2.26", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} +nvidia-cufft-cu12 = {version = "11.0.2.54", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} +nvidia-curand-cu12 = {version = "10.3.2.106", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} +nvidia-cusolver-cu12 = {version = "11.4.5.107", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} +nvidia-cusparse-cu12 = {version = "12.1.0.106", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} +nvidia-nccl-cu12 = {version = "2.18.1", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} +nvidia-nvtx-cu12 = {version = "12.1.105", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} +sympy = "*" +triton = {version = "2.1.0", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} +typing-extensions = "*" + +[package.extras] +dynamo = ["jinja2"] +opt-einsum = ["opt-einsum (>=3.3)"] + +[[package]] +name = "torchvision" +version = "0.16.2" +description = "image and video datasets and models for torch deep learning" +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "torchvision-0.16.2-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:bc86f2800cb2c0c1a09c581409cdd6bff66e62f103dc83fc63f73346264c3756"}, + {file = "torchvision-0.16.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b024bd412df6d3a007dcebf311a894eb3c5c21e1af80d12be382bbcb097a7c3a"}, + {file = "torchvision-0.16.2-cp310-cp310-manylinux1_x86_64.whl", hash = "sha256:e89f10f3c8351972b6e3fda95bc3e479ea8dbfc9dfcfd2c32902dbad4ba5cfc5"}, + {file = "torchvision-0.16.2-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:96c7583700112a410bdc4e1e4f118c429dab49c29c9a31a2cc3579bc9b08b19d"}, + {file = "torchvision-0.16.2-cp310-cp310-win_amd64.whl", hash = "sha256:9f4032ebb3277fb07ff6a9b818d50a547fb8fcd89d958cfd9e773322454bb688"}, + {file = "torchvision-0.16.2-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:67b1aaf8b8cb02ce75dd445f291a27c8036a502f8c0aa76e28c37a0faac2e153"}, + {file = "torchvision-0.16.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bef30d03e1d1c629761f4dca51d3b7d8a0dc0acce6f4068ab2a1634e8e7b64e0"}, + {file = "torchvision-0.16.2-cp311-cp311-manylinux1_x86_64.whl", hash = "sha256:e59cc7b2bd1ab5c0ce4ae382e4e37be8f1c174e8b5de2f6a23c170de9ae28495"}, + {file = "torchvision-0.16.2-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:e130b08cc9b3cc73a6c59d6edf032394a322f9579bfd21d14bc2e1d0999aa758"}, + {file = "torchvision-0.16.2-cp311-cp311-win_amd64.whl", hash = "sha256:8692ab1e48807e9604046a6f4beeb67b523294cee1b00828654bb0df2cfce2b2"}, + {file = "torchvision-0.16.2-cp38-cp38-macosx_10_13_x86_64.whl", hash = "sha256:b82732dcf876a37c852772342aa6ee3480c03bb3e2a802ae109fc5f7e28d26e9"}, + {file = "torchvision-0.16.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4b065143d1a720fe8a9077fd4be35d491f98819ec80b3dbbc3ec64d0b707a906"}, + {file = "torchvision-0.16.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:bc5f274e4ecd1b86062063cdf4fd385a1d39d147a3a2685fbbde9ff08bb720b8"}, + {file = "torchvision-0.16.2-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:335959c43b371c0474af34c1ef2a52efdc7603c45700d29e4475eeb02984170c"}, + {file = "torchvision-0.16.2-cp38-cp38-win_amd64.whl", hash = "sha256:7fd22d86e08eba321af70cad291020c2cdeac069b00ce88b923ca52e06174769"}, + {file = "torchvision-0.16.2-cp39-cp39-macosx_10_13_x86_64.whl", hash = "sha256:56115268b37f0b75364e3654e47ad9abc66ac34c1f9e5e3dfa89a22d6a40017a"}, + {file = "torchvision-0.16.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:82805f8445b094f9d1e770390ee6cc86855e89955e08ce34af2e2274fc0e5c45"}, + {file = "torchvision-0.16.2-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:3f4bd5fcbc361476e2e78016636ac7d5509e59d9962521f06eb98e6803898182"}, + {file = "torchvision-0.16.2-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:8199acdf8ab066a28b84a5b6f4d97b58976d9e164b1acc3a9d14fccfaf74bb3a"}, + {file = "torchvision-0.16.2-cp39-cp39-win_amd64.whl", hash = "sha256:41dd4fa9f176d563fe9f1b9adef3b7e582cdfb60ce8c9bc51b094a025be687c9"}, +] + +[package.dependencies] +numpy = "*" +pillow = ">=5.3.0,<8.3.0 || >=8.4.0" +requests = "*" +torch = "2.1.2" + +[package.extras] +scipy = ["scipy"] + +[[package]] +name = "tornado" +version = "6.4" +description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." +category = "main" +optional = false +python-versions = ">= 3.8" +files = [ + {file = "tornado-6.4-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:02ccefc7d8211e5a7f9e8bc3f9e5b0ad6262ba2fbb683a6443ecc804e5224ce0"}, + {file = "tornado-6.4-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:27787de946a9cffd63ce5814c33f734c627a87072ec7eed71f7fc4417bb16263"}, + {file = "tornado-6.4-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7894c581ecdcf91666a0912f18ce5e757213999e183ebfc2c3fdbf4d5bd764e"}, + {file = "tornado-6.4-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e43bc2e5370a6a8e413e1e1cd0c91bedc5bd62a74a532371042a18ef19e10579"}, + {file = "tornado-6.4-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0251554cdd50b4b44362f73ad5ba7126fc5b2c2895cc62b14a1c2d7ea32f212"}, + {file = "tornado-6.4-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:fd03192e287fbd0899dd8f81c6fb9cbbc69194d2074b38f384cb6fa72b80e9c2"}, + {file = "tornado-6.4-cp38-abi3-musllinux_1_1_i686.whl", hash = "sha256:88b84956273fbd73420e6d4b8d5ccbe913c65d31351b4c004ae362eba06e1f78"}, + {file = "tornado-6.4-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:71ddfc23a0e03ef2df1c1397d859868d158c8276a0603b96cf86892bff58149f"}, + {file = "tornado-6.4-cp38-abi3-win32.whl", hash = "sha256:6f8a6c77900f5ae93d8b4ae1196472d0ccc2775cc1dfdc9e7727889145c45052"}, + {file = "tornado-6.4-cp38-abi3-win_amd64.whl", hash = "sha256:10aeaa8006333433da48dec9fe417877f8bcc21f48dda8d661ae79da357b2a63"}, + {file = "tornado-6.4.tar.gz", hash = "sha256:72291fa6e6bc84e626589f1c29d90a5a6d593ef5ae68052ee2ef000dfd273dee"}, +] + +[[package]] +name = "tqdm" +version = "4.66.1" +description = "Fast, Extensible Progress Meter" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "tqdm-4.66.1-py3-none-any.whl", hash = "sha256:d302b3c5b53d47bce91fea46679d9c3c6508cf6332229aa1e7d8653723793386"}, + {file = "tqdm-4.66.1.tar.gz", hash = "sha256:d88e651f9db8d8551a62556d3cff9e3034274ca5d66e93197cf2490e2dcb69c7"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[package.extras] +dev = ["pytest (>=6)", "pytest-cov", "pytest-timeout", "pytest-xdist"] +notebook = ["ipywidgets (>=6)"] +slack = ["slack-sdk"] +telegram = ["requests"] + +[[package]] +name = "traitlets" +version = "5.14.0" +description = "Traitlets Python configuration system" +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "traitlets-5.14.0-py3-none-any.whl", hash = "sha256:f14949d23829023013c47df20b4a76ccd1a85effb786dc060f34de7948361b33"}, + {file = "traitlets-5.14.0.tar.gz", hash = "sha256:fcdaa8ac49c04dfa0ed3ee3384ef6dfdb5d6f3741502be247279407679296772"}, +] + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] +test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0,<7.5)", "pytest-mock", "pytest-mypy-testing"] + +[[package]] +name = "triton" +version = "2.1.0" +description = "A language and compiler for custom Deep Learning operations" +category = "main" +optional = false +python-versions = "*" +files = [ + {file = "triton-2.1.0-0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:66439923a30d5d48399b08a9eae10370f6c261a5ec864a64983bae63152d39d7"}, + {file = "triton-2.1.0-0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:919b06453f0033ea52c13eaf7833de0e57db3178d23d4e04f9fc71c4f2c32bf8"}, + {file = "triton-2.1.0-0-cp37-cp37m-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ae4bb8a91de790e1866405211c4d618379781188f40d5c4c399766914e84cd94"}, + {file = "triton-2.1.0-0-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:39f6fb6bdccb3e98f3152e3fbea724f1aeae7d749412bbb1fa9c441d474eba26"}, + {file = "triton-2.1.0-0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:21544e522c02005a626c8ad63d39bdff2f31d41069592919ef281e964ed26446"}, + {file = "triton-2.1.0-0-pp37-pypy37_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:143582ca31dd89cd982bd3bf53666bab1c7527d41e185f9e3d8a3051ce1b663b"}, + {file = "triton-2.1.0-0-pp38-pypy38_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:82fc5aeeedf6e36be4e4530cbdcba81a09d65c18e02f52dc298696d45721f3bd"}, + {file = "triton-2.1.0-0-pp39-pypy39_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:81a96d110a738ff63339fc892ded095b31bd0d205e3aace262af8400d40b6fa8"}, +] + +[package.dependencies] +filelock = "*" + +[package.extras] +build = ["cmake (>=3.18)", "lit"] +tests = ["autopep8", "flake8", "isort", "numpy", "pytest", "scipy (>=1.7.1)"] +tutorials = ["matplotlib", "pandas", "tabulate"] + +[[package]] +name = "types-python-dateutil" +version = "2.8.19.14" +description = "Typing stubs for python-dateutil" +category = "main" +optional = false +python-versions = "*" +files = [ + {file = "types-python-dateutil-2.8.19.14.tar.gz", hash = "sha256:1f4f10ac98bb8b16ade9dbee3518d9ace017821d94b057a425b069f834737f4b"}, + {file = "types_python_dateutil-2.8.19.14-py3-none-any.whl", hash = "sha256:f977b8de27787639986b4e28963263fd0e5158942b3ecef91b9335c130cb1ce9"}, +] + +[[package]] +name = "typing-extensions" +version = "4.9.0" +description = "Backported and Experimental Type Hints for Python 3.8+" +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "typing_extensions-4.9.0-py3-none-any.whl", hash = "sha256:af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd"}, + {file = "typing_extensions-4.9.0.tar.gz", hash = "sha256:23478f88c37f27d76ac8aee6c905017a143b0b1b886c3c9f66bc2fd94f9f5783"}, +] + +[[package]] +name = "tzdata" +version = "2023.3" +description = "Provider of IANA time zone data" +category = "main" +optional = false +python-versions = ">=2" +files = [ + {file = "tzdata-2023.3-py2.py3-none-any.whl", hash = "sha256:7e65763eef3120314099b6939b5546db7adce1e7d6f2e179e3df563c70511eda"}, + {file = "tzdata-2023.3.tar.gz", hash = "sha256:11ef1e08e54acb0d4f95bdb1be05da659673de4acbd21bf9c69e94cc5e907a3a"}, +] + +[[package]] +name = "tzlocal" +version = "5.2" +description = "tzinfo object for the local timezone" +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "tzlocal-5.2-py3-none-any.whl", hash = "sha256:49816ef2fe65ea8ac19d19aa7a1ae0551c834303d5014c6d5a62e4cbda8047b8"}, + {file = "tzlocal-5.2.tar.gz", hash = "sha256:8d399205578f1a9342816409cc1e46a93ebd5755e39ea2d85334bea911bf0e6e"}, +] + +[package.dependencies] +tzdata = {version = "*", markers = "platform_system == \"Windows\""} + +[package.extras] +devenv = ["check-manifest", "pytest (>=4.3)", "pytest-cov", "pytest-mock (>=3.3)", "zest.releaser"] + +[[package]] +name = "uri-template" +version = "1.3.0" +description = "RFC 6570 URI Template Processor" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "uri-template-1.3.0.tar.gz", hash = "sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7"}, + {file = "uri_template-1.3.0-py3-none-any.whl", hash = "sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363"}, +] + +[package.extras] +dev = ["flake8", "flake8-annotations", "flake8-bandit", "flake8-bugbear", "flake8-commas", "flake8-comprehensions", "flake8-continuation", "flake8-datetimez", "flake8-docstrings", "flake8-import-order", "flake8-literal", "flake8-modern-annotations", "flake8-noqa", "flake8-pyproject", "flake8-requirements", "flake8-typechecking-import", "flake8-use-fstring", "mypy", "pep8-naming", "types-PyYAML"] + +[[package]] +name = "urllib3" +version = "2.1.0" +description = "HTTP library with thread-safe connection pooling, file post, and more." +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "urllib3-2.1.0-py3-none-any.whl", hash = "sha256:55901e917a5896a349ff771be919f8bd99aff50b79fe58fec595eb37bbc56bb3"}, + {file = "urllib3-2.1.0.tar.gz", hash = "sha256:df7aa8afb0148fa78488e7899b2c59b5f4ffcfa82e6c54ccb9dd37c1d7b52d54"}, +] + +[package.extras] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] + +[[package]] +name = "wandb" +version = "0.16.1" +description = "A CLI and library for interacting with the Weights & Biases API." +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "wandb-0.16.1-py3-none-any.whl", hash = "sha256:1d7423f92520984585bae9693bb637ae08d3e0c1d75ad4b34215bc44431f114c"}, + {file = "wandb-0.16.1.tar.gz", hash = "sha256:ffe6e8dd8cc8fcd72010c1246fb3d6d226b37c4f111f3f94308a1c0ae28a2fec"}, +] + +[package.dependencies] +appdirs = ">=1.4.3" +Click = ">=7.1,<8.0.0 || >8.0.0" +docker-pycreds = ">=0.4.0" +GitPython = ">=1.0.0,<3.1.29 || >3.1.29" +protobuf = {version = ">=3.19.0,<4.21.0 || >4.21.0,<5", markers = "python_version > \"3.9\" or sys_platform != \"linux\""} +psutil = ">=5.0.0" +PyYAML = "*" +requests = ">=2.0.0,<3" +sentry-sdk = ">=1.0.0" +setproctitle = "*" +setuptools = "*" + +[package.extras] +async = ["httpx (>=0.23.0)"] +aws = ["boto3"] +azure = ["azure-identity", "azure-storage-blob"] +core = ["wandb-core (>=0.17.0b2)"] +gcp = ["google-cloud-storage"] +kubeflow = ["google-cloud-storage", "kubernetes", "minio", "sh"] +launch = ["PyYAML (>=6.0.0)", "awscli", "azure-containerregistry", "azure-identity", "azure-storage-blob", "boto3", "botocore", "chardet", "google-auth", "google-cloud-aiplatform", "google-cloud-artifact-registry", "google-cloud-compute", "google-cloud-storage", "iso8601", "kubernetes", "kubernetes-asyncio", "nbconvert", "nbformat", "optuna", "typing-extensions"] +media = ["bokeh", "moviepy", "numpy", "pillow", "plotly", "rdkit-pypi", "soundfile"] +models = ["cloudpickle"] +perf = ["orjson"] +sweeps = ["sweeps (>=0.2.0)"] + +[[package]] +name = "wcwidth" +version = "0.2.12" +description = "Measures the displayed width of unicode strings in a terminal" +category = "main" +optional = false +python-versions = "*" +files = [ + {file = "wcwidth-0.2.12-py2.py3-none-any.whl", hash = "sha256:f26ec43d96c8cbfed76a5075dac87680124fa84e0855195a6184da9c187f133c"}, + {file = "wcwidth-0.2.12.tar.gz", hash = "sha256:f01c104efdf57971bcb756f054dd58ddec5204dd15fa31d6503ea57947d97c02"}, +] + +[[package]] +name = "webcolors" +version = "1.13" +description = "A library for working with the color formats defined by HTML and CSS." +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "webcolors-1.13-py3-none-any.whl", hash = "sha256:29bc7e8752c0a1bd4a1f03c14d6e6a72e93d82193738fa860cbff59d0fcc11bf"}, + {file = "webcolors-1.13.tar.gz", hash = "sha256:c225b674c83fa923be93d235330ce0300373d02885cef23238813b0d5668304a"}, +] + +[package.extras] +docs = ["furo", "sphinx", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-notfound-page", "sphinxext-opengraph"] +tests = ["pytest", "pytest-cov"] + +[[package]] +name = "webencodings" +version = "0.5.1" +description = "Character encoding aliases for legacy web content" +category = "main" +optional = false +python-versions = "*" +files = [ + {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"}, + {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"}, +] + +[[package]] +name = "websocket-client" +version = "1.7.0" +description = "WebSocket client for Python with low level API options" +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "websocket-client-1.7.0.tar.gz", hash = "sha256:10e511ea3a8c744631d3bd77e61eb17ed09304c413ad42cf6ddfa4c7787e8fe6"}, + {file = "websocket_client-1.7.0-py3-none-any.whl", hash = "sha256:f4c3d22fec12a2461427a29957ff07d35098ee2d976d3ba244e688b8b4057588"}, +] + +[package.extras] +docs = ["Sphinx (>=6.0)", "sphinx-rtd-theme (>=1.1.0)"] +optional = ["python-socks", "wsaccel"] +test = ["websockets"] + +[[package]] +name = "werkzeug" +version = "3.0.1" +description = "The comprehensive WSGI web application library." +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "werkzeug-3.0.1-py3-none-any.whl", hash = "sha256:90a285dc0e42ad56b34e696398b8122ee4c681833fb35b8334a095d82c56da10"}, + {file = "werkzeug-3.0.1.tar.gz", hash = "sha256:507e811ecea72b18a404947aded4b3390e1db8f826b494d76550ef45bb3b1dcc"}, +] + +[package.dependencies] +MarkupSafe = ">=2.1.1" + +[package.extras] +watchdog = ["watchdog (>=2.3)"] + +[[package]] +name = "widgetsnbextension" +version = "4.0.9" +description = "Jupyter interactive widgets for Jupyter Notebook" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "widgetsnbextension-4.0.9-py3-none-any.whl", hash = "sha256:91452ca8445beb805792f206e560c1769284267a30ceb1cec9f5bcc887d15175"}, + {file = "widgetsnbextension-4.0.9.tar.gz", hash = "sha256:3c1f5e46dc1166dfd40a42d685e6a51396fd34ff878742a3e47c6f0cc4a2a385"}, +] + +[metadata] +lock-version = "2.0" +python-versions = "^3.10" +content-hash = "459b7d81e992c0c8cf92210f9bb94937cbaf8524b7bdd112018e4c7b85cdcfc2" diff --git a/classification/pyproject.toml b/classification/pyproject.toml new file mode 100644 index 0000000..a916502 --- /dev/null +++ b/classification/pyproject.toml @@ -0,0 +1,33 @@ +[tool.poetry] +name = "thesis" +version = "0.1.0" +description = "" +authors = ["Tobias Eidelpes "] +readme = "README.md" + +[tool.poetry.dependencies] +python = "^3.10" +flask = "^2.0.3" +apscheduler = "^3.10.0" +albumentations = "^1.3.0" +pandas = "^1.1.5" +onnxruntime = "^1.8.0" +opencv-python = "^4.7.0" +torch = "^2.1.2" +torchvision = "^0.16.2" +numpy = "^1.18.0" +scipy = "^1.11.4" +scikit-learn = "^1.3.2" +Pillow = "^10.1.0" +argparse = "^1.1" +matplotlib = "^3.3.4" +jupyter = "^1.0.0" +wandb = "^0.16.1" +seaborn = "^0.13.0" +onnx = "^1.15.0" +tqdm = "^4.66.1" + + +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api" \ No newline at end of file diff --git a/classification/shell.nix b/classification/shell.nix new file mode 100644 index 0000000..e6a06cd --- /dev/null +++ b/classification/shell.nix @@ -0,0 +1,11 @@ +{ pkgs ? import {} }: + +pkgs.mkShell { + buildInputs = [ + pkgs.python3 + pkgs.poetry + pkgs.libGL + pkgs.glib + ]; + LD_LIBRARY_PATH = "$LD_LIBRARY_PATH:${pkgs.stdenv.cc.cc.lib}/lib:${pkgs.glib.out}/lib:${pkgs.libGL}/lib"; +} diff --git a/presentation/graphics/APpt5-pt95-final.pdf b/presentation/graphics/APpt5-pt95-final.pdf new file mode 100644 index 0000000..e9cc97f Binary files /dev/null and b/presentation/graphics/APpt5-pt95-final.pdf differ diff --git a/presentation/graphics/APpt5-pt95.pdf b/presentation/graphics/APpt5-pt95.pdf new file mode 100644 index 0000000..bec6344 Binary files /dev/null and b/presentation/graphics/APpt5-pt95.pdf differ diff --git a/presentation/graphics/classifier-cam-cropped.pdf b/presentation/graphics/classifier-cam-cropped.pdf new file mode 100644 index 0000000..23e010f Binary files /dev/null and b/presentation/graphics/classifier-cam-cropped.pdf differ diff --git a/presentation/graphics/classifier-cam.pdf b/presentation/graphics/classifier-cam.pdf new file mode 100644 index 0000000..886f213 Binary files /dev/null and b/presentation/graphics/classifier-cam.pdf differ diff --git a/presentation/graphics/classifier-hyp-folds-roc.pdf b/presentation/graphics/classifier-hyp-folds-roc.pdf new file mode 100644 index 0000000..fa59366 Binary files /dev/null and b/presentation/graphics/classifier-hyp-folds-roc.pdf differ diff --git a/presentation/graphics/classifier-hyp-folds.pdf b/presentation/graphics/classifier-hyp-folds.pdf new file mode 100644 index 0000000..8f194da Binary files /dev/null and b/presentation/graphics/classifier-hyp-folds.pdf differ diff --git a/presentation/graphics/classifier-hyp-metrics.pdf b/presentation/graphics/classifier-hyp-metrics.pdf new file mode 100644 index 0000000..b8cada6 Binary files /dev/null and b/presentation/graphics/classifier-hyp-metrics.pdf differ diff --git a/presentation/graphics/classifier-metrics-acc.pdf b/presentation/graphics/classifier-metrics-acc.pdf new file mode 100644 index 0000000..9c934be Binary files /dev/null and b/presentation/graphics/classifier-metrics-acc.pdf differ diff --git a/presentation/graphics/classifier-metrics-loss.pdf b/presentation/graphics/classifier-metrics-loss.pdf new file mode 100644 index 0000000..33c3033 Binary files /dev/null and b/presentation/graphics/classifier-metrics-loss.pdf differ diff --git a/presentation/graphics/classifier-metrics.pdf b/presentation/graphics/classifier-metrics.pdf new file mode 100644 index 0000000..b769bf4 Binary files /dev/null and b/presentation/graphics/classifier-metrics.pdf differ diff --git a/presentation/graphics/houseplant.jpg b/presentation/graphics/houseplant.jpg new file mode 100644 index 0000000..5acc82c Binary files /dev/null and b/presentation/graphics/houseplant.jpg differ diff --git a/presentation/graphics/model_fitness.pdf b/presentation/graphics/model_fitness.pdf new file mode 100644 index 0000000..56fa22c Binary files /dev/null and b/presentation/graphics/model_fitness.pdf differ diff --git a/presentation/graphics/model_fitness_final.pdf b/presentation/graphics/model_fitness_final.pdf new file mode 100644 index 0000000..85a60d4 Binary files /dev/null and b/presentation/graphics/model_fitness_final.pdf differ diff --git a/presentation/graphics/setup.pdf b/presentation/graphics/setup.pdf new file mode 100644 index 0000000..82134d0 Binary files /dev/null and b/presentation/graphics/setup.pdf differ diff --git a/presentation/graphics/val_box_obj_loss.pdf b/presentation/graphics/val_box_obj_loss.pdf new file mode 100644 index 0000000..09d030e Binary files /dev/null and b/presentation/graphics/val_box_obj_loss.pdf differ diff --git a/presentation/graphics/wilted_007.jpg b/presentation/graphics/wilted_007.jpg new file mode 100644 index 0000000..ff5fb62 Binary files /dev/null and b/presentation/graphics/wilted_007.jpg differ diff --git a/presentation/presentation.nav b/presentation/presentation.nav new file mode 100644 index 0000000..75fd4fa --- /dev/null +++ b/presentation/presentation.nav @@ -0,0 +1,71 @@ +\headcommand {\slideentry {0}{0}{1}{1/1}{}{0}} +\headcommand {\beamer@framepages {1}{1}} +\headcommand {\beamer@sectionpages {1}{1}} +\headcommand {\beamer@subsectionpages {1}{1}} +\headcommand {\sectionentry {1}{Introduction}{2}{Introduction}{0}} +\headcommand {\slideentry {1}{0}{1}{2/5}{}{0}} +\headcommand {\beamer@framepages {2}{5}} +\headcommand {\slideentry {1}{0}{2}{6/8}{}{0}} +\headcommand {\beamer@framepages {6}{8}} +\headcommand {\beamer@sectionpages {2}{8}} +\headcommand {\beamer@subsectionpages {2}{8}} +\headcommand {\sectionentry {2}{Methodological Approach}{9}{Methodological Approach}{0}} +\headcommand {\slideentry {2}{0}{1}{9/9}{}{0}} +\headcommand {\beamer@framepages {9}{9}} +\headcommand {\beamer@sectionpages {9}{9}} +\headcommand {\beamer@subsectionpages {9}{9}} +\headcommand {\sectionentry {3}{Prototype Design}{10}{Prototype Design}{0}} +\headcommand {\slideentry {3}{0}{1}{10/14}{}{0}} +\headcommand {\beamer@framepages {10}{14}} +\headcommand {\slideentry {3}{0}{2}{15/15}{}{0}} +\headcommand {\beamer@framepages {15}{15}} +\headcommand {\beamer@sectionpages {10}{15}} +\headcommand {\beamer@subsectionpages {10}{15}} +\headcommand {\sectionentry {4}{Prototype Implementation}{16}{Prototype Implementation}{0}} +\headcommand {\slideentry {4}{0}{1}{16/16}{}{0}} +\headcommand {\beamer@framepages {16}{16}} +\headcommand {\slideentry {4}{0}{2}{17/17}{}{0}} +\headcommand {\beamer@framepages {17}{17}} +\headcommand {\slideentry {4}{0}{3}{18/18}{}{0}} +\headcommand {\beamer@framepages {18}{18}} +\headcommand {\slideentry {4}{0}{4}{19/24}{}{0}} +\headcommand {\beamer@framepages {19}{24}} +\headcommand {\slideentry {4}{0}{5}{25/25}{}{0}} +\headcommand {\beamer@framepages {25}{25}} +\headcommand {\slideentry {4}{0}{6}{26/26}{}{0}} +\headcommand {\beamer@framepages {26}{26}} +\headcommand {\slideentry {4}{0}{7}{27/27}{}{0}} +\headcommand {\beamer@framepages {27}{27}} +\headcommand {\slideentry {4}{0}{8}{28/28}{}{0}} +\headcommand {\beamer@framepages {28}{28}} +\headcommand {\slideentry {4}{0}{9}{29/32}{}{0}} +\headcommand {\beamer@framepages {29}{32}} +\headcommand {\slideentry {4}{0}{10}{33/33}{}{0}} +\headcommand {\beamer@framepages {33}{33}} +\headcommand {\beamer@sectionpages {16}{33}} +\headcommand {\beamer@subsectionpages {16}{33}} +\headcommand {\sectionentry {5}{Evaluation}{34}{Evaluation}{0}} +\headcommand {\slideentry {5}{0}{1}{34/35}{}{0}} +\headcommand {\beamer@framepages {34}{35}} +\headcommand {\slideentry {5}{0}{2}{36/36}{}{0}} +\headcommand {\beamer@framepages {36}{36}} +\headcommand {\slideentry {5}{0}{3}{37/39}{}{0}} +\headcommand {\beamer@framepages {37}{39}} +\headcommand {\beamer@sectionpages {34}{39}} +\headcommand {\beamer@subsectionpages {34}{39}} +\headcommand {\sectionentry {6}{Conclusion}{40}{Conclusion}{0}} +\headcommand {\slideentry {6}{0}{1}{40/44}{}{0}} +\headcommand {\beamer@framepages {40}{44}} +\headcommand {\slideentry {6}{0}{2}{45/52}{}{0}} +\headcommand {\beamer@framepages {45}{52}} +\headcommand {\slideentry {6}{0}{3}{53/53}{}{0}} +\headcommand {\beamer@framepages {53}{53}} +\headcommand {\slideentry {6}{0}{4}{54/54}{}{0}} +\headcommand {\beamer@framepages {54}{54}} +\headcommand {\slideentry {6}{0}{5}{55/55}{}{0}} +\headcommand {\beamer@framepages {55}{55}} +\headcommand {\beamer@partpages {1}{55}} +\headcommand {\beamer@subsectionpages {40}{55}} +\headcommand {\beamer@sectionpages {40}{55}} +\headcommand {\beamer@documentpages {55}} +\headcommand {\gdef \inserttotalframenumber {24}} diff --git a/presentation/presentation.pdf b/presentation/presentation.pdf new file mode 100644 index 0000000..9877fe4 Binary files /dev/null and b/presentation/presentation.pdf differ diff --git a/presentation/presentation.snm b/presentation/presentation.snm new file mode 100644 index 0000000..c7d4e01 --- /dev/null +++ b/presentation/presentation.snm @@ -0,0 +1,6 @@ +\beamer@slide {fig:design}{15} +\beamer@slide {tab:yolo-metrics}{34} +\beamer@slide {tab:yolo-metrics-hyp}{34} +\beamer@slide {fig:classifier-cam}{54} +\beamer@slide {tab:model-metrics}{55} +\beamer@slide {tab:model-metrics-hyp}{55} diff --git a/presentation/presentation.tex b/presentation/presentation.tex new file mode 100644 index 0000000..b5058c6 --- /dev/null +++ b/presentation/presentation.tex @@ -0,0 +1,390 @@ +\documentclass{beamer} + +\beamertemplatenavigationsymbolsempty + +\usetheme{default} +\usecolortheme{dolphin} + +\usepackage{graphicx} +\usepackage{caption} +\usepackage{tikz} +\usepackage{dsfont} +\usepackage{siunitx} +\usepackage{booktabs} +\usepackage[labelformat=empty]{caption} +\usetikzlibrary{shapes,arrows} + +% Define block styles +\tikzstyle{decision} = [diamond, draw, fill=blue!20, text width=4.5em, text badly centered, node distance=3cm, inner sep=0pt] +\tikzstyle{block} = [rectangle, draw, fill=blue!20, text width=5em, text centered, rounded corners, minimum height=4em] +\tikzstyle{line} = [draw, -latex'] +\tikzstyle{cloud} = [draw, ellipse,fill=red!20, node distance=3cm, minimum height=2em] + +\setbeamerfont{caption}{size=\tiny} + +\begin{document} + +\title[Plant Detection and State Classification]{Plant Detection and + State Classification with Machine Learning} +\author{Tobias Eidelpes} +\date{March 12, 2024} + +\begin{frame} + \maketitle +\end{frame} + +\section{Introduction} + +\begin{frame} + \frametitle{Problem Statement} + \begin{itemize} + \setlength{\itemsep}{1.1\baselineskip} + \item Automated detection of water stress \pause + \item Automated watering of household plants \pause + \item Decision-making \emph{in the field} \pause + \item No research so far in this context + \end{itemize} +\end{frame} + +\begin{frame} + \frametitle{Research Questions} + \begin{enumerate} + \setlength{\itemsep}{1.1\baselineskip} + \item How well does the model work in theory and how well in + practice? \pause + \item What are possible reasons for it to work/not work? \pause + \item What are possible improvements to the system in the future? + \end{enumerate} +\end{frame} + +\section{Methodological Approach} + +\begin{frame} + \frametitle{Methods} + \begin{columns}[c] + \column{.5\textwidth} + \begin{enumerate} + \setlength{\itemsep}{1.1\baselineskip} + \item Literature Review + \item Dataset Curation + \item Model Training + \item Optimization + \item Deployment + \item Evaluation + \end{enumerate} + \column{.5\textwidth} + \begin{center} + \includegraphics[width=\textwidth]{graphics/wilted\_007.jpg} + \end{center} + \end{columns} +\end{frame} + +\section{Prototype Design} + +\begin{frame} + \frametitle{Prototype Design: Requirements} \pause + \begin{itemize} + \setlength{\itemsep}{1.1\baselineskip} + \item Detect and Classify \pause + \item Publish Results via REST-API \pause + \item Reasonable Inference Time \pause + \item Reasonable Model Performance + \end{itemize} +\end{frame} + +\begin{frame} + \frametitle{Prototype Design} + \begin{figure}[htbp] + \centerline{\includegraphics[width=0.9\textwidth]{graphics/setup.pdf}} + \label{fig:design} + \end{figure} +\end{frame} + +\section{Prototype Implementation} + +\begin{frame} + \frametitle{Prototype Implementation: YOLOv7n} + \begin{minipage}[bt]{.49\textwidth} + \begin{itemize} + \setlength{\itemsep}{1.1\baselineskip} + \item Pretrained on COCO + \item OID classes \emph{Houseplant} and \emph{Plant} + \item Training Set + \begin{itemize} + \item \num{79204} images + \item \num{284130} bounding boxes + \end{itemize} + \item Validation Set + \begin{itemize} + \item \num{3091} images + \item \num{4092} bounding boxes + \end{itemize} + \end{itemize} + \end{minipage} + \begin{minipage}[bt]{.49\textwidth} + \vspace{.5cm} + \begin{figure} + \begin{center} + \includegraphics[width=.85\textwidth]{graphics/houseplant.jpg} + \caption{Earthy Tones For Fallsurlevif by Flickr User decor8 + under CC BY 2.0} + \end{center} + \end{figure} + \end{minipage} +\end{frame} + +\begin{frame} + \frametitle{Prototype Implementation: YOLOv7n} + \begin{figure}[htbp] + \begin{center} + \includegraphics[width=\textwidth]{graphics/model_fitness.pdf} + \end{center} + \end{figure} +\end{frame} + +\begin{frame} + \frametitle{Prototype Implementation: YOLOv7n} + \begin{figure}[htbp] + \begin{center} + \includegraphics[width=\textwidth]{graphics/val\_box\_obj\_loss.pdf} + \end{center} + \end{figure} +\end{frame} + +\begin{frame} + \frametitle{YOLOv7n Hyperparameter Optimization} \pause + \begin{itemize} + \setlength{\itemsep}{1.1\baselineskip} + \item Mutate 26 out of 30 hyperparameters \pause + \item Parent chosen randomly from top five previous generations \pause + \item 3 epochs per iteration \pause + \item 87 iterations \pause + \item Best with 0.6076 fitness + \end{itemize} +\end{frame} + +\begin{frame} + \frametitle{YOLOv7n Hyperparameter Optimization} + \begin{figure}[htbp] + \begin{center} + \includegraphics[width=\textwidth]{graphics/model_fitness\_final.pdf} + \end{center} + \end{figure} +\end{frame} + +\begin{frame} + \frametitle{Prototype Implementation: ResNet-50} + \begin{minipage}[bt]{.49\textwidth} + \begin{itemize} + \setlength{\itemsep}{1.1\baselineskip} + \item Pretrained on ImageNet + \item Training Set + \begin{itemize} + \item \num{384} healthy + \item \num{384} stressed + \end{itemize} + \item Validation Set + \begin{itemize} + \item \num{68} healthy + \item \num{68} stressed + \end{itemize} + \end{itemize} + \end{minipage} + \begin{minipage}[bt]{.49\textwidth} + \begin{center} + \includegraphics[width=\textwidth]{graphics/classifier-cam-cropped.pdf} + \end{center} + \end{minipage} +\end{frame} + +\begin{frame} + \frametitle{Prototype Implementation: ResNet-50 Accuracy} + \begin{figure}[htbp] + \begin{center} + \includegraphics[width=\textwidth]{graphics/classifier-metrics-acc.pdf} + \caption{\normalsize Maximum validation accuracy of 0.9118 at epoch 27} + \end{center} + \end{figure} +\end{frame} + +\begin{frame} + \frametitle{Prototype Implementation: ResNet-50 Loss} + \begin{figure}[htbp] + \begin{center} + \includegraphics[width=\textwidth]{graphics/classifier-metrics-loss.pdf} + \end{center} + \end{figure} +\end{frame} + +\begin{frame} + \frametitle{ResNet-50 Hyperparameter Optimization} + \begin{itemize} + \setlength{\itemsep}{1.1\baselineskip} + \item Random search \pause + \item 10 epochs per iteration \pause + \item 138 iterations \pause + \item Best with 0.9783 $\mathrm{F}_{1}$-score + \end{itemize} +\end{frame} + +\begin{frame} + \frametitle{ResNet-50 Hyperparameter Optimization} + \begin{figure}[htbp] + \centerline{\includegraphics[width=\textwidth]{graphics/classifier-hyp-metrics.pdf}} + \caption{\normalsize Learning rate and batch size effect on + $\mathrm{F}_{1}$-score} + \end{figure} +\end{frame} + +\section{Evaluation} + +\begin{frame} + \frametitle{YOLOv7n Evaluation} + \begin{itemize} + \setlength{\itemsep}{1.1\baselineskip} + \item Test Set + \begin{itemize} + \item \num{9000} images + \item \num{12238} bounding boxes \pause + \end{itemize} + \end{itemize} + \begin{table}[h] + \centering + \begin{tabular}{lrrrr} + \toprule + {} & Precision & Recall & $\mathrm{F}_1$-score & Support \\ + \midrule + Plant & \num{0.5476} & \num{0.7379} & \num{0.6286} & \num{12238} \\ + \bottomrule + \end{tabular} + \caption{\scriptsize Results for the non-optimized object detection model} + \label{tab:yolo-metrics} + \end{table} + \begin{table}[h] + \centering + \begin{tabular}{lrrrr} + \toprule + {} & Precision & Recall & $\mathrm{F}_1$-score & Support \\ + \midrule + Plant & \num{0.6334} & \num{0.7028} & \num{0.6663} & \num{12238} \\ + \bottomrule + \end{tabular} + \caption{\scriptsize Results for the optimized object detection model} + \label{tab:yolo-metrics-hyp} + \end{table} +\end{frame} + +\begin{frame} + \frametitle{ResNet-50 Evaluation} + \begin{center} + \begin{figure}[htbp] + \includegraphics[width=0.65\textwidth]{graphics/classifier-hyp-folds.pdf} + \caption{\scriptsize ROC curves and AUC for classifier 10-fold + cross-validation} + \end{figure} + \end{center} +\end{frame} + +\begin{frame} + \frametitle{Aggregate Model Evaluation} + \begin{itemize} + \setlength{\itemsep}{1.1\baselineskip} + \item Pre-annotated Test Set + \begin{itemize} + \item \num{640} images + \item \num{766} bounding boxes healthy + \item \num{494} bounding boxes stressed \pause + \end{itemize} + \item Non-optimized model $\mathrm{mAP} = 0.3581$ \pause + \item Optimized model $\mathrm{mAP} = 0.3838$ + \end{itemize} +\end{frame} + +\section{Conclusion} + +\begin{frame} + \frametitle{Limitations and Conclusions} + \begin{itemize} + \setlength{\itemsep}{0.75\baselineskip} + \item I am \emph{not} an expert labeler! \pause + \item Object detection performs well (mAP 0.5727) \pause + \item Optimized detector worse than non-optimized \pause + \item Inconsistent ground truth \pause + \item Robust classification + \end{itemize} +\end{frame} + +\begin{frame} + \frametitle{Research Questions Revisited} + \begin{enumerate} + \setlength{\itemsep}{1.1\baselineskip} + \item How well does the model work in theory and how well in practice? \pause + \begin{itemize} + \item Plant detection comparable to benchmarks \pause + \item Impressive stress classification \pause + \end{itemize} + \item What are possible reasons for it to work/not work? \pause + \begin{itemize} + \item Dataset curation \pause + \end{itemize} + \item What are possible improvements to the system in the future? \pause + \begin{itemize} + \item Use more computational resources \pause + \item Expert labeling + \end{itemize} + \end{enumerate} +\end{frame} + +\begin{frame} + \centering + \Large + Thank you for your attention! +\end{frame} + +\begin{frame} + \frametitle{ResNet-50 CAM} + \begin{figure}[htbp] + \centerline{\includegraphics[width=0.9\textwidth]{graphics/classifier-cam.pdf}} + \caption[]{\label{fig:classifier-cam} Top-right: CAM for + \emph{healthy}. Bot-right: CAM for \emph{stressed}} + \end{figure} +\end{frame} + +\begin{frame} + \frametitle{Aggregate Model Evaluation} + \begin{table} + \centering + \begin{tabular}{lrrrr} + \toprule + {} & Precision & Recall & $\mathrm{F}_{1}$-score & Support \\ + \midrule + Healthy & \num{0.665} & \num{0.554} & \num{0.604} & \num{766} \\ + Stressed & \num{0.639} & \num{0.502} & \num{0.562} & \num{494} \\ + Weighted Avg & \num{0.655} & \num{0.533} & \num{0.588} & \num{1260} \\ + \bottomrule + \end{tabular} + \caption{Metrics for the non-optimized aggregate model} + \label{tab:model-metrics} + \end{table} + \begin{table} + \centering + \begin{tabular}{lrrrr} + \toprule + {} & Precision & Recall & $\mathrm{F}_{1}$-score & Support \\ + \midrule + Healthy & 0.711 & 0.555 & 0.623 & 766 \\ + Stressed & 0.570 & 0.623 & 0.596 & 494 \\ + Weighted Avg & 0.656 & 0.582 & 0.612 & 1260 \\ + \bottomrule + \end{tabular} + \caption{Metrics for the optimized aggregate model} + \label{tab:model-metrics-hyp} + \end{table} +\end{frame} + + +\end{document} +%%% Local Variables: +%%% mode: LaTeX +%%% TeX-master: t +%%% End: diff --git a/thesis/graphics/classifier-hyp-metrics.pdf b/thesis/graphics/classifier-hyp-metrics.pdf index 9e1968b..b8cada6 100644 Binary files a/thesis/graphics/classifier-hyp-metrics.pdf and b/thesis/graphics/classifier-hyp-metrics.pdf differ diff --git a/thesis/graphics/classifier-metrics-acc.pdf b/thesis/graphics/classifier-metrics-acc.pdf new file mode 100644 index 0000000..9c934be Binary files /dev/null and b/thesis/graphics/classifier-metrics-acc.pdf differ diff --git a/thesis/graphics/classifier-metrics-loss.pdf b/thesis/graphics/classifier-metrics-loss.pdf new file mode 100644 index 0000000..33c3033 Binary files /dev/null and b/thesis/graphics/classifier-metrics-loss.pdf differ diff --git a/thesis/graphics/classifier-metrics.pdf b/thesis/graphics/classifier-metrics.pdf index 8ffcffc..27f24c9 100644 Binary files a/thesis/graphics/classifier-metrics.pdf and b/thesis/graphics/classifier-metrics.pdf differ diff --git a/thesis/thesis.pdf b/thesis/thesis.pdf index a0b7fec..b1258b7 100644 Binary files a/thesis/thesis.pdf and b/thesis/thesis.pdf differ diff --git a/thesis/thesis.tex b/thesis/thesis.tex index 532f369..baaa823 100644 --- a/thesis/thesis.tex +++ b/thesis/thesis.tex @@ -64,7 +64,7 @@ \setadvisor{Ao.Univ.-Prof. Dr.}{Horst Eidenberger}{}{male} \setregnumber{01527193} -\setdate{27}{12}{2023} % Set date with 3 arguments: {day}{month}{year}. +\setdate{30}{12}{2023} % Set date with 3 arguments: {day}{month}{year}. \settitle{\thesistitle}{Plant Detection and State Classification with Machine Learning} % Sets English and German version of the title (both can be English or German). % Select the thesis type: bachelor / master / doctor / phd-school. @@ -190,36 +190,90 @@ Challenge} \begin{kurzfassung} Wassermangel in Zimmerpflanzen kann ihr Wachstum negativ - beeinflussen. Derzeitige Lösungen zur Überwachung von Wasserstress - sind hauptsächlich für landwirtschaftliche Anwendungen - vorgesehen. Wir präsentieren den ersten Deep-Learning-basierten - Prototyp zur Klassifizierung des Wasserstresslevels gängiger - Zimmerpflanzen. Unser zweistufiger Ansatz besteht aus einem - Erkennungs- und einem Klassifizierungsschritt und wird anhand eines - eigens erstellten Datensatzes evaluiert. Die Parameter des Modells - werden mit gängigen Methoden der Hyperparameteroptimierung - ausgewählt. Der Prototyp wird auf einem embedded Computer - bereitgestellt, der eine autonome Pflanzenüberwachung - ermöglicht. Die Vorhersagen unseres Modells werden kontinuierlich - über eine API veröffentlicht, wodurch nachgelagerte - Bewässerungssysteme automatisch Zimmerpflanzen ohne menschliche - Intervention bewässern können. Unser optimiertes Modell erreicht - einen mAP-Wert von \num{0.3838}. + beeinflussen. Bestehende Lösungen zur Überwachung von Wasserstress + sind in erster Linie für landwirtschaftliche Kontexte gedacht, bei + denen nur eine kleine Auswahl an Pflanzen von Interesse ist. Bislang + gab es keine Forschung im Haushaltskontext, wo die Vielfalt der + Pflanzen wesentlich größer ist und es daher schwieriger ist, + Wasserstress zu erfassen. Außerdem beinhalten derzeitige Ansätze + entweder keinen eigenen Pflanzenerkennungsschritt oder es kommt + traditionelle Feature Extraction zur Anwendung. Wir entwickeln einen + Prototyp zur Erkennung und nachfolgender Klassifizierung des + Wasserstresses von Pflanzen, der ausschließlich auf Deep Learning + basiert. + + Unser zweistufiger Ansatz besteht aus einem Erkennungs- und einem + Klassifizierungsschritt. In der Erkennungsphase werden die Pflanzen + identifiziert und aus dem Originalbild ausgeschnitten. Die + Ausschnitte werden an das Klassifizierungsmodell weitergeleitet, das + die Wahrscheinlichkeit für Wasserstress ausgibt. Wir verwenden + Transfer Learning und führen die Feinabstimmung der beiden Modelle + anhand zweier Datensätze durch. Jedes Modell wird mithilfe einer + Hyperparameter-Suche optimiert und zunächst einzeln und dann im + Aggregat auf einem eigens erstellten Datensatz evaluiert. Wir + stellen beide Modelle auf einem Nvidia Jetson Nano bereit, der in + der Lage ist, Pflanzen autonom über eine angeschlossene Kamera zu + klassifizieren. Die Ergebnisse der Pipeline werden kontinuierlich + über eine API veröffentlicht. Nachgeschaltete Bewässerungssysteme + können die Vorhersagen zum Wasserstress nutzen, um die Hauspflanzen + ohne menschliches Zutun zu bewässern. + + Die beiden Modelle zusammengenommen erreichen einen mAP-Wert von + \num{0.3581} in der nicht optimierten Version. Beide Modelle sind in + der Lage, mit verschiedenen Lichtverhältnissen, verschiedenen + Blickwinkeln und einer Vielfalt an Pflanzen umzugehen. Die + optimierte Pipeline erreicht einen mAP-Wert von \num{0.3838}. Im + Vergleich zur nicht optimierten Version ist die Genauigkeit für + nicht gestresste Pflanzen höher, aber geringer für die gestresste + Klasse. Die Spezifität für die nicht gestresste Klasse bleibt im + Vergleich zur nicht optimierten Basislinie auf demselben Niveau, ist + aber um \num{12.1} Prozentpunkte höher für die gestresste + Klasse. Das gewichtete harmonische Mittel ($F_{1}$-score) für beide + Klassen konnte um \num{2.4} Prozentpunkte verbessert werden. Diese + Ergebnisse zeigen, dass unser zweistufiger Ansatz funktioniert und + ein vielversprechender erster Schritt zur Klassifizierung des + Zustands von Zimmerpflanzen ist. \end{kurzfassung} \begin{abstract} Water deficiency in household plants can adversely affect growth. Existing solutions to monitor water stress are primarily - intended for agricultural contexts. We present the first deep - learning based prototype to classify water stress of common - household plants. Our two-stage approach consists of a detection and - a classification step and is evaluated on a new dataset. The model - parameters are optimized with a hyperparameter search. The prototype - is deployed to an embedded device enabling autonomous plant - monitoring. The predictions of our model are published continuously - via an API, allowing downstream watering systems to automatically - water household plants without human intervention. Our optimized - model achieves a mAP of \num{0.3838} on unseen images. + intended for agricultural contexts where only a small selection of + plants are of interest. To date, there has been no research in + household settings where the variety of plants is considerably + higher and it is thus more difficult to obtain accurate measures of + water stress. Furthermore, current approaches either do not detect + plants in images first or use traditional feature extraction for + plant detection. We develop a prototype to detect plants and + classify them into water-stressed or not using deep learning based + methods exclusively. + + Our two-stage approach consists of a detection and a classification + step. In the detection step, plants are identified and cut out from + the original image. The cutouts are passed to the classifier which + outputs a probability for water stress. We use transfer learning to + start from a robust base and fine-tune both models for their + respective tasks. Each model is optimized using hyperparameter + optimization and first evaluated individually and then in aggregate + on a custom dataset. We deploy both models to an Nvidia Jetson Nano + which is able to survey plants autonomously via an attached + camera. The results of the pipeline are published continuously via + an API. Downstream watering systems can use the water stress + predictions to water the plants without human intervention. + + The two models in aggregate achieve a mAP of \num{0.3581} for the + non-optimized version. Both constituent models have robust feature + extraction capabilities and are able to cope with various lighting + conditions, different angles and a wide variety of household + plants. The optimized pipeline achieves a mAP of \num{0.3838} on + unseen images with higher precision for the non-stressed but lower + precision for the stressed class. Recall for the non-stressed class + remains at the same level compared to the non-optimized baseline but + is \num{12.1} percentage points higher for the stressed class. The + weighted $F_{1}$-score across both classes was improved by \num{2.4} + percentage points. These results show that our two-stage approach is + viable and a promising first step for plant state classification for + household plants. \end{abstract} % Select the language of the thesis, e.g., english or naustrian. @@ -466,7 +520,7 @@ models. Chapter~\ref{chap:implementation} expands on how the datasets are used during training as well as how the prototype publishes its classification results. Chapter~\ref{chap:evaluation} shows the results of the testing phases as well as the performance of the -aggregate model. Futhermore, the results are compared with the +aggregate model. Furthermore, the results are compared with the expectations and it is discussed whether they are explainable in the context of the task at hand as well as benchmark results from other datasets (\gls{coco} \cite{lin2015}). Chapter~\ref{chap:conclusion} @@ -496,12 +550,14 @@ The term machine learning was first used by \textcite{samuel1959} in 1959 in the context of teaching a machine how to play the game Checkers. \textcite{mitchell1997a} defines learning in the context of programs as: -\begin{quote} + +\begin{quote}{\cite[p.2]{mitchell1997a}} A computer program is said to \textbf{learn} from experience $E$ with respect to some class of tasks $T$ and performance measure $P$, if its performance at tasks in $T$, as measured by $P$, improves - with experience $E$. \cite[p.2]{mitchell1997a} + with experience $E$. \end{quote} + In other words, if the aim is to learn to win at a game, the performance measure $P$ is defined as the ability to win at that game. The tasks in $T$ are playing the game multiple times, and the @@ -509,7 +565,7 @@ experience $E$ is gained by letting the program play the game against itself. Machine learning is thought to be a sub-field of \gls{ai}. \gls{ai} is -a more general term for the scientific endeavour of creating things +a more general term for the scientific endeavor of creating things which possess the kind of intelligence we humans have. Since those things will not have been created \emph{naturally}, their intelligence is termed \emph{artificial}. Within the field of \gls{ai} there have @@ -628,7 +684,7 @@ The earliest attempts at describing learning machines were by \textcite{mcculloch1943} with the idea of the \emph{perceptron}. This idea was implemented in a more general sense by \textcite{rosenblatt1957,rosenblatt1962} as a physical machine. At its -core, the perceptron is the simplest artifical neural network with +core, the perceptron is the simplest artificial neural network with only one neuron in the center. The neuron takes all its inputs, aggregates them with a weighted sum and outputs 1 if the result is above some threshold $\theta$ and 0 if it is not (see @@ -648,7 +704,7 @@ variables. Due to the inherent limitations of perceptrons to only be able to classify linearly separable data, \glspl{mlp} are the bedrock of -modern artifical neural networks. By adding an input layer, a hidden +modern artificial neural networks. By adding an input layer, a hidden layer, and an output layer as well as requiring the activation function of each neuron to be non-linear, a \gls{mlp} can classify also non-linear data. Every neuron in each layer is fully connected to @@ -657,7 +713,7 @@ straightforward case of a feedforward network. Figure~\ref{fig:neural-network} shows the skeleton of a \gls{mlp}. -There are two types of artifical neural networks: feedforward and +There are two types of artificial neural networks: feedforward and recurrent networks. Their names refer to the way information flows through the network. In a feedforward network, the information enters the network and flows only uni-directionally to the output nodes. In a @@ -700,7 +756,7 @@ The simplest activation function is the identity function. It is defined as \begin{equation} \label{eq:identity} - g(x) = x + g(x) = x. \end{equation} If all layers in an artificial neural network use the identity @@ -750,14 +806,14 @@ logistic function in machine learning. It is defined as \begin{equation} \label{eq:sigmoid} - \sigma(x) = \frac{1}{1 + e^{-x}} + \sigma(x) = \frac{1}{1 + e^{-x}}. \end{equation} It has a characteristic S-shaped curve, mapping each input value to a number between $0$ and $1$, regardless of input size. This \emph{squashing} property is particularly desirable for binary classification problems because the outputs can be interpreted as -probabilities. Additionally to the squashing propery, it is also a +probabilities. Additionally to the squashing property, it is also a saturating function because large values map to $1$ and very small values to $0$. If a learning algorithm has to update the weights in the network, saturated neurons are very inefficient and difficult to @@ -805,8 +861,8 @@ state, the model's capability of learning new patterns is diminished. To address this problem, there are two possibilities. One solution is to make sure that the learning rate is not set too high, which reduces the problem but does not fully remove it. Another -solution is to use one of the several variants of the ReLU function -such as leaky \gls{relu}, \gls{elu}, and \gls{silu}. +solution is to use one of the several variants of the \gls{relu} +function such as leaky \gls{relu}, \gls{elu}, and \gls{silu}. In recent years, the \gls{relu} function has become the most popular activation function for deep neural networks and is recommended as the @@ -959,15 +1015,15 @@ summation of the pixels above and to the left of it. This representation allows them to quickly and efficiently calculate Haar-like features. -The Haar-like features are passed to a modified AdaBoost -algorithm \cite{freund1995} which only selects the (presumably) most -important features. At the end there is a cascading stage of -classifiers where regions are only considered further if they are -promising. Every additional classifier adds complexity, but once a -classifier rejects a sub-window, the processing stops and the -algorithm moves on to the next window. Despite their final structure -containing 32 classifiers, the sliding-window approach is fast and -achieves comparable results to the state of the art in 2001. +The Haar-like features are passed to a modified AdaBoost algorithm +\cite{freund1995} which only selects the (presumably) most important +features. At the end there is a cascading stage of classifiers where +regions are only considered further if they are promising. Every +additional classifier adds complexity, but once a classifier rejects a +sub-window, the processing stops and the algorithm moves on to the +next window. Despite their final structure containing \num{32} +classifiers, the sliding-window approach is fast and achieves +comparable results to the state of the art in 2001. \subsubsection{HOG Detector} \label{sssec:obj-hog} @@ -987,12 +1043,13 @@ are then passed as a feature vector to a classifier. \textcite{dalal2005} successfully use the \gls{hog} with a linear \gls{svm} for classification to detect humans in images. They work -with images of 64 by 128 pixels and make sure that the image contains -a margin of 16 pixels around the person. Decreasing the border by -either enlarging the person or reducing the overall image size results -in worse performance. Unfortunately, their method is far from being -able to process images in real time—a $320$ by $240$ image takes -roughly a second to process. +with images of \num{64} by \num{128} pixels and make sure that the +image contains a margin of \num{16} pixels around the +person. Decreasing the border by either enlarging the person or +reducing the overall image size results in worse +performance. Unfortunately, their method is far from being able to +process images in real time—a $320$ by $240$ image takes roughly a +second to process. \subsubsection{Deformable Part-Based Model} \label{sssec:obj-dpm} @@ -1028,20 +1085,21 @@ corresponding \gls{cnn} layer. \label{ssec:theory-dl-based} After the publication of the \gls{dpm}, the field of object detection -did not make significant advances regarding speed or accuracy. Only -the (re-)introduction of \glspl{cnn} by \textcite{krizhevsky2012} with -their AlexNet architecture and their subsequent win of the -\gls{ilsvrc} 2012 gave the field a new influx of ideas. The -availability of the 12 million labeled images in the ImageNet dataset -\cite{deng2009} allowed a shift from focusing on better methods to -being able to use more data to train models. Earlier models had -difficulties with making use of the large dataset since training was -unfeasible. AlexNet, however, provided an architecture which was able -to be trained on two \glspl{gpu} within 6 days. For an in depth -overview of AlexNet see section~\ref{sssec:theory-alexnet}. Object -detection networks from 2014 onward either follow a \emph{one-stage} -or \emph{two-stage} detection approach. The following sections go into -detail about each model category. +did not make significant advances regarding speed or accuracy until +2012. Only the (re-)introduction of \glspl{cnn} by +\textcite{krizhevsky2012} with their AlexNet architecture and their +subsequent win of the \gls{ilsvrc} 2012 gave the field a new influx of +ideas. The availability of the \num{12e6} labeled images in the +ImageNet dataset \cite{deng2009} allowed a shift from focusing on +better methods to being able to use more data to train models. Earlier +models had difficulties with making use of the large dataset since +training was unfeasible. AlexNet, however, provided an architecture +which was able to be trained on two \glspl{gpu} within six days. For +an in depth overview of AlexNet see +section~\ref{sssec:theory-alexnet}. Object detection networks from +2014 onward either follow a \emph{one-stage} or \emph{two-stage} +detection approach. The following sections go into detail about each +model category. \subsection{Two-Stage Detectors} \label{ssec:theory-two-stage} @@ -1059,7 +1117,7 @@ often not as efficient as one-stage detectors. \textcite{girshick2014} were the first to propose using feature representations of \glspl{cnn} for object detection. Their approach -consists of generating around $2000$ region proposals and passing +consists of generating around \num{2000} region proposals and passing these on to a \gls{cnn} for feature extraction. The fixed-length feature vector is used as input for a linear \gls{svm} which classifies the region. They name their method R-\gls{cnn}, where the R @@ -1067,17 +1125,17 @@ stands for region. R-\gls{cnn} uses selective search to generate region proposals \cite{uijlings2013}.The authors use selective search's \emph{fast -mode} to generate the $2000$ proposals and warp (i.e. aspect ratios -are not retained) each proposal into the image dimensions required by -the \gls{cnn}. The \gls{cnn}, which matches the architecture of -AlexNet \cite{krizhevsky2012}, generates a $4096$-dimensional feature -vector and each feature vector is scored by a linear \gls{svm} for -each class. Scored regions are selected/discarded by comparing each -region to other regions within the same class and rejecting them if -there exists another region with a higher score and greater \gls{iou} -than a threshold. The linear \gls{svm} classifiers are trained to only -label a region as positive if the overlap, as measured by \gls{iou}, -is above $0.3$. +mode} to generate the \num{2000} proposals and warp (i.e. aspect +ratios are not retained) each proposal into the image dimensions +required by the \gls{cnn}. The \gls{cnn}, which matches the +architecture of AlexNet \cite{krizhevsky2012}, generates a +\num{4096}-dimensional feature vector and each feature vector is +scored by a linear \gls{svm} for each class. Scored regions are +selected/discarded by comparing each region to other regions within +the same class and rejecting them if there exists another region with +a higher score and greater \gls{iou} than a threshold. The linear +\gls{svm} classifiers are trained to only label a region as positive +if the overlap, as measured by \gls{iou}, is above $0.3$. While the approach of generating region proposals is not new, using a \gls{cnn} purely for feature extraction is. Unfortunately, R-\gls{cnn} @@ -1123,7 +1181,7 @@ set at a \gls{map} of 59.2\%. Fast R-\gls{cnn} was proposed by \textcite{girshick2015a} to fix the three main problems R-\gls{cnn} and \gls{spp}-net have. The first problem is that the training for both models is -multi-stage. R-\gls{cnn} finetunes the convolutional network which is +multi-stage. R-\gls{cnn} fine-tunes the convolutional network which is responsible for feature extraction and then trains \glspl{svm} to classify the feature vectors. The third stage consists of training the bounding box regressors. The second problem is the training time which @@ -1134,10 +1192,10 @@ the convolutional network) upwards of \qty{13}{\s\per image}. Fast R-\gls{cnn} deals with these problems by having an architecture which allows it to take in images and object proposals at once and process them simultaneously to arrive at the results. The outputs of -the network are the class an object proposal belongs to and 4 scalar -values representing the bounding box of the object. Unfortunately, -this approach still requires a separate object proposal generator such -as selective search \cite{uijlings2013}. +the network are the class an object proposal belongs to and four +scalar values representing the bounding box of the +object. Unfortunately, this approach still requires a separate object +proposal generator such as selective search \cite{uijlings2013}. \subsubsection{Faster R-\gls{cnn}} \label{sssec:theory-faster-rcnn} @@ -1192,14 +1250,14 @@ with the layer beneath it via element-wise addition and convolved with a one by one convolutional layer to reduce channel dimensions and to smooth out potential artifacts introduced during the upsampling step. The results of that operation constitute the new \emph{top - layer} and the process continues with the layer below it until the +layer} and the process continues with the layer below it until the finest resolution feature map is generated. In this way, the features of the different layers at different scales are fused to obtain a feature map with high semantic information but also high spatial information. \textcite{lin2017} report results on \gls{coco} with a \gls{map}@0.5 -of 59.1\% with a Faster R-\gls{cnn} structure and a ResNet-101 +of 59.1\% with a Faster R-\gls{cnn} structure and a \gls{resnet}-101 backbone. Their submission does not include any specific improvements such as hard negative mining \cite{shrivastava2016} or data augmentation. @@ -1302,7 +1360,7 @@ on examples which are harder to achieve a good confidence score on. \textcite{lin2017b} implement their focal loss with a simple one-stage detector called \emph{RetinaNet}. It makes use of previous advances in object detection and classification by including a \gls{fpn} on top of -a ResNet \cite{he2016} as the backbone and using anchors for the +a \gls{resnet} \cite{he2016} as the backbone and using anchors for the different levels in the feature pyramid. Attached to the backbone are two subnetworks which classify anchor boxes and regress them to the ground truth boxes. The results are that the RetinaNet-101-500 version @@ -1416,23 +1474,23 @@ increases the amount of feature maps to $16$ which aims to increase the richness of the learned representations. Another pooling layer follows which reduces the size of each of the $16$ feature maps to five by five pixels. A dense block of three fully-connected layers of -120, 84 and 10 neurons respectively serves as the actual classifier in -the network. The last layer uses the euclidean \gls{rbf} to compute -the class an image belongs to (0-9 digits). +120, 84 and 10 neurons serves as the actual classifier in the +network. The last layer uses the euclidean \gls{rbf} to compute the +class an image belongs to (0-9 digits). The performance of LeNet-5 was measured on the \gls{mnist} database -which consists of $70000$ labeled images of handwritten digits. The -\gls{mse} on the test set is 0.95\%. This result is impressive -considering that character recognition with a \gls{cnn} had not been -done before. However, standard machine learning methods of the time, -such as manual feature engineering and \glspl{svm}, achieved a similar -error rate, even though they are much more memory-intensive. LeNet-5 -was conceived to take advantage of the (then) large \gls{mnist} -database. Since there were not many datasets available at the time, -especially with more samples than in the \gls{mnist} database, -\glspl{cnn} were not widely used even after their viability had been -demonstrated by \textcite{lecun1998}. Only in 2012 -\textcite{krizhevsky2012} reintroduced \glspl{cnn} (see +which consists of \num{70000} labeled images of handwritten +digits. The \gls{mse} on the test set is 0.95\%. This result is +impressive considering that character recognition with a \gls{cnn} had +not been done before. However, standard machine learning methods of +the time, such as manual feature engineering and \glspl{svm}, achieved +a similar error rate, even though they are much more +memory-intensive. LeNet-5 was conceived to take advantage of the +(then) large \gls{mnist} database. Since there were not many datasets +available at the time, especially with more samples than in the +\gls{mnist} database, \glspl{cnn} were not widely used even after +their viability had been demonstrated by \textcite{lecun1998}. Only in +2012 \textcite{krizhevsky2012} reintroduced \glspl{cnn} (see section~\ref{ssec:theory-dl-based}) and since then most state-of-the-art image classification methods have used them. @@ -1479,7 +1537,7 @@ maximum values are then put back into each two by two area (depending on the kernel size). This process loses information because a max-pooling layer is not invertible. The subsequent \gls{relu} function can be easily inverted because negative values are squashed -to zero and and positive values are retained. The final deconvolution +to zero and positive values are retained. The final deconvolution operation concerns the convolutional layer itself. In order to \emph{reconstruct} the original spatial dimensions (before convolution), a transposed convolution is performed. This process @@ -1520,7 +1578,7 @@ other and a \emph{stem} with convolutions at the beginning as well as two auxiliary classifiers which help retain the gradient during backpropagation. The auxiliary classifiers are only used during training. The authors submitted multiple model versions to the 2004 -\gls{ilsvrc} and their ensemble prediction model consisting of 7 +\gls{ilsvrc} and their ensemble prediction model consisting of seven GoogleNets achieved a top-5 error rate of 6.67\%, which resulted in first place. @@ -1573,21 +1631,21 @@ section~\ref{sec:methods-classification}. \label{sssec:theory-densenet} The authors of DenseNet \cite{huang2017} go one step further than -ResNets by connecting every convolutional layer to every other layer -in the chain. Previously, each layer was connected in sequence with -the one before and the one after it. Residual connections establish a -link between the previous layer and the next one but still do not -always propagate enough information forward. These \emph{shortcut -connections} from earlier layers to later layers are thus only taking -place in an episodic way for short sections in the chain. DenseNets -are structured in a way such that every layer receives the feature map -of every previous layer as input. In ResNets, information from -previous layers is added on to the next layer via element-wise -addition. DenseNets concatenate the features of the previous -layers. The number of feature maps per layer has to be kept low so -that the subsequent layers can still process their inputs. Otherwise, -the last layer in each dense block would receive too many channels -which increases computational complexity. +\glspl{resnet} by connecting every convolutional layer to every other +layer in the chain. Previously, each layer was connected in sequence +with the one before and the one after it. Residual connections +establish a link between the previous layer and the next one but still +do not always propagate enough information forward. These +\emph{shortcut connections} from earlier layers to later layers are +thus only taking place in an episodic way for short sections in the +chain. DenseNets are structured in a way such that every layer +receives the feature map of every previous layer as input. In +\glspl{resnet}, information from previous layers is added on to the +next layer via element-wise addition. DenseNets concatenate the +features of the previous layers. The number of feature maps per layer +has to be kept low so that the subsequent layers can still process +their inputs. Otherwise, the last layer in each dense block would +receive too many channels which increases computational complexity. The authors construct their network from multiple dense blocks which are connected via a batch normalization layer, a one by one @@ -1919,14 +1977,14 @@ was trained with a dataset containing images of maize, okra, and soybean at different stages of growth and under stress and no stress. The researchers did not include an object detection step before image classification and compiled a fairly small dataset of -$1200$ images. Of the three models, GoogLeNet beat the other two with -a sizable lead at a classification accuracy of >94\% for all three -types of crop. The authors attribute its success to its inherently -deeper structure and application of multiple convolutional layers at -different stages. Unfortunately, all of the images were taken at the -same $\ang{45}\pm\ang{5}$ angle and it stands to reason that the models -would perform significantly worse on images taken under different -conditions. +\num{1200} images. Of the three models, GoogLeNet beat the other two +with a sizable lead at a classification accuracy of >94\% for all +three types of crop. The authors attribute its success to its +inherently deeper structure and application of multiple convolutional +layers at different stages. Unfortunately, all of the images were +taken at the same $\ang{45}\pm\ang{5}$ angle and it stands to reason +that the models would perform significantly worse on images taken +under different conditions. \textcite{ramos-giraldo2020} detected water stress in soybean and corn crops with a pretrained model based on DenseNet-121 (see @@ -1949,7 +2007,7 @@ classification scores on corn and soybean with a low-cost setup. \textcite{azimi2020} demonstrate the efficacy of deep learning models versus classical machine learning models on chickpea plants. The authors created their own dataset in a laboratory setting for stressed -and non-stressed plants. They acquired $8000$ images at eight +and non-stressed plants. They acquired \num{8000} images at eight different angles in total. For the classical machine learning models, they extracted feature vectors using \gls{sift} and \gls{hog}. The features are fed into three classical machine learning models: @@ -1957,30 +2015,28 @@ features are fed into three classical machine learning models: algorithm. On the deep learning side, they used their own \gls{cnn} architecture and the pretrained ResNet-18 (see section~\ref{sssec:theory-resnet}) model. The accuracy scores for the -classical models was in the range of $\qty{60}{\percent}$ to -$\qty{73}{\percent}$ with the \gls{svm} outperforming the two -others. The \gls{cnn} achieved higher scores at $\qty{72}{\percent}$ -to $\qty{78}{\percent}$ and ResNet-18 achieved the highest scores at -$\qty{82}{\percent}$ to $\qty{86}{\percent}$. The results clearly show -the superiority of deep learning over classical machine learning. A -downside of their approach lies in the collection of the images. The -background in all images was uniformly white and the plants were -prominently placed in the center. It should, therefore, not be assumed -that the same classification scores can be achieved on plants in the -field with messy and noisy backgrounds as well as illumination changes -and so forth. +classical models was in the range of 60\% to 73\% with the \gls{svm} +outperforming the two others. The \gls{cnn} achieved higher scores at +72\% to 78\% and ResNet-18 achieved the highest scores at 82\% to +86\%. The results clearly show the superiority of deep learning over +classical machine learning. A downside of their approach lies in the +collection of the images. The background in all images was uniformly +white and the plants were prominently placed in the center. It should, +therefore, not be assumed that the same classification scores can be +achieved on plants in the field with messy and noisy backgrounds as +well as illumination changes and so forth. \textcite{venal2019} combine a standard \gls{cnn} architecture with a \gls{svm} for classification. The \gls{cnn} acts as a feature extractor and instead of using the last fully-connected layers of an off-the-shelf \gls{cnn}, they replace them with a \gls{svm}. They use this classifier to determine which biotic or abiotic stresses soybeans -suffer from. Their dataset consists of $65184$ $64$ by $64$ RGB -images of which around $40000$ were used for training and $6000$ for -testing. All images show a close-up of a soybean leaf. Their \gls{cnn} -architecture makes use of three Inception modules (see -section~\ref{sssec:theory-googlenet}) with \gls{se} blocks and -\gls{bn} layers in-between. Their model achieves an average +suffer from. Their dataset consists of \num{65184} $64$ by $64$ RGB +images of which around \num{40000} were used for training and +\num{6000} for testing. All images show a close-up of a soybean +leaf. Their \gls{cnn} architecture makes use of three Inception +modules (see section~\ref{sssec:theory-googlenet}) with \gls{se} +blocks and \gls{bn} layers in-between. Their model achieves an average $\mathrm{F}_1$-score of 97\% and an average accuracy of 97.11\% on the test set. Overall, the hybrid structure of their model is promising, but it is not clear why only using the \gls{cnn} as a feature @@ -2509,8 +2565,8 @@ phases, we will list a small selection of them. \item[HSV-saturation] Randomly change the saturation of the color channels. \item[HSV-value] Randomly change the value of the color channels. -\item[Translation] Randomly \emph{translate}, that is, move the image - by a specified amount of pixels. +\item[Translation] Randomly \emph{translate}, i.e., move the image by + a specified amount of pixels. \item[Scaling] Randomly scale the image up and down by a factor. \item[Rotation] Randomly rotate the image. \item[Inversion] Randomly flip the image along the $x$ or the @@ -2622,7 +2678,7 @@ nor recall change materially during training. In fact, precision starts to decrease from the beginning, while recall experiences a barely noticeable increase. Taken together with the box and object loss from figure~\ref{fig:box-obj-loss}, we speculate that the -pre-trained model already generalizes well to plant detection because +pretrained model already generalizes well to plant detection because one of the categories in the \gls{coco} \cite{lin2015} dataset is \emph{potted plant}. Any further training solely impacts the confidence of detection but does not lead to higher detection @@ -2840,14 +2896,14 @@ which is hyperparameter optimization \cite{bergstra2012}. \toprule Parameter & Values \\ \midrule - optimizer & adam, sgd \\ - batch size & 4, 8, 16, 32, 64 \\ - learning rate & 0.0001, 0.0003, 0.001, 0.003, 0.01, 0.1 \\ - step size & 2, 3, 5, 7 \\ - gamma & 0.1, 0.5 \\ - beta one & 0.9, 0.99 \\ - beta two & 0.5, 0.9, 0.99, 0.999 \\ - eps & 0.00000001, 0.1, 1 \\ + Optimizer & Adam, \gls{sgd} \\ + Batch Size & 4, 8, 16, 32, 64 \\ + Learning Rate & 0.0001, 0.0003, 0.001, 0.003, 0.01, 0.1 \\ + Step Size & 2, 3, 5, 7 \\ + Gamma & 0.1, 0.5 \\ + Beta One & 0.9, 0.99 \\ + Beta Two & 0.5, 0.9, 0.99, 0.999 \\ + Eps & 0.00000001, 0.1, 1 \\ \bottomrule \end{tabular} \caption{Hyperparameters and their possible values during