You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

CNN-RNN.ipynb 353KB

1 year ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988
  1. {
  2. "cells": [
  3. {
  4. "cell_type": "code",
  5. "execution_count": 1,
  6. "id": "902d927c",
  7. "metadata": {},
  8. "outputs": [
  9. {
  10. "name": "stderr",
  11. "output_type": "stream",
  12. "text": [
  13. "C:\\Users\\saeed\\Desktop\\Master\\bci\\lib\\site-packages\\tqdm\\auto.py:22: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
  14. " from .autonotebook import tqdm as notebook_tqdm\n"
  15. ]
  16. }
  17. ],
  18. "source": [
  19. "import torch\n",
  20. "import torch.nn as nn\n",
  21. "import torch.nn.functional as F\n",
  22. "from sklearn.model_selection import train_test_split\n",
  23. "from sklearn.model_selection import KFold, StratifiedKFold\n",
  24. "from sklearn.manifold import TSNE\n",
  25. "import librosa\n",
  26. "import librosa.display\n",
  27. "import IPython.display as ipd\n",
  28. "import matplotlib.pyplot as plt\n",
  29. "import numpy as np\n",
  30. "import scipy.io\n",
  31. "from tqdm import tqdm\n",
  32. "import glob\n",
  33. "import os\n",
  34. "import json\n",
  35. "import pickle\n",
  36. "from einops import rearrange"
  37. ]
  38. },
  39. {
  40. "cell_type": "code",
  41. "execution_count": null,
  42. "id": "eb0bbf34",
  43. "metadata": {},
  44. "outputs": [],
  45. "source": [
  46. "'''all:\n",
  47. "with open(\"data/all/X_train.pkl\", \"rb\") as f:\n",
  48. " X__train = pickle.load(f)\n",
  49. "with open(\"data/all/X_test.pkl\", \"rb\") as f:\n",
  50. " X__test = pickle.load(f)\n",
  51. "with open(\"data/all/y_train.pkl\", \"rb\") as f:\n",
  52. " y__train = pickle.load(f)\n",
  53. "with open(\"data/all/y_test.pkl\", \"rb\") as f:\n",
  54. " y__test = pickle.load(f)\n",
  55. " \n",
  56. " vowel:\n",
  57. "with open(\"data/vowel/X_vowel_train.pkl\", \"rb\") as f:\n",
  58. " X__train = pickle.load(f)\n",
  59. "with open(\"data/vowel/X_vowel_test.pkl\", \"rb\") as f:\n",
  60. " X__test = pickle.load(f)\n",
  61. "with open(\"data/vowel/y_vowel_train.pkl\", \"rb\") as f:\n",
  62. " y__train = pickle.load(f)\n",
  63. "with open(\"data/vowel/y_vowel_test.pkl\", \"rb\") as f:\n",
  64. " y__test = pickle.load(f)\n",
  65. " \n",
  66. " nasal:\n",
  67. "with open(\"data/nasal/X_nasal_train.pkl\", \"rb\") as f:\n",
  68. " X__train = pickle.load(f)\n",
  69. "with open(\"data/nasal/X_nasal_test.pkl\", \"rb\") as f:\n",
  70. " X__test = pickle.load(f)\n",
  71. "with open(\"data/nasal/y_nasal_train.pkl\", \"rb\") as f:\n",
  72. " y__train = pickle.load(f)\n",
  73. "with open(\"data/nasal/y_nasal_test.pkl\", \"rb\") as f:\n",
  74. " y__test = pickle.load(f)\n",
  75. " \n",
  76. " bilabial:\n",
  77. "with open(\"data/bilabial/X_bilabial_train.pkl\", \"rb\") as f:\n",
  78. " X__train = pickle.load(f)\n",
  79. "with open(\"data/bilabial/X_bilabial_test.pkl\", \"rb\") as f:\n",
  80. " X__test = pickle.load(f)\n",
  81. "with open(\"data/bilabial/y_bilabial_train.pkl\", \"rb\") as f:\n",
  82. " y__train = pickle.load(f)\n",
  83. "with open(\"data/bilabial/y_bilabial_test.pkl\", \"rb\") as f:\n",
  84. " y__test = pickle.load(f)\n",
  85. " \n",
  86. " iy:\n",
  87. "with open(\"data/iy/X_iy_train.pkl\", \"rb\") as f:\n",
  88. " X__train = pickle.load(f)\n",
  89. "with open(\"data/iy/X_iy_test.pkl\", \"rb\") as f:\n",
  90. " X__test = pickle.load(f)\n",
  91. "with open(\"data/iy/y_iy_train.pkl\", \"rb\") as f:\n",
  92. " y__train = pickle.load(f)\n",
  93. "with open(\"data/iy/y_iy_test.pkl\", \"rb\") as f:\n",
  94. " y__test = pickle.load(f)\n",
  95. " \n",
  96. " uw:\n",
  97. "with open(\"data/uw/X_uw_train.pkl\", \"rb\") as f:\n",
  98. " X__train = pickle.load(f)\n",
  99. "with open(\"data/uw/X_uw_test.pkl\", \"rb\") as f:\n",
  100. " X__test = pickle.load(f)\n",
  101. "with open(\"data/uw/y_uw_train.pkl\", \"rb\") as f:\n",
  102. " y__train = pickle.load(f)\n",
  103. "with open(\"data/uw/y_uw_test.pkl\", \"rb\") as f:\n",
  104. " y__test = pickle.load(f)"
  105. ]
  106. },
  107. {
  108. "cell_type": "code",
  109. "execution_count": 6,
  110. "id": "5eed7b79",
  111. "metadata": {},
  112. "outputs": [
  113. {
  114. "name": "stdout",
  115. "output_type": "stream",
  116. "text": [
  117. "(1721, 62, 1250) (192, 62, 1250) 1721 192\n"
  118. ]
  119. }
  120. ],
  121. "source": [
  122. "#load train and test data and labels\n",
  123. "with open(\"data/uw/X_uw_train.pkl\", \"rb\") as f:\n",
  124. " X__train = pickle.load(f)\n",
  125. "with open(\"data/uw/X_uw_test.pkl\", \"rb\") as f:\n",
  126. " X__test = pickle.load(f)\n",
  127. "with open(\"data/uw/y_uw_train.pkl\", \"rb\") as f:\n",
  128. " y__train = pickle.load(f)\n",
  129. "with open(\"data/uw/y_uw_test.pkl\", \"rb\") as f:\n",
  130. " y__test = pickle.load(f)\n",
  131. "print(X__train.shape, X__test.shape, len(y__train), len(y__test))"
  132. ]
  133. },
  134. {
  135. "cell_type": "code",
  136. "execution_count": 7,
  137. "id": "4901d867",
  138. "metadata": {},
  139. "outputs": [
  140. {
  141. "name": "stderr",
  142. "output_type": "stream",
  143. "text": [
  144. "100%|██████████████████████████████████████████████████████████████████████████████| 1721/1721 [05:15<00:00, 5.45it/s]\n",
  145. "100%|████████████████████████████████████████████████████████████████████████████████| 192/192 [00:46<00:00, 4.17it/s]"
  146. ]
  147. },
  148. {
  149. "name": "stdout",
  150. "output_type": "stream",
  151. "text": [
  152. "(1721, 62, 20, 11) (192, 62, 20, 11)\n"
  153. ]
  154. },
  155. {
  156. "name": "stderr",
  157. "output_type": "stream",
  158. "text": [
  159. "\n"
  160. ]
  161. }
  162. ],
  163. "source": [
  164. "#set parameters for MFCC extraction\n",
  165. "n_mfcc = 20\n",
  166. "framesize = 1 * 250\n",
  167. "hop_size = int(framesize/2)\n",
  168. "\n",
  169. "#calculate MFCCs and put them in a matrix with shape (#trial, #channels) for each sub. put all new subs in MFCC_data \n",
  170. "trials = []\n",
  171. "for i, trial in enumerate(tqdm(X__train)):\n",
  172. " channels = []\n",
  173. " for j, channel in enumerate(trial):\n",
  174. " mfccs = librosa.feature.mfcc(y=channel, n_mfcc=n_mfcc, n_fft=framesize, hop_length=hop_size, sr=250)\n",
  175. " channels.append(np.array(mfccs))\n",
  176. " trials.append(np.array(channels)) \n",
  177. "mfc_train = np.array(trials)\n",
  178. "trials = []\n",
  179. "for i, trial in enumerate(tqdm(X__test)):\n",
  180. " channels = []\n",
  181. " for j, channel in enumerate(trial):\n",
  182. " mfccs = librosa.feature.mfcc(y=channel, n_mfcc=n_mfcc, n_fft=framesize, hop_length=hop_size, sr=250)\n",
  183. " channels.append(np.array(mfccs))\n",
  184. " trials.append(np.array(channels)) \n",
  185. "mfc_test = np.array(trials)\n",
  186. "print(mfc_train.shape, mfc_test.shape)"
  187. ]
  188. },
  189. {
  190. "cell_type": "code",
  191. "execution_count": 8,
  192. "id": "dec5d37e",
  193. "metadata": {},
  194. "outputs": [
  195. {
  196. "name": "stdout",
  197. "output_type": "stream",
  198. "text": [
  199. "(1721, 62, 10, 11) (192, 62, 10, 11)\n"
  200. ]
  201. }
  202. ],
  203. "source": [
  204. "mfc_train1 = mfc_train[:,:,0:10,:]\n",
  205. "mfc_test1 = mfc_test[:,:,0:10,:]\n",
  206. "print(mfc_train1.shape, mfc_test1.shape)"
  207. ]
  208. },
  209. {
  210. "cell_type": "code",
  211. "execution_count": 9,
  212. "id": "93b33cdb",
  213. "metadata": {},
  214. "outputs": [],
  215. "source": [
  216. "with open('uw_20mfc_train.pkl', 'wb') as f:\n",
  217. " pickle.dump(mfc_train1, f)\n",
  218. "with open('uw_20mfc_test.pkl', 'wb') as f:\n",
  219. " pickle.dump(mfc_test1, f)"
  220. ]
  221. },
  222. {
  223. "cell_type": "code",
  224. "execution_count": 188,
  225. "id": "3fb31100",
  226. "metadata": {},
  227. "outputs": [],
  228. "source": [
  229. "with open('bilab_20mfc_train.pkl', 'rb') as f:\n",
  230. " mfc_train = pickle.load(f)\n",
  231. "with open('bilab_20mfc_test.pkl', 'rb') as f:\n",
  232. " mfc_test = pickle.load(f)\n",
  233. "with open(\"data/bilabial/y_bilabial_train.pkl\", \"rb\") as f:\n",
  234. " y__train = pickle.load(f)\n",
  235. "with open(\"data/bilabial/y_bilabial_test.pkl\", \"rb\") as f:\n",
  236. " y__test = pickle.load(f)"
  237. ]
  238. },
  239. {
  240. "cell_type": "code",
  241. "execution_count": 2,
  242. "id": "7cbb9002",
  243. "metadata": {},
  244. "outputs": [
  245. {
  246. "name": "stdout",
  247. "output_type": "stream",
  248. "text": [
  249. "(1913, 62, 20, 11)\n"
  250. ]
  251. }
  252. ],
  253. "source": [
  254. "with open(\"data/normal_all_data.pkl\", \"rb\") as f:\n",
  255. " all_data = pickle.load(f)\n",
  256. "with open(\"data/11_20mfc.pkl\", \"rb\") as f:\n",
  257. " mfc_data = pickle.load(f)\n",
  258. "with open(\"data/all_label.pkl\", \"rb\") as f:\n",
  259. " labels = pickle.load(f)\n",
  260. "with open(\"data/vowel_label.pkl\", \"rb\") as f:\n",
  261. " vowel_label = pickle.load(f)\n",
  262. "with open(\"data/bilab_label.pkl\", \"rb\") as f:\n",
  263. " bilab_label = pickle.load(f)\n",
  264. "with open(\"data/nasal_label.pkl\", \"rb\") as f:\n",
  265. " nasal_label = pickle.load(f)\n",
  266. "with open(\"data/iy_label.pkl\", \"rb\") as f:\n",
  267. " iy_label = pickle.load(f)\n",
  268. "with open(\"data/uw_label.pkl\", \"rb\") as f:\n",
  269. " uw_label = pickle.load(f)\n",
  270. "\n",
  271. "print(mfc_data.shape)"
  272. ]
  273. },
  274. {
  275. "cell_type": "code",
  276. "execution_count": 3,
  277. "id": "dc4650d9",
  278. "metadata": {},
  279. "outputs": [
  280. {
  281. "data": {
  282. "text/plain": [
  283. "0.36382645060115004"
  284. ]
  285. },
  286. "execution_count": 3,
  287. "metadata": {},
  288. "output_type": "execute_result"
  289. }
  290. ],
  291. "source": [
  292. "sum(nasal_label)/len(nasal_label)"
  293. ]
  294. },
  295. {
  296. "cell_type": "code",
  297. "execution_count": 189,
  298. "id": "56e00da9",
  299. "metadata": {},
  300. "outputs": [
  301. {
  302. "data": {
  303. "text/plain": [
  304. "(1721, 62, 10, 11)"
  305. ]
  306. },
  307. "execution_count": 189,
  308. "metadata": {},
  309. "output_type": "execute_result"
  310. }
  311. ],
  312. "source": [
  313. "mfc_train = mfc_train[:,:,2:12,:]\n",
  314. "mfc_test = mfc_test[:,:,2:12,:]\n",
  315. "mfc_train.shape"
  316. ]
  317. },
  318. {
  319. "cell_type": "code",
  320. "execution_count": 197,
  321. "id": "198c529c",
  322. "metadata": {},
  323. "outputs": [
  324. {
  325. "name": "stderr",
  326. "output_type": "stream",
  327. "text": [
  328. "C:\\Users\\saeed\\Desktop\\Master\\bci\\lib\\site-packages\\sklearn\\manifold\\_t_sne.py:795: FutureWarning: The default initialization in TSNE will change from 'random' to 'pca' in 1.2.\n",
  329. " warnings.warn(\n",
  330. "C:\\Users\\saeed\\Desktop\\Master\\bci\\lib\\site-packages\\sklearn\\manifold\\_t_sne.py:805: FutureWarning: The default learning rate in TSNE will change from 200.0 to 'auto' in 1.2.\n",
  331. " warnings.warn(\n"
  332. ]
  333. }
  334. ],
  335. "source": [
  336. "data = mfc_train[:,:,:10,:]\n",
  337. "data = rearrange(data, 'n c m t -> n (c m t)')\n",
  338. "tsne = TSNE(n_components=2, random_state=0)\n",
  339. "X = tsne.fit_transform(data)"
  340. ]
  341. },
  342. {
  343. "cell_type": "code",
  344. "execution_count": 198,
  345. "id": "f33647be",
  346. "metadata": {},
  347. "outputs": [
  348. {
  349. "data": {
  350. "image/png": "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\n",
  351. "text/plain": [
  352. "<Figure size 576x504 with 1 Axes>"
  353. ]
  354. },
  355. "metadata": {
  356. "needs_background": "light"
  357. },
  358. "output_type": "display_data"
  359. }
  360. ],
  361. "source": [
  362. "l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11 = [], [], [], [], [], [], [], [], [], [], []\n",
  363. "for i, label in enumerate(y__train):\n",
  364. " if label==0:\n",
  365. " l1.append(X[i])\n",
  366. " elif label==1:\n",
  367. " l2.append(X[i])\n",
  368. " elif label==2:\n",
  369. " l3.append(X[i])\n",
  370. " elif label==3:\n",
  371. " l4.append(X[i])\n",
  372. " elif label==4:\n",
  373. " l5.append(X[i])\n",
  374. " elif label==5:\n",
  375. " l6.append(X[i])\n",
  376. " elif label==6:\n",
  377. " l7.append(X[i])\n",
  378. " elif label==7:\n",
  379. " l8.append(X[i])\n",
  380. " elif label==8:\n",
  381. " l9.append(X[i])\n",
  382. " elif label==9:\n",
  383. " l10.append(X[i])\n",
  384. " elif label==10:\n",
  385. " l11.append(X[i])\n",
  386. "plt.figure(figsize=(8, 7))\n",
  387. "for x in l1:\n",
  388. " plt.scatter(x[0], x[1], c='r')\n",
  389. "for x in l2:\n",
  390. " plt.scatter(x[0], x[1], c='g')\n",
  391. "for x in l3:\n",
  392. " plt.scatter(x[0], x[1], c='b')\n",
  393. "for x in l4:\n",
  394. " plt.scatter(x[0], x[1], c='c')\n",
  395. "for x in l5:\n",
  396. " plt.scatter(x[0], x[1], c='y')\n",
  397. "for x in l6:\n",
  398. " plt.scatter(x[0], x[1], c='m')\n",
  399. "for x in l7:\n",
  400. " plt.scatter(x[0], x[1], c='k')\n",
  401. "for x in l8:\n",
  402. " plt.scatter(x[0], x[1], c='w')\n",
  403. "for x in l9:\n",
  404. " plt.scatter(x[0], x[1], c='orange')\n",
  405. "for x in l10:\n",
  406. " plt.scatter(x[0], x[1], c='purple')\n",
  407. "for x in l11:\n",
  408. " plt.scatter(x[0], x[1], c='bisque')\n",
  409. "plt.show()\n"
  410. ]
  411. },
  412. {
  413. "cell_type": "code",
  414. "execution_count": 20,
  415. "id": "c8a54e81",
  416. "metadata": {},
  417. "outputs": [
  418. {
  419. "data": {
  420. "text/plain": [
  421. "(array([4, 3, 0, 1, 0, 3, 0, 0, 0, 1], dtype=int64),\n",
  422. " array([1. , 1.8, 2.6, 3.4, 4.2, 5. , 5.8, 6.6, 7.4, 8.2, 9. ]))"
  423. ]
  424. },
  425. "execution_count": 20,
  426. "metadata": {},
  427. "output_type": "execute_result"
  428. }
  429. ],
  430. "source": [
  431. "a = np.array([[1,1,1,1],[2,2,2,4],[5,5,5,9]])\n",
  432. "np.histogram(a)"
  433. ]
  434. },
  435. {
  436. "cell_type": "code",
  437. "execution_count": 190,
  438. "id": "f440d5eb",
  439. "metadata": {
  440. "scrolled": true
  441. },
  442. "outputs": [
  443. {
  444. "data": {
  445. "image/png": "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\n",
  446. "text/plain": [
  447. "<Figure size 720x288 with 1 Axes>"
  448. ]
  449. },
  450. "metadata": {
  451. "needs_background": "light"
  452. },
  453. "output_type": "display_data"
  454. },
  455. {
  456. "data": {
  457. "image/png": "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\n",
  458. "text/plain": [
  459. "<Figure size 720x288 with 1 Axes>"
  460. ]
  461. },
  462. "metadata": {
  463. "needs_background": "light"
  464. },
  465. "output_type": "display_data"
  466. },
  467. {
  468. "data": {
  469. "image/png": "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\n",
  470. "text/plain": [
  471. "<Figure size 720x288 with 1 Axes>"
  472. ]
  473. },
  474. "metadata": {
  475. "needs_background": "light"
  476. },
  477. "output_type": "display_data"
  478. },
  479. {
  480. "data": {
  481. "image/png": "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\n",
  482. "text/plain": [
  483. "<Figure size 720x288 with 1 Axes>"
  484. ]
  485. },
  486. "metadata": {
  487. "needs_background": "light"
  488. },
  489. "output_type": "display_data"
  490. },
  491. {
  492. "data": {
  493. "image/png": "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\n",
  494. "text/plain": [
  495. "<Figure size 720x288 with 1 Axes>"
  496. ]
  497. },
  498. "metadata": {
  499. "needs_background": "light"
  500. },
  501. "output_type": "display_data"
  502. },
  503. {
  504. "data": {
  505. "image/png": "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\n",
  506. "text/plain": [
  507. "<Figure size 720x288 with 1 Axes>"
  508. ]
  509. },
  510. "metadata": {
  511. "needs_background": "light"
  512. },
  513. "output_type": "display_data"
  514. },
  515. {
  516. "data": {
  517. "image/png": "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s4uBPc65RX7nIs1EA1OAh51zk4FK9jeRALpWOpvX3DSLcDE8AEiiA+6IyLHrStdGby648oG8JvsDvZh0EjOLIVxs/dU597wXLmhs/vC+7/Hier863qnAp81sK+Em9rMJ9x1K95pNoPm/e+Q98Y6nAcWdmXAvsQPY4Zxb4O0/S7gA07Xin3OBLc65QudcPfA84etH10rXcKTXRqdcM7254PoYGOmNKokl3OFxts859Rpe/4XHgDXOuV81OTQbaBwhchXwYpP4V71RJtOB0ia3jKUdOOd+4Jwb6JwbQvh6eNM59yXgLeBy77QD35PG9+py7/wu8ZdkT+Kc2w1sN7PRXugcYDW6Vvy0DZhuZone77LG90TXStdwpNfGa8D5Zpbh3b0834u1q1498amZXUi4z0oAeNw5d5+/GfUeZnYa8C6wgv39hW4n3I/rGWAQ8AnweefcXu+X2m8I37avAq5xzi3s9MR7CTM7C/iOc+5iMxtG+I5XJrAE+LJzrtbM4oE/E+5/txe40jm32aeUezQzm0R4IEMssBm4hvAfzLpWfGJmdwNXEB5xvQS4jnC/H10rncjM/g6cBWQBBYRHG/6LI7w2zOxrhD+DAO5zzj3R7rn25oJLREREpDP05iZFERERkU6hgktERESkg6ngEhEREelgKrhEREREOpgKLhEREZEOpoJLREREpIOp4BIRERHpYCq4RERERDrY/wdFoJSAuMHnvwAAAABJRU5ErkJggg==\n",
  518. "text/plain": [
  519. "<Figure size 720x288 with 1 Axes>"
  520. ]
  521. },
  522. "metadata": {
  523. "needs_background": "light"
  524. },
  525. "output_type": "display_data"
  526. },
  527. {
  528. "data": {
  529. "image/png": "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\n",
  530. "text/plain": [
  531. "<Figure size 720x288 with 1 Axes>"
  532. ]
  533. },
  534. "metadata": {
  535. "needs_background": "light"
  536. },
  537. "output_type": "display_data"
  538. },
  539. {
  540. "data": {
  541. "image/png": "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\n",
  542. "text/plain": [
  543. "<Figure size 720x288 with 1 Axes>"
  544. ]
  545. },
  546. "metadata": {
  547. "needs_background": "light"
  548. },
  549. "output_type": "display_data"
  550. },
  551. {
  552. "data": {
  553. "image/png": "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\n",
  554. "text/plain": [
  555. "<Figure size 720x288 with 1 Axes>"
  556. ]
  557. },
  558. "metadata": {
  559. "needs_background": "light"
  560. },
  561. "output_type": "display_data"
  562. }
  563. ],
  564. "source": [
  565. "data = rearrange(mfc_train, 'n c m t -> m (n c t)')\n",
  566. "for m in data:\n",
  567. " plt.figure(figsize=(10, 4))\n",
  568. " hist = np.histogram(m, bins=1000)\n",
  569. " plt.plot(hist[0])"
  570. ]
  571. },
  572. {
  573. "cell_type": "code",
  574. "execution_count": 5,
  575. "id": "2a4fc02f",
  576. "metadata": {},
  577. "outputs": [
  578. {
  579. "data": {
  580. "text/plain": [
  581. "(1913, 62, 20, 11)"
  582. ]
  583. },
  584. "execution_count": 5,
  585. "metadata": {},
  586. "output_type": "execute_result"
  587. }
  588. ],
  589. "source": [
  590. "all_data.shape"
  591. ]
  592. },
  593. {
  594. "cell_type": "code",
  595. "execution_count": 5,
  596. "id": "57c5fc40",
  597. "metadata": {
  598. "scrolled": false
  599. },
  600. "outputs": [
  601. {
  602. "data": {
  603. "text/plain": [
  604. "'trials = []\\nfor trial in mfc_test:\\n pic = np.zeros((7,9,10,11))\\n pic[0,2] = trial[3]\\n pic[0,3] = trial[0]\\n pic[0,4] = trial[1]\\n pic[0,5] = trial[2]\\n pic[0,6] = trial[4]\\n pic[1,:] = trial[5:14]\\n pic[2,:] = trial[14:23]\\n pic[3,:] = trial[23:32]\\n pic[4,:] = trial[32:41]\\n pic[5,:] = trial[41:50]\\n pic[6,0] = trial[50]\\n pic[6,1] = trial[51]\\n pic[6,2] = trial[52]\\n pic[6,3] = trial[58]\\n pic[6,4] = trial[53]\\n pic[6,5] = trial[60]\\n pic[6,6] = trial[54]\\n pic[6,7] = trial[55]\\n pic[6,8] = trial[56]\\n trials.append(pic) \\npicture_data_test = np.array(trials)'"
  605. ]
  606. },
  607. "execution_count": 5,
  608. "metadata": {},
  609. "output_type": "execute_result"
  610. }
  611. ],
  612. "source": [
  613. "\n",
  614. "trials = []\n",
  615. "for trial in all_data:\n",
  616. " pic = np.zeros((7,9,20,11))\n",
  617. " pic[0,2] = trial[3]\n",
  618. " pic[0,3] = trial[0]\n",
  619. " pic[0,4] = trial[1]\n",
  620. " pic[0,5] = trial[2]\n",
  621. " pic[0,6] = trial[4]\n",
  622. " pic[1,:] = trial[5:14]\n",
  623. " pic[2,:] = trial[14:23]\n",
  624. " pic[3,:] = trial[23:32]\n",
  625. " pic[4,:] = trial[32:41]\n",
  626. " pic[5,:] = trial[41:50]\n",
  627. " pic[6,0] = trial[50]\n",
  628. " pic[6,1] = trial[51]\n",
  629. " pic[6,2] = trial[52]\n",
  630. " pic[6,3] = trial[58]\n",
  631. " pic[6,4] = trial[53]\n",
  632. " pic[6,5] = trial[60]\n",
  633. " pic[6,6] = trial[54]\n",
  634. " pic[6,7] = trial[55]\n",
  635. " pic[6,8] = trial[56]\n",
  636. " trials.append(pic)\n",
  637. "picture_data_train = np.array(trials)\n",
  638. "'''trials = []\n",
  639. "for trial in mfc_test:\n",
  640. " pic = np.zeros((7,9,10,11))\n",
  641. " pic[0,2] = trial[3]\n",
  642. " pic[0,3] = trial[0]\n",
  643. " pic[0,4] = trial[1]\n",
  644. " pic[0,5] = trial[2]\n",
  645. " pic[0,6] = trial[4]\n",
  646. " pic[1,:] = trial[5:14]\n",
  647. " pic[2,:] = trial[14:23]\n",
  648. " pic[3,:] = trial[23:32]\n",
  649. " pic[4,:] = trial[32:41]\n",
  650. " pic[5,:] = trial[41:50]\n",
  651. " pic[6,0] = trial[50]\n",
  652. " pic[6,1] = trial[51]\n",
  653. " pic[6,2] = trial[52]\n",
  654. " pic[6,3] = trial[58]\n",
  655. " pic[6,4] = trial[53]\n",
  656. " pic[6,5] = trial[60]\n",
  657. " pic[6,6] = trial[54]\n",
  658. " pic[6,7] = trial[55]\n",
  659. " pic[6,8] = trial[56]\n",
  660. " trials.append(pic) \n",
  661. "picture_data_test = np.array(trials)'''"
  662. ]
  663. },
  664. {
  665. "cell_type": "code",
  666. "execution_count": 4,
  667. "id": "650f9466",
  668. "metadata": {},
  669. "outputs": [
  670. {
  671. "data": {
  672. "text/plain": [
  673. "(1913, 62, 20, 11)"
  674. ]
  675. },
  676. "execution_count": 4,
  677. "metadata": {},
  678. "output_type": "execute_result"
  679. }
  680. ],
  681. "source": [
  682. "all_data.shape"
  683. ]
  684. },
  685. {
  686. "cell_type": "code",
  687. "execution_count": 6,
  688. "id": "49d1f044",
  689. "metadata": {},
  690. "outputs": [
  691. {
  692. "data": {
  693. "text/plain": [
  694. "(1913, 7, 9, 20, 11)"
  695. ]
  696. },
  697. "execution_count": 6,
  698. "metadata": {},
  699. "output_type": "execute_result"
  700. }
  701. ],
  702. "source": [
  703. "picture_data_train.shape"
  704. ]
  705. },
  706. {
  707. "cell_type": "code",
  708. "execution_count": 7,
  709. "id": "60b82988",
  710. "metadata": {},
  711. "outputs": [
  712. {
  713. "ename": "NameError",
  714. "evalue": "name 'picture_data_test' is not defined",
  715. "output_type": "error",
  716. "traceback": [
  717. "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
  718. "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)",
  719. "Input \u001b[1;32mIn [7]\u001b[0m, in \u001b[0;36m<cell line: 1>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[38;5;28mprint\u001b[39m(picture_data_train\u001b[38;5;241m.\u001b[39mshape, \u001b[43mpicture_data_test\u001b[49m\u001b[38;5;241m.\u001b[39mshape)\n",
  720. "\u001b[1;31mNameError\u001b[0m: name 'picture_data_test' is not defined"
  721. ]
  722. }
  723. ],
  724. "source": [
  725. "print(picture_data_train.shape, picture_data_test.shape)"
  726. ]
  727. },
  728. {
  729. "cell_type": "code",
  730. "execution_count": 8,
  731. "id": "6cad2f67",
  732. "metadata": {},
  733. "outputs": [],
  734. "source": [
  735. "dataset = picture_data_train\n",
  736. "labels = nasal_label"
  737. ]
  738. },
  739. {
  740. "cell_type": "code",
  741. "execution_count": 193,
  742. "id": "142b725f",
  743. "metadata": {},
  744. "outputs": [
  745. {
  746. "name": "stdout",
  747. "output_type": "stream",
  748. "text": [
  749. "(1721, 62, 10, 11) 1913 (7, 9, 10, 11) 1913\n"
  750. ]
  751. }
  752. ],
  753. "source": [
  754. "#concat train and test data. concat train and test labels\n",
  755. "\n",
  756. "dataset = []\n",
  757. "for data in picture_data_train:\n",
  758. " dataset.append(data)\n",
  759. "for data in picture_data_test:\n",
  760. " dataset.append(data)\n",
  761. "\n",
  762. "labels = y__train + y__test\n",
  763. " \n",
  764. "print(mfc_train.shape, len(dataset), dataset[0].shape, len(labels))"
  765. ]
  766. },
  767. {
  768. "cell_type": "code",
  769. "execution_count": 9,
  770. "id": "f287c055",
  771. "metadata": {},
  772. "outputs": [],
  773. "source": [
  774. "#config\n",
  775. "val_size = 0.15\n",
  776. "n_epochs = 100\n",
  777. "batch_size = 128\n",
  778. "print_every = 10\n",
  779. "k = 10\n",
  780. "skf=StratifiedKFold(n_splits=k, shuffle=True, random_state=42)"
  781. ]
  782. },
  783. {
  784. "cell_type": "code",
  785. "execution_count": 10,
  786. "id": "959308f6",
  787. "metadata": {},
  788. "outputs": [],
  789. "source": [
  790. "#model\n",
  791. "\n",
  792. "class CNN_RNN(nn.Module):\n",
  793. " def __init__(self):\n",
  794. " super().__init__()\n",
  795. " self.conv1 = nn.Conv2d(20, 16, 3)\n",
  796. " #torch.nn.init.xavier_normal_(self.conv1.weight)\n",
  797. " self.pool = nn.MaxPool2d(2, 1)\n",
  798. " self.conv2 = nn.Conv2d(16, 32, 3)\n",
  799. " #torch.nn.init.xavier_normal_(self.conv2.weight)\n",
  800. " self.lstm = nn.LSTM(input_size=256, hidden_size=128, num_layers=2, batch_first=True)\n",
  801. " self.fc = nn.Linear(128, 2)\n",
  802. " #torch.nn.init.xavier_normal_(self.fc.weight)\n",
  803. " self.batch1 = nn.BatchNorm2d(16)\n",
  804. " self.batch2 = nn.BatchNorm2d(32)\n",
  805. " self.relu1 = nn.ReLU()\n",
  806. " self.relu2 = nn.ReLU()\n",
  807. " \n",
  808. " \n",
  809. " def forward(self, x):\n",
  810. " hidden = torch.zeros(2, x.shape[0], 128), torch.zeros(2, x.shape[0], 128)\n",
  811. " # (batch, heigth, width, feature, time)\n",
  812. " #print(x.shape)\n",
  813. " x = rearrange(x, 'batch heigth width feature time -> (batch time) feature heigth width')\n",
  814. " #print(x.shape)\n",
  815. " out = self.pool(self.relu1(self.batch1(self.conv1(x))))\n",
  816. " #print(out.shape)\n",
  817. " out = self.relu2(self.batch2(self.conv2(out)))\n",
  818. " #print(out.shape)\n",
  819. " out = rearrange(out, '(batch time) channel heigth width -> batch time (channel heigth width)', time=11)\n",
  820. " #print(out.shape)\n",
  821. " out, hidden = self.lstm(out, hidden) \n",
  822. " out = out[:,-1,:]\n",
  823. " out = self.fc(out)\n",
  824. " return out\n",
  825. " \n",
  826. "class FC(nn.Module):\n",
  827. " def __init__(self, hidden1=500):\n",
  828. " super(FC, self).__init__()\n",
  829. " self.fc1 = nn.Linear(6820, hidden1)\n",
  830. " torch.nn.init.xavier_normal(self.fc1.weight)\n",
  831. " self.fc2 = nn.Linear(hidden1, 1)\n",
  832. " torch.nn.init.xavier_normal(self.fc2.weight)\n",
  833. " self.dropout = nn.Dropout(0.3)\n",
  834. " \n",
  835. " def forward(self, x):\n",
  836. " x = x.view(-1, 6820)\n",
  837. " x = F.relu(self.fc1(x))\n",
  838. " #x = self.dropout(x)\n",
  839. " x = F.sigmoid(self.fc2(x))\n",
  840. " return x"
  841. ]
  842. },
  843. {
  844. "cell_type": "code",
  845. "execution_count": 11,
  846. "id": "6c240889",
  847. "metadata": {
  848. "scrolled": false
  849. },
  850. "outputs": [
  851. {
  852. "name": "stdout",
  853. "output_type": "stream",
  854. "text": [
  855. "-----------------------------Fold 1---------------\n",
  856. "preparing dataloaders...\n",
  857. "coef when 0 > 1 1\n",
  858. "creating model...\n",
  859. "calculating total steps...\n",
  860. "epoch: 1\n",
  861. "validation loss decreased (inf ---> 0.703975), val_acc = 0.39534884691238403\n",
  862. "validation acc increased (0.000000 ---> 0.395349)\n",
  863. "validation acc increased (0.395349 ---> 0.395349)\n",
  864. "epoch 1: train loss = 0.6921196075978445, l1loss = 1.4813192892626534, train acc = 0.5274282693862915,\n",
  865. "val_loss = 0.7102676463681598, val_acc = 0.39534884691238403\n",
  866. "\n",
  867. "epoch: 2\n",
  868. "validation acc increased (0.395349 ---> 0.395349)\n",
  869. "validation acc increased (0.395349 ---> 0.395349)\n",
  870. "epoch 2: train loss = 0.6915809742517668, l1loss = 1.4611903595816387, train acc = 0.5274282693862915,\n",
  871. "val_loss = 0.7109477325927379, val_acc = 0.39534884691238403\n",
  872. "\n",
  873. "epoch: 3\n",
  874. "validation acc increased (0.395349 ---> 0.395349)\n",
  875. "validation acc increased (0.395349 ---> 0.395349)\n",
  876. "epoch 3: train loss = 0.6911844878743867, l1loss = 1.4379649762238578, train acc = 0.5274282693862915,\n",
  877. "val_loss = 0.7080174167026845, val_acc = 0.39534884691238403\n",
  878. "\n",
  879. "epoch: 4\n",
  880. "validation acc increased (0.395349 ---> 0.395349)\n",
  881. "validation acc increased (0.395349 ---> 0.395349)\n",
  882. "epoch 4: train loss = 0.6908970355807565, l1loss = 1.4091885588429474, train acc = 0.5274282693862915,\n",
  883. "val_loss = 0.7074278080186178, val_acc = 0.39534884691238403\n",
  884. "\n",
  885. "epoch: 5\n",
  886. "validation acc increased (0.395349 ---> 0.395349)\n",
  887. "validation acc increased (0.395349 ---> 0.395349)\n",
  888. "epoch 5: train loss = 0.6903622140522032, l1loss = 1.3728010045504173, train acc = 0.5274282693862915,\n",
  889. "val_loss = 0.7060032583946405, val_acc = 0.39534884691238403\n",
  890. "\n",
  891. "epoch: 6\n",
  892. "validation acc increased (0.395349 ---> 0.395349)\n",
  893. "validation acc increased (0.395349 ---> 0.395349)\n",
  894. "epoch 6: train loss = 0.6897485629961487, l1loss = 1.3268929230968858, train acc = 0.5279315710067749,\n",
  895. "val_loss = 0.7049394624177799, val_acc = 0.40310078859329224\n",
  896. "\n",
  897. "epoch: 7\n",
  898. "validation acc increased (0.395349 ---> 0.403101)\n",
  899. "validation acc increased (0.403101 ---> 0.406977)\n",
  900. "epoch 7: train loss = 0.6890018312068338, l1loss = 1.2698341833027271, train acc = 0.5294413566589355,\n",
  901. "val_loss = 0.7049807642781457, val_acc = 0.40310078859329224\n",
  902. "\n",
  903. "epoch: 8\n",
  904. "validation loss decreased (0.703975 ---> 0.700499), val_acc = 0.44573643803596497\n",
  905. "validation acc increased (0.406977 ---> 0.445736)\n",
  906. "epoch 8: train loss = 0.6881676978001837, l1loss = 1.2007527305783492, train acc = 0.5430296659469604,\n",
  907. "val_loss = 0.700941942458929, val_acc = 0.44186046719551086\n",
  908. "\n",
  909. "epoch: 9\n",
  910. "epoch 9: train loss = 0.6866489719312636, l1loss = 1.119547625252753, train acc = 0.534977376461029,\n",
  911. "val_loss = 0.7109170130981032, val_acc = 0.41860464215278625\n",
  912. "\n",
  913. "epoch: 10\n",
  914. "validation acc increased (0.445736 ---> 0.453488)\n",
  915. "epoch 10: train loss = 0.6828876420308071, l1loss = 1.026746424707145, train acc = 0.5812783241271973,\n",
  916. "val_loss = 0.7096735031105751, val_acc = 0.44961240887641907\n",
  917. "\n",
  918. "epoch: 11\n",
  919. "validation acc increased (0.453488 ---> 0.457364)\n",
  920. "validation loss decreased (0.700499 ---> 0.691370), val_acc = 0.5155038833618164\n",
  921. "validation acc increased (0.457364 ---> 0.515504)\n",
  922. "epoch 11: train loss = 0.6756821570530811, l1loss = 0.9239571331491648, train acc = 0.606441855430603,\n",
  923. "val_loss = 0.7130429273427918, val_acc = 0.4651162922382355\n",
  924. "\n",
  925. "epoch: 12\n",
  926. "validation loss decreased (0.691370 ---> 0.687802), val_acc = 0.5426356792449951\n",
  927. "validation acc increased (0.515504 ---> 0.542636)\n",
  928. "epoch 12: train loss = 0.6597185275275083, l1loss = 0.8148023310653156, train acc = 0.6170105934143066,\n",
  929. "val_loss = 0.7542387963265411, val_acc = 0.45736435055732727\n",
  930. "\n",
  931. "epoch: 13\n",
  932. "epoch 13: train loss = 0.6367104136589848, l1loss = 0.7034740930054736, train acc = 0.6371414065361023,\n",
  933. "val_loss = 0.7009645912998407, val_acc = 0.5348837375640869\n",
  934. "\n",
  935. "epoch: 14\n",
  936. "validation acc increased (0.542636 ---> 0.542636)\n",
  937. "validation acc increased (0.542636 ---> 0.589147)\n",
  938. "epoch 14: train loss = 0.5822035336860413, l1loss = 0.594905492913861, train acc = 0.7121288180351257,\n",
  939. "val_loss = 0.7594922891882963, val_acc = 0.5581395626068115\n",
  940. "\n",
  941. "epoch: 15\n",
  942. "epoch 15: train loss = 0.5122891185148073, l1loss = 0.4949571643124049, train acc = 0.7488676309585571,\n",
  943. "val_loss = 0.8891759768936985, val_acc = 0.4883720874786377\n",
  944. "\n",
  945. "epoch: 16\n",
  946. "epoch 16: train loss = 0.39873673111035346, l1loss = 0.40662467002748665, train acc = 0.8349270224571228,\n",
  947. "val_loss = 1.1463301422059997, val_acc = 0.5581395626068115\n",
  948. "\n",
  949. "epoch: 17\n",
  950. "epoch 17: train loss = 0.2904471275670839, l1loss = 0.3356658784540442, train acc = 0.8917967081069946,\n",
  951. "val_loss = 1.2913649451825047, val_acc = 0.5\n",
  952. "\n",
  953. "epoch: 18\n",
  954. "epoch 18: train loss = 0.22612523326906175, l1loss = 0.28161148739689007, train acc = 0.9068948030471802,\n",
  955. "val_loss = 1.6142784735953162, val_acc = 0.5813953280448914\n",
  956. "\n",
  957. "epoch: 19\n",
  958. "epoch 19: train loss = 0.1450976847132427, l1loss = 0.247697628168347, train acc = 0.9531957507133484,\n",
  959. "val_loss = 1.5399292397868725, val_acc = 0.5620155334472656\n",
  960. "\n",
  961. "epoch: 20\n",
  962. "epoch 20: train loss = 0.11934498384422433, l1loss = 0.23167835120496044, train acc = 0.9557121396064758,\n",
  963. "val_loss = 1.7687409589456957, val_acc = 0.4844961166381836\n",
  964. "\n",
  965. "epoch: 21\n",
  966. "epoch 21: train loss = 0.06861750959270134, l1loss = 0.22078036307298662, train acc = 0.9773527979850769,\n",
  967. "val_loss = 2.424526694393175, val_acc = 0.5852712988853455\n",
  968. "\n",
  969. "epoch: 22\n",
  970. "epoch 22: train loss = 0.04279914844610551, l1loss = 0.21008030950993103, train acc = 0.9899345636367798,\n",
  971. "val_loss = 1.830416483472484, val_acc = 0.5310077667236328\n",
  972. "\n",
  973. "epoch: 23\n",
  974. "epoch 23: train loss = 0.032723448187240295, l1loss = 0.20147271192607774, train acc = 0.9924509525299072,\n",
  975. "val_loss = 2.2050810784332513, val_acc = 0.4922480583190918\n",
  976. "\n",
  977. "epoch: 24\n",
  978. "epoch 24: train loss = 0.02353123065494807, l1loss = 0.19340241685787157, train acc = 0.9964771270751953,\n",
  979. "val_loss = 2.1999229627062182, val_acc = 0.5736433863639832\n",
  980. "\n",
  981. "epoch: 25\n",
  982. "epoch 25: train loss = 0.032386840027243756, l1loss = 0.18697129591931994, train acc = 0.9904378652572632,\n",
  983. "val_loss = 2.24283122277075, val_acc = 0.5465116500854492\n",
  984. "\n",
  985. "epoch: 26\n",
  986. "epoch 26: train loss = 0.05402209995587267, l1loss = 0.18239764653982443, train acc = 0.9798691272735596,\n",
  987. "val_loss = 2.1508019247720407, val_acc = 0.5891472697257996\n",
  988. "\n",
  989. "epoch: 27\n",
  990. "validation acc increased (0.589147 ---> 0.596899)\n",
  991. "epoch 27: train loss = 0.08302161952074773, l1loss = 0.17984621981219784, train acc = 0.9667841196060181,\n",
  992. "val_loss = 2.134554007256678, val_acc = 0.5155038833618164\n",
  993. "\n",
  994. "epoch: 28\n",
  995. "validation acc increased (0.596899 ---> 0.608527)\n",
  996. "epoch 28: train loss = 0.08317013363863393, l1loss = 0.17741221547966696, train acc = 0.9672873616218567,\n",
  997. "val_loss = 1.8020918643058732, val_acc = 0.5813953280448914\n",
  998. "\n",
  999. "epoch: 29\n",
  1000. "epoch 29: train loss = 0.09245095192021201, l1loss = 0.1736254430201165, train acc = 0.9642677307128906,\n",
  1001. "val_loss = 2.263783588426101, val_acc = 0.6356589198112488\n",
  1002. "\n",
  1003. "epoch: 30\n",
  1004. "validation acc increased (0.608527 ---> 0.612403)\n",
  1005. "epoch 30: train loss = 0.03266293139847968, l1loss = 0.167058823288057, train acc = 0.9939607381820679,\n",
  1006. "val_loss = 1.8842465008876121, val_acc = 0.5775193572044373\n",
  1007. "\n",
  1008. "epoch: 31\n",
  1009. "epoch 31: train loss = 0.009013392774094783, l1loss = 0.16012636431510208, train acc = 1.0,\n",
  1010. "val_loss = 1.957195477892262, val_acc = 0.565891444683075\n",
  1011. "\n",
  1012. "!!! overfitted !!!\n",
  1013. "tensor(74)\n",
  1014. "tensor(38)\n",
  1015. "early stoping results:\n",
  1016. "\t [tensor(0.5833)]\n",
  1017. "\t [tensor(0.5737)]\n",
  1018. "tensor(67)\n",
  1019. "tensor(35)\n",
  1020. "full train results:\n",
  1021. "\t [tensor(0.5312)]\n",
  1022. "\t [tensor(0.9995)]\n",
  1023. "tensor(77)\n",
  1024. "tensor(39)\n",
  1025. "best accs results:\n",
  1026. "\t [tensor(0.6042)]\n",
  1027. "\t [tensor(0.6064)]\n",
  1028. "[0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]\n",
  1029. "-----------------------------Fold 2---------------\n",
  1030. "preparing dataloaders...\n"
  1031. ]
  1032. },
  1033. {
  1034. "name": "stdout",
  1035. "output_type": "stream",
  1036. "text": [
  1037. "coef when 0 > 1 1\n",
  1038. "creating model...\n",
  1039. "calculating total steps...\n",
  1040. "epoch: 1\n",
  1041. "validation loss decreased (inf ---> 0.685728), val_acc = 0.643410861492157\n",
  1042. "validation acc increased (0.000000 ---> 0.643411)\n",
  1043. "validation acc increased (0.643411 ---> 0.643411)\n",
  1044. "epoch 1: train loss = 0.6923627504481037, l1loss = 1.486846898458096, train acc = 0.5132699012756348,\n",
  1045. "val_loss = 0.6893179130184558, val_acc = 0.643410861492157\n",
  1046. "\n",
  1047. "epoch: 2\n",
  1048. "validation acc increased (0.643411 ---> 0.643411)\n",
  1049. "epoch 2: train loss = 0.690640912243409, l1loss = 1.4669305257458178, train acc = 0.5353029370307922,\n",
  1050. "val_loss = 0.6956856370896332, val_acc = 0.3759689927101135\n",
  1051. "\n",
  1052. "epoch: 3\n",
  1053. "epoch 3: train loss = 0.6898900556098716, l1loss = 1.4436278268582952, train acc = 0.5348021984100342,\n",
  1054. "val_loss = 0.7077792864437251, val_acc = 0.356589138507843\n",
  1055. "\n",
  1056. "epoch: 4\n",
  1057. "epoch 4: train loss = 0.6896268491692464, l1loss = 1.41467766739096, train acc = 0.5348021984100342,\n",
  1058. "val_loss = 0.716421481712844, val_acc = 0.356589138507843\n",
  1059. "\n",
  1060. "epoch: 5\n",
  1061. "epoch 5: train loss = 0.6888132073250065, l1loss = 1.3779625838914393, train acc = 0.5348021984100342,\n",
  1062. "val_loss = 0.7130461672479792, val_acc = 0.356589138507843\n",
  1063. "\n",
  1064. "epoch: 6\n",
  1065. "epoch 6: train loss = 0.6880481983042981, l1loss = 1.3316323196643223, train acc = 0.5353029370307922,\n",
  1066. "val_loss = 0.7145648002624512, val_acc = 0.356589138507843\n",
  1067. "\n",
  1068. "epoch: 7\n",
  1069. "epoch 7: train loss = 0.6870320929129481, l1loss = 1.2742788348725633, train acc = 0.5373059511184692,\n",
  1070. "val_loss = 0.7159286654272745, val_acc = 0.3527131676673889\n",
  1071. "\n",
  1072. "epoch: 8\n",
  1073. "epoch 8: train loss = 0.6852890617201551, l1loss = 1.205061872063963, train acc = 0.5448172092437744,\n",
  1074. "val_loss = 0.7084857664367025, val_acc = 0.39147287607192993\n",
  1075. "\n",
  1076. "epoch: 9\n",
  1077. "epoch 9: train loss = 0.6824781329678367, l1loss = 1.1237744811659285, train acc = 0.5553330183029175,\n",
  1078. "val_loss = 0.7270350784294365, val_acc = 0.3488371968269348\n",
  1079. "\n",
  1080. "epoch: 10\n",
  1081. "epoch 10: train loss = 0.6778379736629557, l1loss = 1.0311813556557008, train acc = 0.5823735594749451,\n",
  1082. "val_loss = 0.721730862477029, val_acc = 0.38759690523147583\n",
  1083. "\n",
  1084. "epoch: 11\n",
  1085. "epoch 11: train loss = 0.6686287961068247, l1loss = 0.9295802932712037, train acc = 0.6119178533554077,\n",
  1086. "val_loss = 0.7199302791625031, val_acc = 0.4844961166381836\n",
  1087. "\n",
  1088. "epoch: 12\n",
  1089. "epoch 12: train loss = 0.6473726140121608, l1loss = 0.8220474930124756, train acc = 0.6479719877243042,\n",
  1090. "val_loss = 0.7618678161340167, val_acc = 0.44186046719551086\n",
  1091. "\n",
  1092. "epoch: 13\n",
  1093. "epoch 13: train loss = 0.6235634726050142, l1loss = 0.7134110764616659, train acc = 0.6604907512664795,\n",
  1094. "val_loss = 0.7779512396154478, val_acc = 0.44961240887641907\n",
  1095. "\n",
  1096. "epoch: 14\n",
  1097. "epoch 14: train loss = 0.5916976472348885, l1loss = 0.6070883066939543, train acc = 0.6935403347015381,\n",
  1098. "val_loss = 0.7408287622207819, val_acc = 0.5348837375640869\n",
  1099. "\n",
  1100. "epoch: 15\n",
  1101. "epoch 15: train loss = 0.5074248785487878, l1loss = 0.5080034436287735, train acc = 0.7611417174339294,\n",
  1102. "val_loss = 0.9050711670587229, val_acc = 0.44186046719551086\n",
  1103. "\n",
  1104. "epoch: 16\n",
  1105. "epoch 16: train loss = 0.43145891812125864, l1loss = 0.41937342439822456, train acc = 0.8137205839157104,\n",
  1106. "val_loss = 0.8636050733715989, val_acc = 0.569767415523529\n",
  1107. "\n",
  1108. "epoch: 17\n",
  1109. "epoch 17: train loss = 0.33662977910185077, l1loss = 0.3446814462908161, train acc = 0.8642964363098145,\n",
  1110. "val_loss = 0.9003204245899998, val_acc = 0.569767415523529\n",
  1111. "\n",
  1112. "epoch: 18\n",
  1113. "epoch 18: train loss = 0.24278796418314882, l1loss = 0.28942148506074294, train acc = 0.9108663201332092,\n",
  1114. "val_loss = 1.8521458714507346, val_acc = 0.6356589198112488\n",
  1115. "\n",
  1116. "epoch: 19\n",
  1117. "epoch 19: train loss = 0.30993230177512093, l1loss = 0.25730218698397, train acc = 0.8688032031059265,\n",
  1118. "val_loss = 1.1883431146311205, val_acc = 0.5775193572044373\n",
  1119. "\n",
  1120. "epoch: 20\n",
  1121. "epoch 20: train loss = 0.1617210699160456, l1loss = 0.2381301120736925, train acc = 0.947421133518219,\n",
  1122. "val_loss = 1.535721439261769, val_acc = 0.45348837971687317\n",
  1123. "\n",
  1124. "epoch: 21\n",
  1125. "epoch 21: train loss = 0.12891582561900272, l1loss = 0.2264571423433874, train acc = 0.9594391584396362,\n",
  1126. "val_loss = 2.21431942595992, val_acc = 0.42248061299324036\n",
  1127. "\n",
  1128. "epoch: 22\n",
  1129. "epoch 22: train loss = 0.10533707820226028, l1loss = 0.22040308403801667, train acc = 0.9609414339065552,\n",
  1130. "val_loss = 1.6402112753816354, val_acc = 0.5968992114067078\n",
  1131. "\n",
  1132. "epoch: 23\n",
  1133. "epoch 23: train loss = 0.05758423222024619, l1loss = 0.21273435418702508, train acc = 0.9834752082824707,\n",
  1134. "val_loss = 1.7986319601073746, val_acc = 0.569767415523529\n",
  1135. "\n",
  1136. "epoch: 24\n",
  1137. "epoch 24: train loss = 0.027758270035729626, l1loss = 0.20449841585109158, train acc = 0.993990957736969,\n",
  1138. "val_loss = 1.8702633103658988, val_acc = 0.5620155334472656\n",
  1139. "\n",
  1140. "epoch: 25\n",
  1141. "epoch 25: train loss = 0.017600334982089717, l1loss = 0.19607467192766603, train acc = 0.9969955086708069,\n",
  1142. "val_loss = 1.982220847015233, val_acc = 0.5155038833618164\n",
  1143. "\n",
  1144. "epoch: 26\n",
  1145. "epoch 26: train loss = 0.012600567348536457, l1loss = 0.1878898390006828, train acc = 0.998497724533081,\n",
  1146. "val_loss = 2.2955358172153204, val_acc = 0.4961240291595459\n",
  1147. "\n",
  1148. "epoch: 27\n",
  1149. "epoch 27: train loss = 0.009947275661042126, l1loss = 0.18061071683540306, train acc = 1.0,\n",
  1150. "val_loss = 1.9011228786882504, val_acc = 0.5193798542022705\n",
  1151. "\n",
  1152. "!!! overfitted !!!\n",
  1153. "tensor(81)\n",
  1154. "tensor(41)\n",
  1155. "early stoping results:\n",
  1156. "\t [tensor(0.5833), tensor(0.6354)]\n",
  1157. "\t [tensor(0.5737), tensor(0.4652)]\n",
  1158. "tensor(75)\n",
  1159. "tensor(28)\n",
  1160. "full train results:\n",
  1161. "\t [tensor(0.5312), tensor(0.5365)]\n",
  1162. "\t [tensor(0.9995), tensor(1.)]\n",
  1163. "tensor(83)\n",
  1164. "tensor(39)\n",
  1165. "best accs results:\n",
  1166. "\t [tensor(0.6042), tensor(0.6354)]\n",
  1167. "\t [tensor(0.6064), tensor(0.4652)]\n",
  1168. "[0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1]\n",
  1169. "-----------------------------Fold 3---------------\n",
  1170. "preparing dataloaders...\n",
  1171. "coef when 0 > 1 1\n",
  1172. "creating model...\n",
  1173. "calculating total steps...\n",
  1174. "epoch: 1\n",
  1175. "validation loss decreased (inf ---> 0.695385), val_acc = 0.3217054307460785\n",
  1176. "validation acc increased (0.000000 ---> 0.321705)\n",
  1177. "validation loss decreased (0.695385 ---> 0.694880), val_acc = 0.3217054307460785\n",
  1178. "validation acc increased (0.321705 ---> 0.321705)\n",
  1179. "epoch 1: train loss = 0.6919325688781434, l1loss = 1.4844660898029864, train acc = 0.5353938341140747,\n",
  1180. "val_loss = 0.696869459263114, val_acc = 0.3217054307460785\n",
  1181. "\n",
  1182. "epoch: 2\n",
  1183. "validation acc increased (0.321705 ---> 0.321705)\n",
  1184. "validation acc increased (0.321705 ---> 0.321705)\n",
  1185. "epoch 2: train loss = 0.6903208250538302, l1loss = 1.4645608618394923, train acc = 0.5408773422241211,\n",
  1186. "val_loss = 0.7094094993532166, val_acc = 0.3217054307460785\n",
  1187. "\n",
  1188. "epoch: 3\n",
  1189. "validation acc increased (0.321705 ---> 0.321705)\n",
  1190. "validation acc increased (0.321705 ---> 0.321705)\n",
  1191. "epoch 3: train loss = 0.6888462312794398, l1loss = 1.4412288264049253, train acc = 0.5413758754730225,\n",
  1192. "val_loss = 0.7203627150188121, val_acc = 0.3217054307460785\n",
  1193. "\n",
  1194. "epoch: 4\n",
  1195. "validation acc increased (0.321705 ---> 0.321705)\n",
  1196. "validation acc increased (0.321705 ---> 0.321705)\n",
  1197. "epoch 4: train loss = 0.6883660529926791, l1loss = 1.4121827829632898, train acc = 0.5413758754730225,\n",
  1198. "val_loss = 0.7268370288287023, val_acc = 0.3217054307460785\n",
  1199. "\n",
  1200. "epoch: 5\n",
  1201. "validation acc increased (0.321705 ---> 0.321705)\n",
  1202. "validation acc increased (0.321705 ---> 0.321705)\n",
  1203. "epoch 5: train loss = 0.6879507299078069, l1loss = 1.375367067509135, train acc = 0.5413758754730225,\n",
  1204. "val_loss = 0.7243463373923487, val_acc = 0.3217054307460785\n",
  1205. "\n",
  1206. "epoch: 6\n",
  1207. "validation acc increased (0.321705 ---> 0.321705)\n",
  1208. "validation acc increased (0.321705 ---> 0.321705)\n",
  1209. "epoch 6: train loss = 0.6870695925424486, l1loss = 1.3291421180232572, train acc = 0.5413758754730225,\n",
  1210. "val_loss = 0.7238615367763727, val_acc = 0.3217054307460785\n",
  1211. "\n",
  1212. "epoch: 7\n",
  1213. "validation acc increased (0.321705 ---> 0.321705)\n"
  1214. ]
  1215. },
  1216. {
  1217. "name": "stdout",
  1218. "output_type": "stream",
  1219. "text": [
  1220. "validation acc increased (0.321705 ---> 0.321705)\n",
  1221. "epoch 7: train loss = 0.6860224290835417, l1loss = 1.271995098854704, train acc = 0.5413758754730225,\n",
  1222. "val_loss = 0.7287569512692533, val_acc = 0.3217054307460785\n",
  1223. "\n",
  1224. "epoch: 8\n",
  1225. "validation acc increased (0.321705 ---> 0.321705)\n",
  1226. "validation acc increased (0.321705 ---> 0.321705)\n",
  1227. "epoch 8: train loss = 0.6840933574993138, l1loss = 1.2031428917336202, train acc = 0.5413758754730225,\n",
  1228. "val_loss = 0.7273619147234185, val_acc = 0.3217054307460785\n",
  1229. "\n",
  1230. "epoch: 9\n",
  1231. "validation acc increased (0.321705 ---> 0.321705)\n",
  1232. "validation acc increased (0.321705 ---> 0.321705)\n",
  1233. "epoch 9: train loss = 0.6811107120746868, l1loss = 1.1223840780058507, train acc = 0.5488534569740295,\n",
  1234. "val_loss = 0.7214035119197165, val_acc = 0.3682170510292053\n",
  1235. "\n",
  1236. "epoch: 10\n",
  1237. "validation acc increased (0.321705 ---> 0.368217)\n",
  1238. "validation acc increased (0.368217 ---> 0.379845)\n",
  1239. "epoch 10: train loss = 0.6758952574620575, l1loss = 1.0303770931268619, train acc = 0.5947158336639404,\n",
  1240. "val_loss = 0.7813697923985563, val_acc = 0.3178294599056244\n",
  1241. "\n",
  1242. "epoch: 11\n",
  1243. "epoch 11: train loss = 0.6630049520213963, l1loss = 0.9292449082952673, train acc = 0.6096709966659546,\n",
  1244. "val_loss = 0.7966540109279544, val_acc = 0.3372093141078949\n",
  1245. "\n",
  1246. "epoch: 12\n",
  1247. "epoch 12: train loss = 0.6346044056080393, l1loss = 0.8222741206526637, train acc = 0.6495513319969177,\n",
  1248. "val_loss = 1.1256857214047926, val_acc = 0.3178294599056244\n",
  1249. "\n",
  1250. "epoch: 13\n",
  1251. "epoch 13: train loss = 0.5827583085266448, l1loss = 0.7148247218559889, train acc = 0.7008973360061646,\n",
  1252. "val_loss = 0.9412916704665782, val_acc = 0.38759690523147583\n",
  1253. "\n",
  1254. "epoch: 14\n",
  1255. "validation acc increased (0.379845 ---> 0.395349)\n",
  1256. "epoch 14: train loss = 0.521890408674242, l1loss = 0.6116738263536189, train acc = 0.7442672252655029,\n",
  1257. "val_loss = 1.0655778175176576, val_acc = 0.43798449635505676\n",
  1258. "\n",
  1259. "epoch: 15\n",
  1260. "validation acc increased (0.395349 ---> 0.492248)\n",
  1261. "epoch 15: train loss = 0.43515452614809913, l1loss = 0.5178841115648701, train acc = 0.8125622868537903,\n",
  1262. "val_loss = 1.1385327799375666, val_acc = 0.46124032139778137\n",
  1263. "\n",
  1264. "epoch: 16\n",
  1265. "validation acc increased (0.492248 ---> 0.534884)\n",
  1266. "epoch 16: train loss = 0.36243219033314483, l1loss = 0.4364416953454821, train acc = 0.8459621071815491,\n",
  1267. "val_loss = 1.0747009594311085, val_acc = 0.5426356792449951\n",
  1268. "\n",
  1269. "epoch: 17\n",
  1270. "validation acc increased (0.534884 ---> 0.534884)\n",
  1271. "validation acc increased (0.534884 ---> 0.577519)\n",
  1272. "epoch 17: train loss = 0.26884116884599535, l1loss = 0.37061460038362926, train acc = 0.8918245434761047,\n",
  1273. "val_loss = 1.05600640709086, val_acc = 0.5503876209259033\n",
  1274. "\n",
  1275. "epoch: 18\n",
  1276. "epoch 18: train loss = 0.22932734512022937, l1loss = 0.320850499219457, train acc = 0.9082751870155334,\n",
  1277. "val_loss = 1.3345337708791096, val_acc = 0.6085271239280701\n",
  1278. "\n",
  1279. "epoch: 19\n",
  1280. "validation acc increased (0.577519 ---> 0.600775)\n",
  1281. "validation acc increased (0.600775 ---> 0.643411)\n",
  1282. "epoch 19: train loss = 0.19543913260830245, l1loss = 0.28918363494150423, train acc = 0.9252243041992188,\n",
  1283. "val_loss = 1.4304973793887468, val_acc = 0.6589147448539734\n",
  1284. "\n",
  1285. "epoch: 20\n",
  1286. "validation acc increased (0.643411 ---> 0.662791)\n",
  1287. "epoch 20: train loss = 0.12316853676366425, l1loss = 0.27048087601409715, train acc = 0.9526420831680298,\n",
  1288. "val_loss = 1.3577455007290655, val_acc = 0.569767415523529\n",
  1289. "\n",
  1290. "epoch: 21\n",
  1291. "epoch 21: train loss = 0.04757456736990129, l1loss = 0.25799264823451473, train acc = 0.989531397819519,\n",
  1292. "val_loss = 1.6723881137463474, val_acc = 0.565891444683075\n",
  1293. "\n",
  1294. "epoch: 22\n",
  1295. "epoch 22: train loss = 0.02772095015389494, l1loss = 0.24743169342592017, train acc = 0.9950149655342102,\n",
  1296. "val_loss = 1.8008276674564379, val_acc = 0.5930232405662537\n",
  1297. "\n",
  1298. "epoch: 23\n",
  1299. "epoch 23: train loss = 0.03146858667120976, l1loss = 0.2371698537561021, train acc = 0.9940179586410522,\n",
  1300. "val_loss = 1.9554185228234575, val_acc = 0.6124030947685242\n",
  1301. "\n",
  1302. "epoch: 24\n",
  1303. "epoch 24: train loss = 0.10344059998587384, l1loss = 0.23161495476218305, train acc = 0.9561315774917603,\n",
  1304. "val_loss = 1.9649058589495199, val_acc = 0.538759708404541\n",
  1305. "\n",
  1306. "epoch: 25\n",
  1307. "epoch 25: train loss = 0.1441766292168754, l1loss = 0.22718537122694588, train acc = 0.9411764740943909,\n",
  1308. "val_loss = 1.2929859771284946, val_acc = 0.5891472697257996\n",
  1309. "\n",
  1310. "epoch: 26\n",
  1311. "epoch 26: train loss = 0.048959363251924515, l1loss = 0.21805687045171515, train acc = 0.9880359172821045,\n",
  1312. "val_loss = 1.5774617324503817, val_acc = 0.6124030947685242\n",
  1313. "\n",
  1314. "epoch: 27\n",
  1315. "epoch 27: train loss = 0.012611901554244673, l1loss = 0.20935222295559533, train acc = 0.9995014667510986,\n",
  1316. "val_loss = 1.885564662227335, val_acc = 0.6201550364494324\n",
  1317. "\n",
  1318. "epoch: 28\n",
  1319. "epoch 28: train loss = 0.006157807443116384, l1loss = 0.19971955642624128, train acc = 1.0,\n",
  1320. "val_loss = 1.8642971059993314, val_acc = 0.5852712988853455\n",
  1321. "\n",
  1322. "!!! overfitted !!!\n",
  1323. "tensor(51)\n",
  1324. "tensor(19)\n",
  1325. "early stoping results:\n",
  1326. "\t [tensor(0.5833), tensor(0.6354), tensor(0.3646)]\n",
  1327. "\t [tensor(0.5737), tensor(0.4652), tensor(0.5414)]\n",
  1328. "tensor(80)\n",
  1329. "tensor(34)\n",
  1330. "full train results:\n",
  1331. "\t [tensor(0.5312), tensor(0.5365), tensor(0.5938)]\n",
  1332. "\t [tensor(0.9995), tensor(1.), tensor(1.)]\n",
  1333. "tensor(76)\n",
  1334. "tensor(36)\n",
  1335. "best accs results:\n",
  1336. "\t [tensor(0.6042), tensor(0.6354), tensor(0.5833)]\n",
  1337. "\t [tensor(0.6064), tensor(0.4652), tensor(0.6461)]\n",
  1338. "[1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1]\n",
  1339. "-----------------------------Fold 4---------------\n",
  1340. "preparing dataloaders...\n",
  1341. "coef when 0 > 1 1\n",
  1342. "creating model...\n",
  1343. "calculating total steps...\n",
  1344. "epoch: 1\n",
  1345. "validation loss decreased (inf ---> 0.699053), val_acc = 0.3255814015865326\n",
  1346. "validation acc increased (0.000000 ---> 0.325581)\n",
  1347. "validation acc increased (0.325581 ---> 0.325581)\n",
  1348. "epoch 1: train loss = 0.6915451809986757, l1loss = 1.482684857348502, train acc = 0.5393818616867065,\n",
  1349. "val_loss = 0.7069418707559275, val_acc = 0.3255814015865326\n",
  1350. "\n",
  1351. "epoch: 2\n",
  1352. "validation acc increased (0.325581 ---> 0.325581)\n",
  1353. "validation acc increased (0.325581 ---> 0.325581)\n",
  1354. "epoch 2: train loss = 0.6905436350602809, l1loss = 1.4623768342694161, train acc = 0.5403788685798645,\n",
  1355. "val_loss = 0.7145971189173617, val_acc = 0.3255814015865326\n",
  1356. "\n",
  1357. "epoch: 3\n",
  1358. "validation acc increased (0.325581 ---> 0.325581)\n",
  1359. "validation acc increased (0.325581 ---> 0.325581)\n",
  1360. "epoch 3: train loss = 0.6898230171631483, l1loss = 1.438654139533951, train acc = 0.5403788685798645,\n",
  1361. "val_loss = 0.7176525223162747, val_acc = 0.3255814015865326\n",
  1362. "\n",
  1363. "epoch: 4\n",
  1364. "validation acc increased (0.325581 ---> 0.325581)\n",
  1365. "validation acc increased (0.325581 ---> 0.325581)\n",
  1366. "epoch 4: train loss = 0.6894210968036595, l1loss = 1.4091600701435731, train acc = 0.5403788685798645,\n",
  1367. "val_loss = 0.7221627840700076, val_acc = 0.3255814015865326\n",
  1368. "\n",
  1369. "epoch: 5\n",
  1370. "validation acc increased (0.325581 ---> 0.325581)\n",
  1371. "validation acc increased (0.325581 ---> 0.325581)\n",
  1372. "epoch 5: train loss = 0.688976728904283, l1loss = 1.3717759866657429, train acc = 0.5403788685798645,\n",
  1373. "val_loss = 0.7216660745384157, val_acc = 0.3255814015865326\n",
  1374. "\n",
  1375. "epoch: 6\n",
  1376. "validation acc increased (0.325581 ---> 0.325581)\n",
  1377. "validation acc increased (0.325581 ---> 0.325581)\n",
  1378. "epoch 6: train loss = 0.6885826580545839, l1loss = 1.324531928254505, train acc = 0.5403788685798645,\n",
  1379. "val_loss = 0.7219718865645949, val_acc = 0.3255814015865326\n",
  1380. "\n",
  1381. "epoch: 7\n",
  1382. "validation acc increased (0.325581 ---> 0.325581)\n",
  1383. "validation acc increased (0.325581 ---> 0.325581)\n",
  1384. "epoch 7: train loss = 0.6881202621569306, l1loss = 1.26606709008678, train acc = 0.5403788685798645,\n",
  1385. "val_loss = 0.7203695473744888, val_acc = 0.3255814015865326\n",
  1386. "\n",
  1387. "epoch: 8\n",
  1388. "validation acc increased (0.325581 ---> 0.325581)\n",
  1389. "validation acc increased (0.325581 ---> 0.325581)\n",
  1390. "epoch 8: train loss = 0.6871786932883448, l1loss = 1.1954490566776614, train acc = 0.5403788685798645,\n",
  1391. "val_loss = 0.7235223895819612, val_acc = 0.3255814015865326\n",
  1392. "\n",
  1393. "epoch: 9\n"
  1394. ]
  1395. },
  1396. {
  1397. "name": "stdout",
  1398. "output_type": "stream",
  1399. "text": [
  1400. "validation acc increased (0.325581 ---> 0.325581)\n",
  1401. "validation acc increased (0.325581 ---> 0.325581)\n",
  1402. "epoch 9: train loss = 0.6859321622168673, l1loss = 1.1123363999046334, train acc = 0.5403788685798645,\n",
  1403. "val_loss = 0.7276398294655851, val_acc = 0.3255814015865326\n",
  1404. "\n",
  1405. "epoch: 10\n",
  1406. "validation acc increased (0.325581 ---> 0.325581)\n",
  1407. "validation acc increased (0.325581 ---> 0.325581)\n",
  1408. "epoch 10: train loss = 0.6838702996849182, l1loss = 1.0172734350887158, train acc = 0.5403788685798645,\n",
  1409. "val_loss = 0.728483495324157, val_acc = 0.3294573724269867\n",
  1410. "\n",
  1411. "epoch: 11\n",
  1412. "validation acc increased (0.325581 ---> 0.329457)\n",
  1413. "validation loss decreased (0.699053 ---> 0.696120), val_acc = 0.4883720874786377\n",
  1414. "validation acc increased (0.329457 ---> 0.488372)\n",
  1415. "epoch 11: train loss = 0.6797237210235709, l1loss = 0.9119024760464015, train acc = 0.5677965879440308,\n",
  1416. "val_loss = 0.6912261903748032, val_acc = 0.5077519416809082\n",
  1417. "\n",
  1418. "epoch: 12\n",
  1419. "validation loss decreased (0.696120 ---> 0.692533), val_acc = 0.5155038833618164\n",
  1420. "validation acc increased (0.488372 ---> 0.515504)\n",
  1421. "epoch 12: train loss = 0.6665826211660238, l1loss = 0.7991669664710969, train acc = 0.6091724634170532,\n",
  1422. "val_loss = 0.7750974052636198, val_acc = 0.3527131676673889\n",
  1423. "\n",
  1424. "epoch: 13\n",
  1425. "epoch 13: train loss = 0.6396277128521015, l1loss = 0.6842512581664567, train acc = 0.6535393595695496,\n",
  1426. "val_loss = 0.637429671694142, val_acc = 0.6472868323326111\n",
  1427. "\n",
  1428. "epoch: 14\n",
  1429. "validation loss decreased (0.692533 ---> 0.639330), val_acc = 0.6666666865348816\n",
  1430. "validation acc increased (0.515504 ---> 0.666667)\n",
  1431. "epoch 14: train loss = 0.5922036307640114, l1loss = 0.5737616670571438, train acc = 0.6919242143630981,\n",
  1432. "val_loss = 0.7422484321187633, val_acc = 0.5465116500854492\n",
  1433. "\n",
  1434. "epoch: 15\n",
  1435. "epoch 15: train loss = 0.4942521263927905, l1loss = 0.4735739782586293, train acc = 0.776669979095459,\n",
  1436. "val_loss = 0.8247309513101282, val_acc = 0.6472868323326111\n",
  1437. "\n",
  1438. "epoch: 16\n",
  1439. "epoch 16: train loss = 0.4356083417402307, l1loss = 0.38790225777645054, train acc = 0.7911266088485718,\n",
  1440. "val_loss = 0.8231048981348673, val_acc = 0.6317829489707947\n",
  1441. "\n",
  1442. "epoch: 17\n",
  1443. "epoch 17: train loss = 0.3488304465563442, l1loss = 0.3178104176181382, train acc = 0.8534396886825562,\n",
  1444. "val_loss = 0.9343741550001987, val_acc = 0.5852712988853455\n",
  1445. "\n",
  1446. "epoch: 18\n",
  1447. "epoch 18: train loss = 0.2602038436670484, l1loss = 0.2649042825934181, train acc = 0.8983050584793091,\n",
  1448. "val_loss = 1.105872887511586, val_acc = 0.5968992114067078\n",
  1449. "\n",
  1450. "epoch: 19\n",
  1451. "epoch 19: train loss = 0.16879668974448533, l1loss = 0.2346440425898475, train acc = 0.9421734809875488,\n",
  1452. "val_loss = 1.0993869045908138, val_acc = 0.5852712988853455\n",
  1453. "\n",
  1454. "epoch: 20\n",
  1455. "epoch 20: train loss = 0.12419395824729029, l1loss = 0.22091067336492262, train acc = 0.9596211314201355,\n",
  1456. "val_loss = 1.4720232468242793, val_acc = 0.6317829489707947\n",
  1457. "\n",
  1458. "epoch: 21\n",
  1459. "epoch 21: train loss = 0.1183394953786792, l1loss = 0.20997104164610356, train acc = 0.9586241245269775,\n",
  1460. "val_loss = 1.61035810514938, val_acc = 0.6124030947685242\n",
  1461. "\n",
  1462. "epoch: 22\n",
  1463. "epoch 22: train loss = 0.048374136068588, l1loss = 0.20068507425390475, train acc = 0.9885343909263611,\n",
  1464. "val_loss = 1.7387195844749213, val_acc = 0.6395348906517029\n",
  1465. "\n",
  1466. "epoch: 23\n",
  1467. "epoch 23: train loss = 0.02681651372362229, l1loss = 0.19265636617497933, train acc = 0.9950149655342102,\n",
  1468. "val_loss = 1.9591693790384042, val_acc = 0.6356589198112488\n",
  1469. "\n",
  1470. "epoch: 24\n",
  1471. "epoch 24: train loss = 0.12268258048851018, l1loss = 0.19024286480808067, train acc = 0.9506480693817139,\n",
  1472. "val_loss = 1.5421607235605403, val_acc = 0.6007751822471619\n",
  1473. "\n",
  1474. "epoch: 25\n",
  1475. "epoch 25: train loss = 0.12608384469511028, l1loss = 0.1905509570422225, train acc = 0.9526420831680298,\n",
  1476. "val_loss = 1.6125494640089513, val_acc = 0.5775193572044373\n",
  1477. "\n",
  1478. "epoch: 26\n",
  1479. "epoch 26: train loss = 0.04950928593338546, l1loss = 0.1808391643366809, train acc = 0.9845463633537292,\n",
  1480. "val_loss = 1.5583655085674553, val_acc = 0.5968992114067078\n",
  1481. "\n",
  1482. "epoch: 27\n",
  1483. "epoch 27: train loss = 0.023618471229324492, l1loss = 0.1748058880611526, train acc = 0.9955134391784668,\n",
  1484. "val_loss = 1.6373267991598262, val_acc = 0.6317829489707947\n",
  1485. "\n",
  1486. "epoch: 28\n",
  1487. "epoch 28: train loss = 0.009286384627497861, l1loss = 0.16702499122526923, train acc = 0.9995014667510986,\n",
  1488. "val_loss = 1.7560179769530777, val_acc = 0.5736433863639832\n",
  1489. "\n",
  1490. "epoch: 29\n",
  1491. "epoch 29: train loss = 0.004661366911762852, l1loss = 0.1595693781808509, train acc = 1.0,\n",
  1492. "val_loss = 1.8593065498411194, val_acc = 0.5736433863639832\n",
  1493. "\n",
  1494. "!!! overfitted !!!\n",
  1495. "tensor(77)\n",
  1496. "tensor(40)\n",
  1497. "early stoping results:\n",
  1498. "\t [tensor(0.5833), tensor(0.6354), tensor(0.3646), tensor(0.6126)]\n",
  1499. "\t [tensor(0.5737), tensor(0.4652), tensor(0.5414), tensor(0.5115)]\n",
  1500. "tensor(67)\n",
  1501. "tensor(39)\n",
  1502. "full train results:\n",
  1503. "\t [tensor(0.5312), tensor(0.5365), tensor(0.5938), tensor(0.5550)]\n",
  1504. "\t [tensor(0.9995), tensor(1.), tensor(1.), tensor(1.)]\n",
  1505. "tensor(72)\n",
  1506. "tensor(45)\n",
  1507. "best accs results:\n",
  1508. "\t [tensor(0.6042), tensor(0.6354), tensor(0.5833), tensor(0.6126)]\n",
  1509. "\t [tensor(0.6064), tensor(0.4652), tensor(0.6461), tensor(0.5115)]\n",
  1510. "[0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1]\n",
  1511. "-----------------------------Fold 5---------------\n",
  1512. "preparing dataloaders...\n",
  1513. "coef when 0 > 1 1\n",
  1514. "creating model...\n",
  1515. "calculating total steps...\n",
  1516. "epoch: 1\n",
  1517. "validation loss decreased (inf ---> 0.680743), val_acc = 0.5930232405662537\n",
  1518. "validation acc increased (0.000000 ---> 0.593023)\n",
  1519. "validation acc increased (0.593023 ---> 0.593023)\n",
  1520. "epoch 1: train loss = 0.6970352851473715, l1loss = 1.4848045129920133, train acc = 0.4750629663467407,\n",
  1521. "val_loss = 0.6833919952082079, val_acc = 0.5930232405662537\n",
  1522. "\n",
  1523. "epoch: 2\n",
  1524. "validation acc increased (0.593023 ---> 0.593023)\n",
  1525. "validation acc increased (0.593023 ---> 0.593023)\n",
  1526. "epoch 2: train loss = 0.6939090573517441, l1loss = 1.4651734015202942, train acc = 0.49068009853363037,\n",
  1527. "val_loss = 0.6874888668688692, val_acc = 0.5930232405662537\n",
  1528. "\n",
  1529. "epoch: 3\n",
  1530. "validation acc increased (0.593023 ---> 0.593023)\n",
  1531. "epoch 3: train loss = 0.6920081238902787, l1loss = 1.4423043520084255, train acc = 0.5219143629074097,\n",
  1532. "val_loss = 0.6943495569303054, val_acc = 0.46124032139778137\n",
  1533. "\n",
  1534. "epoch: 4\n",
  1535. "epoch 4: train loss = 0.6908973218511875, l1loss = 1.4135601722323323, train acc = 0.5249370336532593,\n",
  1536. "val_loss = 0.7015382374903952, val_acc = 0.40697672963142395\n",
  1537. "\n",
  1538. "epoch: 5\n",
  1539. "epoch 5: train loss = 0.6905066842095978, l1loss = 1.37683726215843, train acc = 0.5249370336532593,\n",
  1540. "val_loss = 0.7027538501939108, val_acc = 0.40697672963142395\n",
  1541. "\n",
  1542. "epoch: 6\n",
  1543. "epoch 6: train loss = 0.689899053081157, l1loss = 1.33054918318011, train acc = 0.5254408121109009,\n",
  1544. "val_loss = 0.7039248813954435, val_acc = 0.40697672963142395\n",
  1545. "\n",
  1546. "epoch: 7\n",
  1547. "epoch 7: train loss = 0.6889980239291635, l1loss = 1.2732717847343655, train acc = 0.5254408121109009,\n",
  1548. "val_loss = 0.7034929233003956, val_acc = 0.40697672963142395\n",
  1549. "\n",
  1550. "epoch: 8\n",
  1551. "epoch 8: train loss = 0.6880159931158839, l1loss = 1.2041282832172115, train acc = 0.5471032857894897,\n",
  1552. "val_loss = 0.7000225662261017, val_acc = 0.43410852551460266\n",
  1553. "\n",
  1554. "epoch: 9\n",
  1555. "epoch 9: train loss = 0.6862827549953605, l1loss = 1.1230295440712263, train acc = 0.5496221780776978,\n",
  1556. "val_loss = 0.7079056478285974, val_acc = 0.41860464215278625\n",
  1557. "\n",
  1558. "epoch: 10\n",
  1559. "epoch 10: train loss = 0.6821412534197272, l1loss = 1.0302875974916992, train acc = 0.575818657875061,\n",
  1560. "val_loss = 0.7016733090082804, val_acc = 0.4728682041168213\n",
  1561. "\n",
  1562. "epoch: 11\n",
  1563. "epoch 11: train loss = 0.6741724207058962, l1loss = 0.9277493146564858, train acc = 0.6120907068252563,\n",
  1564. "val_loss = 0.7347481019737184, val_acc = 0.43798449635505676\n",
  1565. "\n",
  1566. "epoch: 12\n",
  1567. "epoch 12: train loss = 0.6619942795419573, l1loss = 0.8190199558020239, train acc = 0.6171284914016724,\n",
  1568. "val_loss = 0.7454949183057445, val_acc = 0.4728682041168213\n",
  1569. "\n",
  1570. "epoch: 13\n"
  1571. ]
  1572. },
  1573. {
  1574. "name": "stdout",
  1575. "output_type": "stream",
  1576. "text": [
  1577. "epoch 13: train loss = 0.637912023097502, l1loss = 0.7075121821023955, train acc = 0.6392946839332581,\n",
  1578. "val_loss = 0.7158694054729254, val_acc = 0.4922480583190918\n",
  1579. "\n",
  1580. "epoch: 14\n",
  1581. "epoch 14: train loss = 0.606015481966869, l1loss = 0.5979608490425034, train acc = 0.6806045174598694,\n",
  1582. "val_loss = 0.7537827140601107, val_acc = 0.5852712988853455\n",
  1583. "\n",
  1584. "epoch: 15\n",
  1585. "epoch 15: train loss = 0.5577827427189056, l1loss = 0.49493083063541193, train acc = 0.7193954586982727,\n",
  1586. "val_loss = 0.7263471793758777, val_acc = 0.565891444683075\n",
  1587. "\n",
  1588. "epoch: 16\n",
  1589. "epoch 16: train loss = 0.4718546643965791, l1loss = 0.40398407203124215, train acc = 0.7874055504798889,\n",
  1590. "val_loss = 1.424316991669263, val_acc = 0.41860464215278625\n",
  1591. "\n",
  1592. "epoch: 17\n",
  1593. "epoch 17: train loss = 0.3839408636843828, l1loss = 0.3292035478038211, train acc = 0.8372796177864075,\n",
  1594. "val_loss = 1.0002119476481002, val_acc = 0.5193798542022705\n",
  1595. "\n",
  1596. "epoch: 18\n",
  1597. "epoch 18: train loss = 0.3173008106217276, l1loss = 0.27490125777439145, train acc = 0.8755667209625244,\n",
  1598. "val_loss = 1.1687451869018317, val_acc = 0.5775193572044373\n",
  1599. "\n",
  1600. "epoch: 19\n",
  1601. "epoch 19: train loss = 0.16879188284765864, l1loss = 0.2434915311315498, train acc = 0.9465994834899902,\n",
  1602. "val_loss = 1.2804822773896447, val_acc = 0.5930232405662537\n",
  1603. "\n",
  1604. "epoch: 20\n",
  1605. "epoch 20: train loss = 0.13567791892689482, l1loss = 0.2295223989249477, train acc = 0.9491183757781982,\n",
  1606. "val_loss = 1.385039623393569, val_acc = 0.5620155334472656\n",
  1607. "\n",
  1608. "epoch: 21\n",
  1609. "validation acc increased (0.593023 ---> 0.624031)\n",
  1610. "epoch 21: train loss = 0.13815371947789973, l1loss = 0.22059971798277023, train acc = 0.9465994834899902,\n",
  1611. "val_loss = 2.150006371875142, val_acc = 0.5968992114067078\n",
  1612. "\n",
  1613. "epoch: 22\n",
  1614. "epoch 22: train loss = 0.10025845674858885, l1loss = 0.21158002366497175, train acc = 0.9622166156768799,\n",
  1615. "val_loss = 1.5413802104402883, val_acc = 0.5426356792449951\n",
  1616. "\n",
  1617. "epoch: 23\n",
  1618. "epoch 23: train loss = 0.030761046739534406, l1loss = 0.2031533922371396, train acc = 0.9939546585083008,\n",
  1619. "val_loss = 1.933851578438929, val_acc = 0.5891472697257996\n",
  1620. "\n",
  1621. "epoch: 24\n",
  1622. "epoch 24: train loss = 0.012612140763748052, l1loss = 0.19433939178434367, train acc = 0.9994962215423584,\n",
  1623. "val_loss = 1.86677174789961, val_acc = 0.5852712988853455\n",
  1624. "\n",
  1625. "epoch: 25\n",
  1626. "epoch 25: train loss = 0.007508058874616845, l1loss = 0.1846848609315358, train acc = 1.0,\n",
  1627. "val_loss = 1.7752613688624181, val_acc = 0.5930232405662537\n",
  1628. "\n",
  1629. "!!! overfitted !!!\n",
  1630. "tensor(80)\n",
  1631. "tensor(41)\n",
  1632. "early stoping results:\n",
  1633. "\t [tensor(0.5833), tensor(0.6354), tensor(0.3646), tensor(0.6126), tensor(0.6335)]\n",
  1634. "\t [tensor(0.5737), tensor(0.4652), tensor(0.5414), tensor(0.5115), tensor(0.4751)]\n",
  1635. "tensor(64)\n",
  1636. "tensor(36)\n",
  1637. "full train results:\n",
  1638. "\t [tensor(0.5312), tensor(0.5365), tensor(0.5938), tensor(0.5550), tensor(0.5236)]\n",
  1639. "\t [tensor(0.9995), tensor(1.), tensor(1.), tensor(1.), tensor(1.)]\n",
  1640. "tensor(75)\n",
  1641. "tensor(32)\n",
  1642. "best accs results:\n",
  1643. "\t [tensor(0.6042), tensor(0.6354), tensor(0.5833), tensor(0.6126), tensor(0.5602)]\n",
  1644. "\t [tensor(0.6064), tensor(0.4652), tensor(0.6461), tensor(0.5115), tensor(0.9521)]\n",
  1645. "[0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1]\n",
  1646. "-----------------------------Fold 6---------------\n",
  1647. "preparing dataloaders...\n",
  1648. "coef when 0 > 1 1\n",
  1649. "creating model...\n",
  1650. "calculating total steps...\n",
  1651. "epoch: 1\n",
  1652. "validation loss decreased (inf ---> 0.720092), val_acc = 0.3720930218696594\n",
  1653. "validation acc increased (0.000000 ---> 0.372093)\n",
  1654. "validation loss decreased (0.720092 ---> 0.713030), val_acc = 0.3720930218696594\n",
  1655. "validation acc increased (0.372093 ---> 0.372093)\n",
  1656. "epoch 1: train loss = 0.6914953364651564, l1loss = 1.4853989268497096, train acc = 0.5315948128700256,\n",
  1657. "val_loss = 0.7110218992528989, val_acc = 0.3720930218696594\n",
  1658. "\n",
  1659. "epoch: 2\n",
  1660. "validation loss decreased (0.713030 ---> 0.710726), val_acc = 0.3720930218696594\n",
  1661. "validation acc increased (0.372093 ---> 0.372093)\n",
  1662. "validation loss decreased (0.710726 ---> 0.709240), val_acc = 0.3720930218696594\n",
  1663. "validation acc increased (0.372093 ---> 0.372093)\n",
  1664. "epoch 2: train loss = 0.6908083540745221, l1loss = 1.4647457792144363, train acc = 0.5315948128700256,\n",
  1665. "val_loss = 0.7090809151183727, val_acc = 0.3720930218696594\n",
  1666. "\n",
  1667. "epoch: 3\n",
  1668. "validation loss decreased (0.709240 ---> 0.709072), val_acc = 0.3720930218696594\n",
  1669. "validation acc increased (0.372093 ---> 0.372093)\n",
  1670. "validation loss decreased (0.709072 ---> 0.709056), val_acc = 0.3720930218696594\n",
  1671. "validation acc increased (0.372093 ---> 0.372093)\n",
  1672. "epoch 3: train loss = 0.6904735120990451, l1loss = 1.4407883356423412, train acc = 0.5315948128700256,\n",
  1673. "val_loss = 0.7095573918763981, val_acc = 0.3720930218696594\n",
  1674. "\n",
  1675. "epoch: 4\n",
  1676. "validation acc increased (0.372093 ---> 0.372093)\n",
  1677. "validation acc increased (0.372093 ---> 0.372093)\n",
  1678. "epoch 4: train loss = 0.6901337791947927, l1loss = 1.4112883624485288, train acc = 0.5315948128700256,\n",
  1679. "val_loss = 0.7101693338201952, val_acc = 0.3720930218696594\n",
  1680. "\n",
  1681. "epoch: 5\n",
  1682. "validation acc increased (0.372093 ---> 0.372093)\n",
  1683. "validation acc increased (0.372093 ---> 0.372093)\n",
  1684. "epoch 5: train loss = 0.6895435992310733, l1loss = 1.3740417406097458, train acc = 0.5315948128700256,\n",
  1685. "val_loss = 0.7115494068278823, val_acc = 0.3720930218696594\n",
  1686. "\n",
  1687. "epoch: 6\n",
  1688. "validation acc increased (0.372093 ---> 0.372093)\n",
  1689. "validation acc increased (0.372093 ---> 0.372093)\n",
  1690. "epoch 6: train loss = 0.6889353504510916, l1loss = 1.3271373138504259, train acc = 0.5315948128700256,\n",
  1691. "val_loss = 0.7145411603210509, val_acc = 0.3720930218696594\n",
  1692. "\n",
  1693. "epoch: 7\n",
  1694. "validation acc increased (0.372093 ---> 0.372093)\n",
  1695. "validation acc increased (0.372093 ---> 0.372093)\n",
  1696. "epoch 7: train loss = 0.6881078454771395, l1loss = 1.2690683422739073, train acc = 0.5315948128700256,\n",
  1697. "val_loss = 0.7155752542407013, val_acc = 0.3720930218696594\n",
  1698. "\n",
  1699. "epoch: 8\n",
  1700. "validation acc increased (0.372093 ---> 0.372093)\n",
  1701. "validation loss decreased (0.709056 ---> 0.707930), val_acc = 0.3682170510292053\n",
  1702. "epoch 8: train loss = 0.6867945939152984, l1loss = 1.198984569627997, train acc = 0.5461384057998657,\n",
  1703. "val_loss = 0.7080177447592565, val_acc = 0.3720930218696594\n",
  1704. "\n",
  1705. "epoch: 9\n",
  1706. "validation acc increased (0.372093 ---> 0.372093)\n",
  1707. "epoch 9: train loss = 0.6847166879963851, l1loss = 1.1167998019766545, train acc = 0.5511534810066223,\n",
  1708. "val_loss = 0.715700043726337, val_acc = 0.41472867131233215\n",
  1709. "\n",
  1710. "epoch: 10\n",
  1711. "validation acc increased (0.372093 ---> 0.414729)\n",
  1712. "epoch 10: train loss = 0.6799348440906827, l1loss = 1.0231370177407682, train acc = 0.5797392129898071,\n",
  1713. "val_loss = 0.7157923727072486, val_acc = 0.41860464215278625\n",
  1714. "\n",
  1715. "epoch: 11\n",
  1716. "validation acc increased (0.414729 ---> 0.449612)\n",
  1717. "validation loss decreased (0.707930 ---> 0.696232), val_acc = 0.5116279125213623\n",
  1718. "validation acc increased (0.449612 ---> 0.511628)\n",
  1719. "epoch 11: train loss = 0.672254242533547, l1loss = 0.9196460943523357, train acc = 0.6078234910964966,\n",
  1720. "val_loss = 0.7157423847405485, val_acc = 0.45348837971687317\n",
  1721. "\n",
  1722. "epoch: 12\n",
  1723. "validation acc increased (0.511628 ---> 0.515504)\n",
  1724. "epoch 12: train loss = 0.6543741083312536, l1loss = 0.8098590250240046, train acc = 0.6424272656440735,\n",
  1725. "val_loss = 0.8028264553971993, val_acc = 0.43410852551460266\n",
  1726. "\n",
  1727. "epoch: 13\n",
  1728. "validation acc increased (0.515504 ---> 0.554264)\n",
  1729. "epoch 13: train loss = 0.6407015342769795, l1loss = 0.6978255600006196, train acc = 0.6399197578430176,\n",
  1730. "val_loss = 0.7011320503183114, val_acc = 0.6085271239280701\n",
  1731. "\n",
  1732. "epoch: 14\n",
  1733. "validation acc increased (0.554264 ---> 0.558140)\n",
  1734. "validation acc increased (0.558140 ---> 0.600775)\n",
  1735. "epoch 14: train loss = 0.5929560238045221, l1loss = 0.5874572954660912, train acc = 0.6965897679328918,\n",
  1736. "val_loss = 0.7719989308091098, val_acc = 0.5\n",
  1737. "\n",
  1738. "epoch: 15\n",
  1739. "validation acc increased (0.600775 ---> 0.616279)\n",
  1740. "epoch 15: train loss = 0.5356296086263513, l1loss = 0.4843397445700233, train acc = 0.7311936020851135,\n",
  1741. "val_loss = 1.2483898142511531, val_acc = 0.3798449635505676\n",
  1742. "\n",
  1743. "epoch: 16\n"
  1744. ]
  1745. },
  1746. {
  1747. "name": "stdout",
  1748. "output_type": "stream",
  1749. "text": [
  1750. "epoch 16: train loss = 0.4664823236831332, l1loss = 0.39368396988484183, train acc = 0.7918756008148193,\n",
  1751. "val_loss = 0.9508252638254979, val_acc = 0.5968992114067078\n",
  1752. "\n",
  1753. "epoch: 17\n",
  1754. "epoch 17: train loss = 0.3485482805889612, l1loss = 0.32071299114102947, train acc = 0.8515546917915344,\n",
  1755. "val_loss = 1.4121340199034342, val_acc = 0.43023255467414856\n",
  1756. "\n",
  1757. "epoch: 18\n",
  1758. "epoch 18: train loss = 0.2641293948428442, l1loss = 0.26571550107408787, train acc = 0.8966900706291199,\n",
  1759. "val_loss = 2.8454202820164287, val_acc = 0.356589138507843\n",
  1760. "\n",
  1761. "epoch: 19\n",
  1762. "epoch 19: train loss = 0.2165779782872023, l1loss = 0.23378948680496026, train acc = 0.9132397174835205,\n",
  1763. "val_loss = 1.407352695169375, val_acc = 0.5193798542022705\n",
  1764. "\n",
  1765. "epoch: 20\n",
  1766. "epoch 20: train loss = 0.14256087192890038, l1loss = 0.21813757950766993, train acc = 0.9538615942001343,\n",
  1767. "val_loss = 1.7007370909979178, val_acc = 0.4883720874786377\n",
  1768. "\n",
  1769. "epoch: 21\n",
  1770. "epoch 21: train loss = 0.0572467178868554, l1loss = 0.20835738851050795, train acc = 0.9869608879089355,\n",
  1771. "val_loss = 1.6843582021086947, val_acc = 0.5581395626068115\n",
  1772. "\n",
  1773. "epoch: 22\n",
  1774. "epoch 22: train loss = 0.03993170134117874, l1loss = 0.20134628987838415, train acc = 0.9904714226722717,\n",
  1775. "val_loss = 1.7536737527770474, val_acc = 0.565891444683075\n",
  1776. "\n",
  1777. "epoch: 23\n",
  1778. "epoch 23: train loss = 0.037888755216641555, l1loss = 0.19423958542593264, train acc = 0.9899699091911316,\n",
  1779. "val_loss = 1.9527307499286741, val_acc = 0.5581395626068115\n",
  1780. "\n",
  1781. "epoch: 24\n",
  1782. "epoch 24: train loss = 0.05171581631976599, l1loss = 0.18909807017478444, train acc = 0.9849548935890198,\n",
  1783. "val_loss = 2.5161986521972244, val_acc = 0.5852712988853455\n",
  1784. "\n",
  1785. "epoch: 25\n",
  1786. "epoch 25: train loss = 0.07914294568875967, l1loss = 0.18467072341422977, train acc = 0.9719157218933105,\n",
  1787. "val_loss = 3.2461071727190944, val_acc = 0.45348837971687317\n",
  1788. "\n",
  1789. "epoch: 26\n",
  1790. "epoch 26: train loss = 0.057620100116538425, l1loss = 0.18046283077751263, train acc = 0.9789367914199829,\n",
  1791. "val_loss = 2.2363041315891947, val_acc = 0.6279069781303406\n",
  1792. "\n",
  1793. "epoch: 27\n",
  1794. "validation acc increased (0.616279 ---> 0.624031)\n",
  1795. "epoch 27: train loss = 0.035453362097083746, l1loss = 0.17314500579145273, train acc = 0.9899699091911316,\n",
  1796. "val_loss = 2.3932818331459695, val_acc = 0.5116279125213623\n",
  1797. "\n",
  1798. "epoch: 28\n",
  1799. "epoch 28: train loss = 0.017172363360665566, l1loss = 0.1665714439621182, train acc = 0.9964894652366638,\n",
  1800. "val_loss = 2.209194153778313, val_acc = 0.5736433863639832\n",
  1801. "\n",
  1802. "epoch: 29\n",
  1803. "epoch 29: train loss = 0.010634527754677514, l1loss = 0.16049564522929272, train acc = 0.9989969730377197,\n",
  1804. "val_loss = 2.0558686441229295, val_acc = 0.5116279125213623\n",
  1805. "\n",
  1806. "epoch: 30\n",
  1807. "epoch 30: train loss = 0.005607646728614523, l1loss = 0.15422261991316719, train acc = 1.0,\n",
  1808. "val_loss = 2.0884801685348036, val_acc = 0.5581395626068115\n",
  1809. "\n",
  1810. "!!! overfitted !!!\n",
  1811. "tensor(65)\n",
  1812. "tensor(33)\n",
  1813. "early stoping results:\n",
  1814. "\t [tensor(0.5833), tensor(0.6354), tensor(0.3646), tensor(0.6126), tensor(0.6335), tensor(0.5131)]\n",
  1815. "\t [tensor(0.5737), tensor(0.4652), tensor(0.5414), tensor(0.5115), tensor(0.4751), tensor(0.5817)]\n",
  1816. "tensor(73)\n",
  1817. "tensor(35)\n",
  1818. "full train results:\n",
  1819. "\t [tensor(0.5312), tensor(0.5365), tensor(0.5938), tensor(0.5550), tensor(0.5236), tensor(0.5654)]\n",
  1820. "\t [tensor(0.9995), tensor(1.), tensor(1.), tensor(1.), tensor(1.), tensor(1.)]\n",
  1821. "tensor(77)\n",
  1822. "tensor(43)\n",
  1823. "best accs results:\n",
  1824. "\t [tensor(0.6042), tensor(0.6354), tensor(0.5833), tensor(0.6126), tensor(0.5602), tensor(0.6283)]\n",
  1825. "\t [tensor(0.6064), tensor(0.4652), tensor(0.6461), tensor(0.5115), tensor(0.9521), tensor(0.7914)]\n",
  1826. "[0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0]\n",
  1827. "-----------------------------Fold 7---------------\n",
  1828. "preparing dataloaders...\n",
  1829. "coef when 0 > 1 1\n",
  1830. "creating model...\n",
  1831. "calculating total steps...\n",
  1832. "epoch: 1\n",
  1833. "validation loss decreased (inf ---> 0.680365), val_acc = 0.643410861492157\n",
  1834. "validation acc increased (0.000000 ---> 0.643411)\n",
  1835. "validation acc increased (0.643411 ---> 0.643411)\n",
  1836. "epoch 1: train loss = 0.6937421182204987, l1loss = 1.4836181387297804, train acc = 0.48824411630630493,\n",
  1837. "val_loss = 0.6849656885908556, val_acc = 0.643410861492157\n",
  1838. "\n",
  1839. "epoch: 2\n",
  1840. "validation acc increased (0.643411 ---> 0.643411)\n",
  1841. "epoch 2: train loss = 0.6914882965538727, l1loss = 1.46388185632533, train acc = 0.5357679128646851,\n",
  1842. "val_loss = 0.6942343249801517, val_acc = 0.44573643803596497\n",
  1843. "\n",
  1844. "epoch: 3\n",
  1845. "epoch 3: train loss = 0.6897589440581917, l1loss = 1.4407587112218754, train acc = 0.5352676510810852,\n",
  1846. "val_loss = 0.7051206457522489, val_acc = 0.356589138507843\n",
  1847. "\n",
  1848. "epoch: 4\n",
  1849. "epoch 4: train loss = 0.689329623609498, l1loss = 1.4119728003340164, train acc = 0.5352676510810852,\n",
  1850. "val_loss = 0.7143772563268972, val_acc = 0.356589138507843\n",
  1851. "\n",
  1852. "epoch: 5\n",
  1853. "epoch 5: train loss = 0.6887832490905277, l1loss = 1.375555465255993, train acc = 0.5352676510810852,\n",
  1854. "val_loss = 0.7188024733417718, val_acc = 0.356589138507843\n",
  1855. "\n",
  1856. "epoch: 6\n",
  1857. "epoch 6: train loss = 0.6878896750409106, l1loss = 1.3297643308463007, train acc = 0.5352676510810852,\n",
  1858. "val_loss = 0.7172646388527035, val_acc = 0.356589138507843\n",
  1859. "\n",
  1860. "epoch: 7\n",
  1861. "epoch 7: train loss = 0.6867665288864583, l1loss = 1.273135135625827, train acc = 0.5357679128646851,\n",
  1862. "val_loss = 0.7201978106831395, val_acc = 0.356589138507843\n",
  1863. "\n",
  1864. "epoch: 8\n",
  1865. "epoch 8: train loss = 0.685014221297317, l1loss = 1.2046409373047233, train acc = 0.5402701497077942,\n",
  1866. "val_loss = 0.7213430737340173, val_acc = 0.356589138507843\n",
  1867. "\n",
  1868. "epoch: 9\n",
  1869. "epoch 9: train loss = 0.681378725679473, l1loss = 1.1243868157409203, train acc = 0.5477738976478577,\n",
  1870. "val_loss = 0.73843981591306, val_acc = 0.356589138507843\n",
  1871. "\n",
  1872. "epoch: 10\n",
  1873. "epoch 10: train loss = 0.6753599447808067, l1loss = 1.033160796071244, train acc = 0.5892946720123291,\n",
  1874. "val_loss = 0.7419206292130226, val_acc = 0.3682170510292053\n",
  1875. "\n",
  1876. "epoch: 11\n",
  1877. "epoch 11: train loss = 0.6624713613129426, l1loss = 0.9328325188654909, train acc = 0.614307165145874,\n",
  1878. "val_loss = 0.688416297583617, val_acc = 0.5348837375640869\n",
  1879. "\n",
  1880. "epoch: 12\n",
  1881. "epoch 12: train loss = 0.6369260627070089, l1loss = 0.8273587237005534, train acc = 0.6518259048461914,\n",
  1882. "val_loss = 0.7440652865772099, val_acc = 0.4689922332763672\n",
  1883. "\n",
  1884. "epoch: 13\n",
  1885. "epoch 13: train loss = 0.593051583365001, l1loss = 0.7211097616622184, train acc = 0.6943472027778625,\n",
  1886. "val_loss = 0.7471253086430157, val_acc = 0.6356589198112488\n",
  1887. "\n",
  1888. "epoch: 14\n",
  1889. "epoch 14: train loss = 0.5171202323387837, l1loss = 0.619771498659362, train acc = 0.751375675201416,\n",
  1890. "val_loss = 0.8451099765393161, val_acc = 0.5930232405662537\n",
  1891. "\n",
  1892. "epoch: 15\n",
  1893. "epoch 15: train loss = 0.4243705461715805, l1loss = 0.5292422390538731, train acc = 0.8104051947593689,\n",
  1894. "val_loss = 0.9671652009782865, val_acc = 0.5348837375640869\n",
  1895. "\n",
  1896. "epoch: 16\n",
  1897. "epoch 16: train loss = 0.3493039304164125, l1loss = 0.45268860447400805, train acc = 0.8559279441833496,\n",
  1898. "val_loss = 1.1312974515811418, val_acc = 0.43798449635505676\n",
  1899. "\n",
  1900. "epoch: 17\n",
  1901. "epoch 17: train loss = 0.2992922716763331, l1loss = 0.3898296642148417, train acc = 0.8874437212944031,\n",
  1902. "val_loss = 1.2580841289934261, val_acc = 0.5775193572044373\n",
  1903. "\n",
  1904. "epoch: 18\n",
  1905. "epoch 18: train loss = 0.17743351521821188, l1loss = 0.3432618670310898, train acc = 0.9384692311286926,\n",
  1906. "val_loss = 1.4614967828573182, val_acc = 0.45348837971687317\n",
  1907. "\n",
  1908. "epoch: 19\n",
  1909. "epoch 19: train loss = 0.12819814724123674, l1loss = 0.3091015477309291, train acc = 0.9579789638519287,\n",
  1910. "val_loss = 2.0725105788356575, val_acc = 0.6395348906517029\n",
  1911. "\n",
  1912. "epoch: 20\n",
  1913. "epoch 20: train loss = 0.14354813504794528, l1loss = 0.2900429670067654, train acc = 0.9454727172851562,\n",
  1914. "val_loss = 2.0894346117049225, val_acc = 0.43798449635505676\n",
  1915. "\n",
  1916. "epoch: 21\n",
  1917. "epoch 21: train loss = 0.09740429143400386, l1loss = 0.276254555369807, train acc = 0.9649825096130371,\n",
  1918. "val_loss = 1.6611481997393822, val_acc = 0.5155038833618164\n",
  1919. "\n",
  1920. "epoch: 22\n"
  1921. ]
  1922. },
  1923. {
  1924. "name": "stdout",
  1925. "output_type": "stream",
  1926. "text": [
  1927. "epoch 22: train loss = 0.03162910269686077, l1loss = 0.2640630051963266, train acc = 0.9929965138435364,\n",
  1928. "val_loss = 2.8269113385400106, val_acc = 0.41472867131233215\n",
  1929. "\n",
  1930. "epoch: 23\n",
  1931. "epoch 23: train loss = 0.02073831153961794, l1loss = 0.25253280331606626, train acc = 0.9969984889030457,\n",
  1932. "val_loss = 1.9658752079157866, val_acc = 0.604651153087616\n",
  1933. "\n",
  1934. "epoch: 24\n",
  1935. "epoch 24: train loss = 0.012647862177856524, l1loss = 0.24088280176508123, train acc = 0.9984992742538452,\n",
  1936. "val_loss = 2.1244828877320816, val_acc = 0.5348837375640869\n",
  1937. "\n",
  1938. "epoch: 25\n",
  1939. "epoch 25: train loss = 0.006505623935028098, l1loss = 0.2303655490748819, train acc = 1.0,\n",
  1940. "val_loss = 2.1552340097205582, val_acc = 0.4961240291595459\n",
  1941. "\n",
  1942. "!!! overfitted !!!\n",
  1943. "tensor(80)\n",
  1944. "tensor(42)\n",
  1945. "early stoping results:\n",
  1946. "\t [tensor(0.5833), tensor(0.6354), tensor(0.3646), tensor(0.6126), tensor(0.6335), tensor(0.5131), tensor(0.6387)]\n",
  1947. "\t [tensor(0.5737), tensor(0.4652), tensor(0.5414), tensor(0.5115), tensor(0.4751), tensor(0.5817), tensor(0.4647)]\n",
  1948. "tensor(79)\n",
  1949. "tensor(36)\n",
  1950. "full train results:\n",
  1951. "\t [tensor(0.5312), tensor(0.5365), tensor(0.5938), tensor(0.5550), tensor(0.5236), tensor(0.5654), tensor(0.6021)]\n",
  1952. "\t [tensor(0.9995), tensor(1.), tensor(1.), tensor(1.), tensor(1.), tensor(1.), tensor(0.9990)]\n",
  1953. "tensor(81)\n",
  1954. "tensor(41)\n",
  1955. "best accs results:\n",
  1956. "\t [tensor(0.6042), tensor(0.6354), tensor(0.5833), tensor(0.6126), tensor(0.5602), tensor(0.6283), tensor(0.6387)]\n",
  1957. "\t [tensor(0.6064), tensor(0.4652), tensor(0.6461), tensor(0.5115), tensor(0.9521), tensor(0.7914), tensor(0.4647)]\n",
  1958. "[1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1]\n",
  1959. "-----------------------------Fold 8---------------\n",
  1960. "preparing dataloaders...\n",
  1961. "coef when 0 > 1 1\n",
  1962. "creating model...\n",
  1963. "calculating total steps...\n",
  1964. "epoch: 1\n",
  1965. "validation loss decreased (inf ---> 0.704280), val_acc = 0.356589138507843\n",
  1966. "validation acc increased (0.000000 ---> 0.356589)\n",
  1967. "validation acc increased (0.356589 ---> 0.356589)\n",
  1968. "epoch 1: train loss = 0.6914031615908471, l1loss = 1.4855487954324338, train acc = 0.5352676510810852,\n",
  1969. "val_loss = 0.7122278712516608, val_acc = 0.356589138507843\n",
  1970. "\n",
  1971. "epoch: 2\n",
  1972. "validation acc increased (0.356589 ---> 0.356589)\n",
  1973. "validation acc increased (0.356589 ---> 0.356589)\n",
  1974. "epoch 2: train loss = 0.6906723660370777, l1loss = 1.4651722050476457, train acc = 0.5352676510810852,\n",
  1975. "val_loss = 0.7149748654328576, val_acc = 0.356589138507843\n",
  1976. "\n",
  1977. "epoch: 3\n",
  1978. "validation acc increased (0.356589 ---> 0.356589)\n",
  1979. "validation acc increased (0.356589 ---> 0.356589)\n",
  1980. "epoch 3: train loss = 0.6902823968193661, l1loss = 1.4415272097995486, train acc = 0.5352676510810852,\n",
  1981. "val_loss = 0.7170244894286458, val_acc = 0.356589138507843\n",
  1982. "\n",
  1983. "epoch: 4\n",
  1984. "validation acc increased (0.356589 ---> 0.356589)\n",
  1985. "validation acc increased (0.356589 ---> 0.356589)\n",
  1986. "epoch 4: train loss = 0.6898218136897619, l1loss = 1.412299975327935, train acc = 0.5352676510810852,\n",
  1987. "val_loss = 0.7177939595178117, val_acc = 0.356589138507843\n",
  1988. "\n",
  1989. "epoch: 5\n",
  1990. "validation acc increased (0.356589 ---> 0.356589)\n",
  1991. "validation acc increased (0.356589 ---> 0.356589)\n",
  1992. "epoch 5: train loss = 0.6893795061672015, l1loss = 1.3753384496045744, train acc = 0.5352676510810852,\n",
  1993. "val_loss = 0.715468819751296, val_acc = 0.356589138507843\n",
  1994. "\n",
  1995. "epoch: 6\n",
  1996. "validation acc increased (0.356589 ---> 0.356589)\n",
  1997. "validation acc increased (0.356589 ---> 0.356589)\n",
  1998. "epoch 6: train loss = 0.6886429281876408, l1loss = 1.3287717812415538, train acc = 0.5352676510810852,\n",
  1999. "val_loss = 0.7151580522226733, val_acc = 0.356589138507843\n",
  2000. "\n",
  2001. "epoch: 7\n",
  2002. "validation acc increased (0.356589 ---> 0.356589)\n",
  2003. "validation acc increased (0.356589 ---> 0.356589)\n",
  2004. "epoch 7: train loss = 0.6878388487976631, l1loss = 1.27108275150883, train acc = 0.5352676510810852,\n",
  2005. "val_loss = 0.7185324430465698, val_acc = 0.356589138507843\n",
  2006. "\n",
  2007. "epoch: 8\n",
  2008. "validation acc increased (0.356589 ---> 0.356589)\n",
  2009. "validation acc increased (0.356589 ---> 0.375969)\n",
  2010. "epoch 8: train loss = 0.687089113010771, l1loss = 1.2014408532591567, train acc = 0.5377689003944397,\n",
  2011. "val_loss = 0.7098801186842512, val_acc = 0.3759689927101135\n",
  2012. "\n",
  2013. "epoch: 9\n",
  2014. "epoch 9: train loss = 0.6857657482052756, l1loss = 1.1198362330903764, train acc = 0.5357679128646851,\n",
  2015. "val_loss = 0.7146235921586207, val_acc = 0.3720930218696594\n",
  2016. "\n",
  2017. "epoch: 10\n",
  2018. "validation acc increased (0.375969 ---> 0.391473)\n",
  2019. "validation loss decreased (0.704280 ---> 0.700316), val_acc = 0.43410852551460266\n",
  2020. "validation acc increased (0.391473 ---> 0.434109)\n",
  2021. "epoch 10: train loss = 0.6807256672846311, l1loss = 1.0265806999547653, train acc = 0.5732866525650024,\n",
  2022. "val_loss = 0.6975175391796024, val_acc = 0.44573643803596497\n",
  2023. "\n",
  2024. "epoch: 11\n",
  2025. "validation loss decreased (0.700316 ---> 0.692875), val_acc = 0.4651162922382355\n",
  2026. "validation acc increased (0.434109 ---> 0.465116)\n",
  2027. "validation loss decreased (0.692875 ---> 0.687179), val_acc = 0.5348837375640869\n",
  2028. "validation acc increased (0.465116 ---> 0.534884)\n",
  2029. "epoch 11: train loss = 0.673976903053568, l1loss = 0.9234890513505979, train acc = 0.5992996692657471,\n",
  2030. "val_loss = 0.7138355277305426, val_acc = 0.43798449635505676\n",
  2031. "\n",
  2032. "epoch: 12\n",
  2033. "validation loss decreased (0.687179 ---> 0.655739), val_acc = 0.6472868323326111\n",
  2034. "validation acc increased (0.534884 ---> 0.647287)\n",
  2035. "epoch 12: train loss = 0.6544435339727779, l1loss = 0.8135775458878312, train acc = 0.6203101277351379,\n",
  2036. "val_loss = 0.8063760263513226, val_acc = 0.38759690523147583\n",
  2037. "\n",
  2038. "epoch: 13\n",
  2039. "epoch 13: train loss = 0.6309017556318347, l1loss = 0.7015269837300738, train acc = 0.639319658279419,\n",
  2040. "val_loss = 0.8180261628572331, val_acc = 0.42635658383369446\n",
  2041. "\n",
  2042. "epoch: 14\n",
  2043. "epoch 14: train loss = 0.6293001123939292, l1loss = 0.5926253258913621, train acc = 0.6403201818466187,\n",
  2044. "val_loss = 0.6947672367095947, val_acc = 0.5581395626068115\n",
  2045. "\n",
  2046. "epoch: 15\n",
  2047. "epoch 15: train loss = 0.5548516084934366, l1loss = 0.4896452505329718, train acc = 0.7323662042617798,\n",
  2048. "val_loss = 0.8717553079590317, val_acc = 0.46124032139778137\n",
  2049. "\n",
  2050. "epoch: 16\n",
  2051. "epoch 16: train loss = 0.4710256685430614, l1loss = 0.3975880754745382, train acc = 0.7793896794319153,\n",
  2052. "val_loss = 0.8850018007810726, val_acc = 0.6317829489707947\n",
  2053. "\n",
  2054. "epoch: 17\n",
  2055. "epoch 17: train loss = 0.40750853099365003, l1loss = 0.3214303405956366, train acc = 0.8174086809158325,\n",
  2056. "val_loss = 0.8342532101412152, val_acc = 0.6007751822471619\n",
  2057. "\n",
  2058. "epoch: 18\n",
  2059. "epoch 18: train loss = 0.33526081428222504, l1loss = 0.2646906571411502, train acc = 0.8569284677505493,\n",
  2060. "val_loss = 1.3167366464008656, val_acc = 0.4844961166381836\n",
  2061. "\n",
  2062. "epoch: 19\n",
  2063. "epoch 19: train loss = 0.24304662869237792, l1loss = 0.23158110821318661, train acc = 0.9064532518386841,\n",
  2064. "val_loss = 1.1697414286376895, val_acc = 0.6472868323326111\n",
  2065. "\n",
  2066. "epoch: 20\n",
  2067. "epoch 20: train loss = 0.20508646148034726, l1loss = 0.21585142629602183, train acc = 0.9144572019577026,\n",
  2068. "val_loss = 1.3775318278822788, val_acc = 0.6007751822471619\n",
  2069. "\n",
  2070. "epoch: 21\n",
  2071. "epoch 21: train loss = 0.12821232205468336, l1loss = 0.2060455378366745, train acc = 0.9564782381057739,\n",
  2072. "val_loss = 1.4499094604059708, val_acc = 0.6162790656089783\n",
  2073. "\n",
  2074. "epoch: 22\n",
  2075. "epoch 22: train loss = 0.05814009320071007, l1loss = 0.19943478927873504, train acc = 0.9834917187690735,\n",
  2076. "val_loss = 1.5952766163404597, val_acc = 0.5581395626068115\n",
  2077. "\n",
  2078. "epoch: 23\n",
  2079. "epoch 23: train loss = 0.043333539148497247, l1loss = 0.19244094265288506, train acc = 0.9879940152168274,\n",
  2080. "val_loss = 2.111579608518717, val_acc = 0.5155038833618164\n",
  2081. "\n",
  2082. "epoch: 24\n",
  2083. "epoch 24: train loss = 0.05830567527288434, l1loss = 0.18697950598029509, train acc = 0.980990469455719,\n",
  2084. "val_loss = 1.6956204277600428, val_acc = 0.5620155334472656\n",
  2085. "\n",
  2086. "epoch: 25\n",
  2087. "epoch 25: train loss = 0.05772003486730147, l1loss = 0.18347380734819838, train acc = 0.9799900054931641,\n",
  2088. "val_loss = 2.1974048300306928, val_acc = 0.4961240291595459\n",
  2089. "\n",
  2090. "epoch: 26\n"
  2091. ]
  2092. },
  2093. {
  2094. "name": "stdout",
  2095. "output_type": "stream",
  2096. "text": [
  2097. "epoch 26: train loss = 0.10959840359062836, l1loss = 0.18189016606969916, train acc = 0.9599800109863281,\n",
  2098. "val_loss = 2.2403581733851468, val_acc = 0.5775193572044373\n",
  2099. "\n",
  2100. "epoch: 27\n",
  2101. "epoch 27: train loss = 0.05633044383279409, l1loss = 0.17777645592393726, train acc = 0.9814907312393188,\n",
  2102. "val_loss = 3.4118495135344276, val_acc = 0.41085270047187805\n",
  2103. "\n",
  2104. "epoch: 28\n",
  2105. "epoch 28: train loss = 0.04293046985380631, l1loss = 0.17149413792624243, train acc = 0.9854927659034729,\n",
  2106. "val_loss = 2.1026175188463787, val_acc = 0.5852712988853455\n",
  2107. "\n",
  2108. "epoch: 29\n",
  2109. "epoch 29: train loss = 0.018007467739869203, l1loss = 0.16545488913098594, train acc = 0.994997501373291,\n",
  2110. "val_loss = 1.9395856857299805, val_acc = 0.569767415523529\n",
  2111. "\n",
  2112. "epoch: 30\n",
  2113. "epoch 30: train loss = 0.012381990377992959, l1loss = 0.15917553348264557, train acc = 0.9984992742538452,\n",
  2114. "val_loss = 2.3071911690337945, val_acc = 0.5116279125213623\n",
  2115. "\n",
  2116. "epoch: 31\n",
  2117. "epoch 31: train loss = 0.00495839840150147, l1loss = 0.15346068114772804, train acc = 0.9994997382164001,\n",
  2118. "val_loss = 2.027354578639186, val_acc = 0.5968992114067078\n",
  2119. "\n",
  2120. "epoch: 32\n",
  2121. "epoch 32: train loss = 0.006408099178271391, l1loss = 0.14823033495537336, train acc = 1.0,\n",
  2122. "val_loss = 1.955235477565795, val_acc = 0.569767415523529\n",
  2123. "\n",
  2124. "!!! overfitted !!!\n",
  2125. "tensor(78)\n",
  2126. "tensor(43)\n",
  2127. "early stoping results:\n",
  2128. "\t [tensor(0.5833), tensor(0.6354), tensor(0.3646), tensor(0.6126), tensor(0.6335), tensor(0.5131), tensor(0.6387), tensor(0.6335)]\n",
  2129. "\t [tensor(0.5737), tensor(0.4652), tensor(0.5414), tensor(0.5115), tensor(0.4751), tensor(0.5817), tensor(0.4647), tensor(0.5123)]\n",
  2130. "tensor(64)\n",
  2131. "tensor(37)\n",
  2132. "full train results:\n",
  2133. "\t [tensor(0.5312), tensor(0.5365), tensor(0.5938), tensor(0.5550), tensor(0.5236), tensor(0.5654), tensor(0.6021), tensor(0.5288)]\n",
  2134. "\t [tensor(0.9995), tensor(1.), tensor(1.), tensor(1.), tensor(1.), tensor(1.), tensor(0.9990), tensor(1.)]\n",
  2135. "tensor(74)\n",
  2136. "tensor(47)\n",
  2137. "best accs results:\n",
  2138. "\t [tensor(0.6042), tensor(0.6354), tensor(0.5833), tensor(0.6126), tensor(0.5602), tensor(0.6283), tensor(0.6387), tensor(0.6335)]\n",
  2139. "\t [tensor(0.6064), tensor(0.4652), tensor(0.6461), tensor(0.5115), tensor(0.9521), tensor(0.7914), tensor(0.4647), tensor(0.5123)]\n",
  2140. "[1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0]\n",
  2141. "-----------------------------Fold 9---------------\n",
  2142. "preparing dataloaders...\n",
  2143. "coef when 0 > 1 1\n",
  2144. "creating model...\n",
  2145. "calculating total steps...\n",
  2146. "epoch: 1\n",
  2147. "validation loss decreased (inf ---> 0.688638), val_acc = 0.6627907156944275\n",
  2148. "validation acc increased (0.000000 ---> 0.662791)\n",
  2149. "epoch 1: train loss = 0.6933125124244157, l1loss = 1.483249993381386, train acc = 0.5079840421676636,\n",
  2150. "val_loss = 0.7031067840812742, val_acc = 0.3372093141078949\n",
  2151. "\n",
  2152. "epoch: 2\n",
  2153. "epoch 2: train loss = 0.6910889809003133, l1loss = 1.4634534901011729, train acc = 0.5394211411476135,\n",
  2154. "val_loss = 0.7151631089143975, val_acc = 0.3372093141078949\n",
  2155. "\n",
  2156. "epoch: 3\n",
  2157. "epoch 3: train loss = 0.690039867650487, l1loss = 1.4402860893222862, train acc = 0.538922131061554,\n",
  2158. "val_loss = 0.7211975704791934, val_acc = 0.3372093141078949\n",
  2159. "\n",
  2160. "epoch: 4\n",
  2161. "epoch 4: train loss = 0.6893733679177518, l1loss = 1.411496847451566, train acc = 0.538922131061554,\n",
  2162. "val_loss = 0.721796124942543, val_acc = 0.3372093141078949\n",
  2163. "\n",
  2164. "epoch: 5\n",
  2165. "epoch 5: train loss = 0.6888950928718506, l1loss = 1.3750012099385975, train acc = 0.538922131061554,\n",
  2166. "val_loss = 0.7237857270610425, val_acc = 0.3372093141078949\n",
  2167. "\n",
  2168. "epoch: 6\n",
  2169. "epoch 6: train loss = 0.688418993335998, l1loss = 1.328940457926539, train acc = 0.538922131061554,\n",
  2170. "val_loss = 0.7278173852336499, val_acc = 0.3372093141078949\n",
  2171. "\n",
  2172. "epoch: 7\n",
  2173. "epoch 7: train loss = 0.6875811150212012, l1loss = 1.271831663068897, train acc = 0.538922131061554,\n",
  2174. "val_loss = 0.7228789542072503, val_acc = 0.3372093141078949\n",
  2175. "\n",
  2176. "epoch: 8\n",
  2177. "epoch 8: train loss = 0.6866033931454261, l1loss = 1.2027254354454087, train acc = 0.538922131061554,\n",
  2178. "val_loss = 0.7285417683364809, val_acc = 0.3372093141078949\n",
  2179. "\n",
  2180. "epoch: 9\n",
  2181. "epoch 9: train loss = 0.6847465848494433, l1loss = 1.1213995715577207, train acc = 0.5434131622314453,\n",
  2182. "val_loss = 0.7351138185161029, val_acc = 0.3372093141078949\n",
  2183. "\n",
  2184. "epoch: 10\n",
  2185. "epoch 10: train loss = 0.6824056646543111, l1loss = 1.0283273393046595, train acc = 0.5508981943130493,\n",
  2186. "val_loss = 0.7407340176345766, val_acc = 0.3333333432674408\n",
  2187. "\n",
  2188. "epoch: 11\n",
  2189. "epoch 11: train loss = 0.6756234464055287, l1loss = 0.9253893102000573, train acc = 0.5743513107299805,\n",
  2190. "val_loss = 0.7472086497979571, val_acc = 0.3449612259864807\n",
  2191. "\n",
  2192. "epoch: 12\n",
  2193. "epoch 12: train loss = 0.6602505656059631, l1loss = 0.8152883985561287, train acc = 0.6162674427032471,\n",
  2194. "val_loss = 0.7113825424697048, val_acc = 0.4922480583190918\n",
  2195. "\n",
  2196. "epoch: 13\n",
  2197. "validation loss decreased (0.688638 ---> 0.667874), val_acc = 0.6550387740135193\n",
  2198. "epoch 13: train loss = 0.6188409713927857, l1loss = 0.704593446916211, train acc = 0.6756486892700195,\n",
  2199. "val_loss = 0.7028621758601462, val_acc = 0.5930232405662537\n",
  2200. "\n",
  2201. "epoch: 14\n",
  2202. "epoch 14: train loss = 0.5674543769773609, l1loss = 0.5986516261529066, train acc = 0.7080838084220886,\n",
  2203. "val_loss = 0.7258701370668041, val_acc = 0.538759708404541\n",
  2204. "\n",
  2205. "epoch: 15\n",
  2206. "epoch 15: train loss = 0.5195131490449467, l1loss = 0.5008506833198304, train acc = 0.7554890513420105,\n",
  2207. "val_loss = 0.7875658929810043, val_acc = 0.5310077667236328\n",
  2208. "\n",
  2209. "epoch: 16\n",
  2210. "epoch 16: train loss = 0.4449116040370659, l1loss = 0.4148543224244299, train acc = 0.8003991842269897,\n",
  2211. "val_loss = 0.9337220635525015, val_acc = 0.5968992114067078\n",
  2212. "\n",
  2213. "epoch: 17\n",
  2214. "epoch 17: train loss = 0.3717906239503872, l1loss = 0.34227201402068375, train acc = 0.8303393125534058,\n",
  2215. "val_loss = 0.9147336353627287, val_acc = 0.5968992114067078\n",
  2216. "\n",
  2217. "epoch: 18\n",
  2218. "epoch 18: train loss = 0.2456365298487231, l1loss = 0.2895531968442266, train acc = 0.9016966223716736,\n",
  2219. "val_loss = 1.224231436271076, val_acc = 0.5193798542022705\n",
  2220. "\n",
  2221. "epoch: 19\n",
  2222. "epoch 19: train loss = 0.2006593743365206, l1loss = 0.25701168244946265, train acc = 0.9211576581001282,\n",
  2223. "val_loss = 1.278371164040972, val_acc = 0.5\n",
  2224. "\n",
  2225. "epoch: 20\n",
  2226. "epoch 20: train loss = 0.2456775011416681, l1loss = 0.2422227506747027, train acc = 0.8952096104621887,\n",
  2227. "val_loss = 1.319511427435764, val_acc = 0.6356589198112488\n",
  2228. "\n",
  2229. "epoch: 21\n",
  2230. "epoch 21: train loss = 0.10676692857475814, l1loss = 0.2299664880701168, train acc = 0.9675648808479309,\n",
  2231. "val_loss = 1.6988744661789532, val_acc = 0.5038759708404541\n",
  2232. "\n",
  2233. "epoch: 22\n",
  2234. "epoch 22: train loss = 0.06530988484085677, l1loss = 0.2210731065558816, train acc = 0.9795409440994263,\n",
  2235. "val_loss = 1.772416866102884, val_acc = 0.4806201457977295\n",
  2236. "\n",
  2237. "epoch: 23\n",
  2238. "epoch 23: train loss = 0.16125833081033178, l1loss = 0.21659656228895435, train acc = 0.9346307516098022,\n",
  2239. "val_loss = 2.660450824471407, val_acc = 0.4767441749572754\n",
  2240. "\n",
  2241. "epoch: 24\n",
  2242. "epoch 24: train loss = 0.052061744673761304, l1loss = 0.2090652662063549, train acc = 0.9890219569206238,\n",
  2243. "val_loss = 1.6618810494740803, val_acc = 0.5736433863639832\n",
  2244. "\n",
  2245. "epoch: 25\n",
  2246. "epoch 25: train loss = 0.025476095487852533, l1loss = 0.1998468009000291, train acc = 0.9960079789161682,\n",
  2247. "val_loss = 1.7238089602455036, val_acc = 0.604651153087616\n",
  2248. "\n",
  2249. "epoch: 26\n",
  2250. "epoch 26: train loss = 0.02256299738220112, l1loss = 0.19226344292630215, train acc = 0.9915169477462769,\n",
  2251. "val_loss = 2.2160921032114547, val_acc = 0.5232558250427246\n",
  2252. "\n",
  2253. "epoch: 27\n",
  2254. "epoch 27: train loss = 0.0615687958464889, l1loss = 0.18798830180230017, train acc = 0.9765468835830688,\n",
  2255. "val_loss = 2.2735826359238733, val_acc = 0.6124030947685242\n",
  2256. "\n",
  2257. "epoch: 28\n",
  2258. "epoch 28: train loss = 0.22541590647664136, l1loss = 0.19491120203288492, train acc = 0.9036926031112671,\n",
  2259. "val_loss = 1.4376536790252656, val_acc = 0.4728682041168213\n",
  2260. "\n",
  2261. "epoch: 29\n"
  2262. ]
  2263. },
  2264. {
  2265. "name": "stdout",
  2266. "output_type": "stream",
  2267. "text": [
  2268. "epoch 29: train loss = 0.0631909598698635, l1loss = 0.1892870161050332, train acc = 0.9780439138412476,\n",
  2269. "val_loss = 2.1181586296983466, val_acc = 0.4728682041168213\n",
  2270. "\n",
  2271. "epoch: 30\n",
  2272. "epoch 30: train loss = 0.01965019029905339, l1loss = 0.17764762243229948, train acc = 0.9970059990882874,\n",
  2273. "val_loss = 1.861120948495791, val_acc = 0.5465116500854492\n",
  2274. "\n",
  2275. "epoch: 31\n",
  2276. "epoch 31: train loss = 0.008150098203103282, l1loss = 0.16982665143446057, train acc = 1.0,\n",
  2277. "val_loss = 1.9675745483516722, val_acc = 0.538759708404541\n",
  2278. "\n",
  2279. "!!! overfitted !!!\n",
  2280. "tensor(80)\n",
  2281. "tensor(42)\n",
  2282. "early stoping results:\n",
  2283. "\t [tensor(0.5833), tensor(0.6354), tensor(0.3646), tensor(0.6126), tensor(0.6335), tensor(0.5131), tensor(0.6387), tensor(0.6335), tensor(0.6387)]\n",
  2284. "\t [tensor(0.5737), tensor(0.4652), tensor(0.5414), tensor(0.5115), tensor(0.4751), tensor(0.5817), tensor(0.4647), tensor(0.5123), tensor(0.4775)]\n",
  2285. "tensor(80)\n",
  2286. "tensor(33)\n",
  2287. "full train results:\n",
  2288. "\t [tensor(0.5312), tensor(0.5365), tensor(0.5938), tensor(0.5550), tensor(0.5236), tensor(0.5654), tensor(0.6021), tensor(0.5288), tensor(0.5916)]\n",
  2289. "\t [tensor(0.9995), tensor(1.), tensor(1.), tensor(1.), tensor(1.), tensor(1.), tensor(0.9990), tensor(1.), tensor(0.9990)]\n",
  2290. "tensor(87)\n",
  2291. "tensor(35)\n",
  2292. "best accs results:\n",
  2293. "\t [tensor(0.6042), tensor(0.6354), tensor(0.5833), tensor(0.6126), tensor(0.5602), tensor(0.6283), tensor(0.6387), tensor(0.6335), tensor(0.6387)]\n",
  2294. "\t [tensor(0.6064), tensor(0.4652), tensor(0.6461), tensor(0.5115), tensor(0.9521), tensor(0.7914), tensor(0.4647), tensor(0.5123), tensor(0.4611)]\n",
  2295. "[1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0]\n",
  2296. "-----------------------------Fold 10---------------\n",
  2297. "preparing dataloaders...\n",
  2298. "coef when 0 > 1 1\n",
  2299. "creating model...\n",
  2300. "calculating total steps...\n",
  2301. "epoch: 1\n",
  2302. "validation loss decreased (inf ---> 0.672692), val_acc = 0.6550387740135193\n",
  2303. "validation acc increased (0.000000 ---> 0.655039)\n",
  2304. "validation acc increased (0.655039 ---> 0.655039)\n",
  2305. "epoch 1: train loss = 0.6991829303475646, l1loss = 1.4839057058959335, train acc = 0.4625374674797058,\n",
  2306. "val_loss = 0.6754856922829798, val_acc = 0.6550387740135193\n",
  2307. "\n",
  2308. "epoch: 2\n",
  2309. "validation acc increased (0.655039 ---> 0.655039)\n",
  2310. "validation acc increased (0.655039 ---> 0.655039)\n",
  2311. "epoch 2: train loss = 0.6939829035357876, l1loss = 1.4645228752723107, train acc = 0.49450549483299255,\n",
  2312. "val_loss = 0.6890089049819828, val_acc = 0.6550387740135193\n",
  2313. "\n",
  2314. "epoch: 3\n",
  2315. "validation acc increased (0.655039 ---> 0.658915)\n",
  2316. "epoch 3: train loss = 0.6903928536754269, l1loss = 1.4417118324742808, train acc = 0.5394605398178101,\n",
  2317. "val_loss = 0.7046850910482481, val_acc = 0.3449612259864807\n",
  2318. "\n",
  2319. "epoch: 4\n",
  2320. "epoch 4: train loss = 0.6891815625466071, l1loss = 1.4131007423172226, train acc = 0.5374625325202942,\n",
  2321. "val_loss = 0.719056154406348, val_acc = 0.3449612259864807\n",
  2322. "\n",
  2323. "epoch: 5\n",
  2324. "epoch 5: train loss = 0.6889630373898562, l1loss = 1.376648348885459, train acc = 0.5374625325202942,\n",
  2325. "val_loss = 0.7238496870033501, val_acc = 0.3449612259864807\n",
  2326. "\n",
  2327. "epoch: 6\n",
  2328. "epoch 6: train loss = 0.6881177404543737, l1loss = 1.3303997759576087, train acc = 0.5374625325202942,\n",
  2329. "val_loss = 0.7200313155041185, val_acc = 0.3449612259864807\n",
  2330. "\n",
  2331. "epoch: 7\n",
  2332. "epoch 7: train loss = 0.6869667621401997, l1loss = 1.2731195258332062, train acc = 0.5374625325202942,\n",
  2333. "val_loss = 0.7144513324249623, val_acc = 0.3449612259864807\n",
  2334. "\n",
  2335. "epoch: 8\n",
  2336. "epoch 8: train loss = 0.6860746289347555, l1loss = 1.2041123083659582, train acc = 0.546953022480011,\n",
  2337. "val_loss = 0.7131708472274071, val_acc = 0.3488371968269348\n",
  2338. "\n",
  2339. "epoch: 9\n",
  2340. "epoch 9: train loss = 0.6840823413608791, l1loss = 1.1235749534555486, train acc = 0.5389610528945923,\n",
  2341. "val_loss = 0.7343198874200038, val_acc = 0.3449612259864807\n",
  2342. "\n",
  2343. "epoch: 10\n",
  2344. "epoch 10: train loss = 0.6786974231441776, l1loss = 1.03154473943072, train acc = 0.580919086933136,\n",
  2345. "val_loss = 0.7059320497882459, val_acc = 0.44961240887641907\n",
  2346. "\n",
  2347. "epoch: 11\n",
  2348. "epoch 11: train loss = 0.6691220754629129, l1loss = 0.9298823592546103, train acc = 0.6143856048583984,\n",
  2349. "val_loss = 0.8592184712720472, val_acc = 0.3449612259864807\n",
  2350. "\n",
  2351. "epoch: 12\n",
  2352. "epoch 12: train loss = 0.6548706972515667, l1loss = 0.8217827181716065, train acc = 0.6238760948181152,\n",
  2353. "val_loss = 0.7483981838522031, val_acc = 0.43798449635505676\n",
  2354. "\n",
  2355. "epoch: 13\n",
  2356. "epoch 13: train loss = 0.6237266789544951, l1loss = 0.7114838892882401, train acc = 0.6543456315994263,\n",
  2357. "val_loss = 0.9002822369568108, val_acc = 0.3759689927101135\n",
  2358. "\n",
  2359. "epoch: 14\n",
  2360. "epoch 14: train loss = 0.5636290751851641, l1loss = 0.6049504718342266, train acc = 0.726773202419281,\n",
  2361. "val_loss = 0.7929284221442171, val_acc = 0.569767415523529\n",
  2362. "\n",
  2363. "epoch: 15\n",
  2364. "epoch 15: train loss = 0.500030604811696, l1loss = 0.5065306650472807, train acc = 0.7647352814674377,\n",
  2365. "val_loss = 0.8221829214761424, val_acc = 0.5426356792449951\n",
  2366. "\n",
  2367. "epoch: 16\n",
  2368. "epoch 16: train loss = 0.432999442179839, l1loss = 0.4196841673893886, train acc = 0.8066933155059814,\n",
  2369. "val_loss = 0.9935263626335203, val_acc = 0.6589147448539734\n",
  2370. "\n",
  2371. "epoch: 17\n",
  2372. "epoch 17: train loss = 0.3120971677246151, l1loss = 0.34845078170120897, train acc = 0.8761239051818848,\n",
  2373. "val_loss = 1.0305215822633846, val_acc = 0.643410861492157\n",
  2374. "\n",
  2375. "epoch: 18\n",
  2376. "epoch 18: train loss = 0.21123728623518814, l1loss = 0.2952757461683138, train acc = 0.9240759015083313,\n",
  2377. "val_loss = 1.2388130657432614, val_acc = 0.569767415523529\n",
  2378. "\n",
  2379. "epoch: 19\n",
  2380. "epoch 19: train loss = 0.1134848499021211, l1loss = 0.2615779391475967, train acc = 0.9630369544029236,\n",
  2381. "val_loss = 1.480191317177558, val_acc = 0.5891472697257996\n",
  2382. "\n",
  2383. "epoch: 20\n",
  2384. "epoch 20: train loss = 0.127544645990406, l1loss = 0.24558655981655483, train acc = 0.9500499367713928,\n",
  2385. "val_loss = 1.6672501929299257, val_acc = 0.5813953280448914\n",
  2386. "\n",
  2387. "epoch: 21\n",
  2388. "epoch 21: train loss = 0.07767527621168714, l1loss = 0.23245742854538498, train acc = 0.9760239720344543,\n",
  2389. "val_loss = 1.5230142534241196, val_acc = 0.6007751822471619\n",
  2390. "\n",
  2391. "epoch: 22\n",
  2392. "epoch 22: train loss = 0.07988126125636992, l1loss = 0.22322249095458965, train acc = 0.9710289835929871,\n",
  2393. "val_loss = 1.4321563678194387, val_acc = 0.5968992114067078\n",
  2394. "\n",
  2395. "epoch: 23\n",
  2396. "epoch 23: train loss = 0.04452426001228593, l1loss = 0.213434277267961, train acc = 0.9900099635124207,\n",
  2397. "val_loss = 1.7915307799527465, val_acc = 0.643410861492157\n",
  2398. "\n",
  2399. "epoch: 24\n",
  2400. "epoch 24: train loss = 0.028254755680541414, l1loss = 0.20372207654820573, train acc = 0.9940059781074524,\n",
  2401. "val_loss = 1.940356590951136, val_acc = 0.604651153087616\n",
  2402. "\n",
  2403. "epoch: 25\n",
  2404. "epoch 25: train loss = 0.01316713175264659, l1loss = 0.19553671531624847, train acc = 0.9985014796257019,\n",
  2405. "val_loss = 1.7937852486159451, val_acc = 0.569767415523529\n",
  2406. "\n",
  2407. "epoch: 26\n",
  2408. "epoch 26: train loss = 0.005751309507469703, l1loss = 0.18567656404845842, train acc = 1.0,\n",
  2409. "val_loss = 1.7987251420353734, val_acc = 0.604651153087616\n",
  2410. "\n",
  2411. "!!! overfitted !!!\n",
  2412. "tensor(80)\n",
  2413. "tensor(42)\n",
  2414. "early stoping results:\n",
  2415. "\t [tensor(0.5833), tensor(0.6354), tensor(0.3646), tensor(0.6126), tensor(0.6335), tensor(0.5131), tensor(0.6387), tensor(0.6335), tensor(0.6387), tensor(0.6387)]\n",
  2416. "\t [tensor(0.5737), tensor(0.4652), tensor(0.5414), tensor(0.5115), tensor(0.4751), tensor(0.5817), tensor(0.4647), tensor(0.5123), tensor(0.4775), tensor(0.4625)]\n",
  2417. "tensor(75)\n",
  2418. "tensor(28)\n",
  2419. "full train results:\n",
  2420. "\t [tensor(0.5312), tensor(0.5365), tensor(0.5938), tensor(0.5550), tensor(0.5236), tensor(0.5654), tensor(0.6021), tensor(0.5288), tensor(0.5916), tensor(0.5393)]\n",
  2421. "\t [tensor(0.9995), tensor(1.), tensor(1.), tensor(1.), tensor(1.), tensor(1.), tensor(0.9990), tensor(1.), tensor(0.9990), tensor(1.)]\n",
  2422. "tensor(85)\n",
  2423. "tensor(39)\n",
  2424. "best accs results:\n",
  2425. "\t [tensor(0.6042), tensor(0.6354), tensor(0.5833), tensor(0.6126), tensor(0.5602), tensor(0.6283), tensor(0.6387), tensor(0.6335), tensor(0.6387), tensor(0.6492)]\n"
  2426. ]
  2427. },
  2428. {
  2429. "name": "stdout",
  2430. "output_type": "stream",
  2431. "text": [
  2432. "\t [tensor(0.6064), tensor(0.4652), tensor(0.6461), tensor(0.5115), tensor(0.9521), tensor(0.7914), tensor(0.4647), tensor(0.5123), tensor(0.4611), tensor(0.4670)]\n",
  2433. "[1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0]\n"
  2434. ]
  2435. }
  2436. ],
  2437. "source": [
  2438. "train_accs, test_accs = [], []\n",
  2439. "train_accs_over, test_accs_over = [], []\n",
  2440. "train_accs_acc, test_accs_acc = [], []\n",
  2441. "\n",
  2442. "for fold, (train_val_idx, test_idx) in enumerate(skf.split(dataset, labels)):\n",
  2443. " \n",
  2444. " print('-----------------------------Fold {}---------------'.format(fold + 1))\n",
  2445. "\n",
  2446. " \n",
  2447. " print('preparing dataloaders...')\n",
  2448. " train_val_data = np.stack([dataset[index] for index in train_val_idx])\n",
  2449. " train_val_label = [labels[index] for index in train_val_idx]\n",
  2450. " test_data = np.stack([dataset[index] for index in test_idx])\n",
  2451. " test_label = [labels[index] for index in test_idx]\n",
  2452. " \n",
  2453. " \n",
  2454. " Max = np.max(train_val_data, axis=(0,1,2,4), keepdims=True)\n",
  2455. " Min = np.min(train_val_data, axis=(0,1,2,4), keepdims=True)\n",
  2456. " train_val_data = (train_val_data-Min)/(Max-Min)\n",
  2457. " \n",
  2458. " Max_test = np.max(test_data, axis=(0,1,2,4), keepdims=True)\n",
  2459. " Min_test = np.min(test_data, axis=(0,1,2,4), keepdims=True)\n",
  2460. " test_data = (test_data-Min)/(Max-Min)\n",
  2461. " \n",
  2462. " \n",
  2463. " train_val = [[train_val_data[i], train_val_label[i]] for i in range(len(train_val_data))]\n",
  2464. " test = [[test_data[i], test_label[i]] for i in range(len(test_data))]\n",
  2465. " \n",
  2466. " num_train_val = len(train_val)\n",
  2467. " indices = list(range(num_train_val))\n",
  2468. " np.random.shuffle(indices)\n",
  2469. " split = int(np.floor(val_size*num_train_val))\n",
  2470. " train, val = [train_val[i] for i in indices[split:]] ,[train_val[i] for i in indices[:split]]\n",
  2471. " \n",
  2472. " train_labels = [data[1] for data in train]\n",
  2473. " \n",
  2474. " oversample = 1\n",
  2475. " _, counts = np.unique(train_labels, return_counts=True)\n",
  2476. " if oversample==1:\n",
  2477. " if counts[1]>counts[0]:\n",
  2478. " label0 = [data for data in train if data[1]==0]\n",
  2479. " coef = int(counts[1]/counts[0])\n",
  2480. " print('coef when 1 > 0', coef)\n",
  2481. " for i in range(coef):\n",
  2482. " train = train + label0\n",
  2483. " elif counts[1]<counts[0]:\n",
  2484. " label1 = [data for data in train if data[1]==1]\n",
  2485. " coef = int(counts[0]/counts[1])\n",
  2486. " print('coef when 0 > 1', coef)\n",
  2487. " for i in range(coef):\n",
  2488. " train = train + label1\n",
  2489. " \n",
  2490. "\n",
  2491. " train_loader = torch.utils.data.DataLoader(train, batch_size=batch_size, shuffle=True)\n",
  2492. " val_loader = torch.utils.data.DataLoader(val, batch_size=batch_size, shuffle=True)\n",
  2493. " test_loader = torch.utils.data.DataLoader(test, batch_size=batch_size, shuffle=True)\n",
  2494. " \n",
  2495. " print('creating model...')\n",
  2496. " model = CNN_RNN().float()\n",
  2497. " optimizer = torch.optim.Adam(model.parameters(), lr=0.0001)\n",
  2498. " criterion = nn.CrossEntropyLoss()\n",
  2499. " \n",
  2500. " print('calculating total steps...')\n",
  2501. " steps = 0\n",
  2502. " for epoch in range(n_epochs):\n",
  2503. " for data, label in train_loader:\n",
  2504. " steps += 1\n",
  2505. "\n",
  2506. " scheduler = torch.optim.lr_scheduler.OneCycleLR(optimizer, total_steps=steps, max_lr=0.001)\n",
  2507. " scheduler1 = torch.optim.lr_scheduler.ReduceLROnPlateau(optimizer)\n",
  2508. " l1_lambda = 0.0001\n",
  2509. " \n",
  2510. " min_val_loss = np.inf\n",
  2511. " max_val_acc = 0\n",
  2512. " \n",
  2513. " for epoch in range(n_epochs):\n",
  2514. " print('epoch: ', epoch+1)\n",
  2515. " train_loss = 0\n",
  2516. " l1_loss = 0\n",
  2517. " train_correct = 0\n",
  2518. " model.train()\n",
  2519. " '''for name, param in model.named_parameters():\n",
  2520. " print(name, param.data)\n",
  2521. " break'''\n",
  2522. " for iteration, (data,label) in enumerate(train_loader):\n",
  2523. " #print('\\ndata = ', torch.amax(data, axis=(0,1,2,4)), torch.amin(data, axis=(0,1,2,4)))\n",
  2524. " optimizer.zero_grad()\n",
  2525. " output = model(data.float())\n",
  2526. " '''label = torch.reshape(label, (-1,1))\n",
  2527. " label = label.float()'''\n",
  2528. " loss = criterion(output, label)\n",
  2529. " add_loss = loss\n",
  2530. " ex_loss = 0\n",
  2531. " for W in model.parameters():\n",
  2532. " ex_loss += l1_lambda*W.norm(1)\n",
  2533. " loss = loss + l1_lambda*W.norm(1) \n",
  2534. " loss.backward()\n",
  2535. " optimizer.step()\n",
  2536. " scheduler.step()\n",
  2537. " #targets = [1 if output[i].round()==label[i] else 0 for i in range(len(label))]\n",
  2538. " targets = sum(torch.argmax(output,dim=1)==label)\n",
  2539. " train_correct += targets\n",
  2540. " train_loss += add_loss.item()*data.shape[0]\n",
  2541. " l1_loss += ex_loss.item()*data.shape[0]\n",
  2542. " \n",
  2543. " if iteration % print_every == 0:\n",
  2544. " is_training = True\n",
  2545. " val_loss = 0\n",
  2546. " val_correct = 0\n",
  2547. " model.eval()\n",
  2548. " for data, label in val_loader:\n",
  2549. " output = model(data.float())\n",
  2550. " '''label = torch.reshape(label, (-1,1))\n",
  2551. " label = label.float()'''\n",
  2552. " loss = criterion(output, label) \n",
  2553. " val_loss += loss.item()*data.shape[0]\n",
  2554. " #targets = [1 if output[i].round()==label[i] else 0 for i in range(len(label))]\n",
  2555. " targets = sum(torch.argmax(output,dim=1)==label)\n",
  2556. " val_correct += targets\n",
  2557. " val_loss = val_loss/len(val_loader.sampler)\n",
  2558. " val_acc = val_correct/len(val_loader.sampler)\n",
  2559. "\n",
  2560. " if val_loss <= min_val_loss:\n",
  2561. " print(\"validation loss decreased ({:.6f} ---> {:.6f}), val_acc = {}\".format(min_val_loss, val_loss, val_acc))\n",
  2562. " torch.save(model.state_dict(), 'captum/nasal/model'+str(fold)+'.pt')\n",
  2563. " min_val_loss = val_loss\n",
  2564. " if val_acc >= max_val_acc:\n",
  2565. " print(\"validation acc increased ({:.6f} ---> {:.6f})\".format(max_val_acc, val_acc))\n",
  2566. " torch.save(model.state_dict(), 'captum/nasal/model'+str(fold)+'_acc.pt')\n",
  2567. " max_val_acc = val_acc\n",
  2568. " torch.save(model.state_dict(), 'captum/nasal/last_model'+str(fold)+'.pt')\n",
  2569. " model.train(mode=is_training)\n",
  2570. " \n",
  2571. " train_acc = train_correct/len(train_loader.sampler) \n",
  2572. " train_loss = train_loss/len(train_loader.sampler)\n",
  2573. " loss1 = l1_loss/len(train_loader.sampler)\n",
  2574. " \n",
  2575. " val_loss = 0\n",
  2576. " val_correct = 0\n",
  2577. " model.eval()\n",
  2578. " for data, label in val_loader:\n",
  2579. " output = model(data.float())\n",
  2580. " '''label = torch.reshape(label, (-1,1))\n",
  2581. " label = label.float()'''\n",
  2582. " loss = criterion(output, label) \n",
  2583. " val_loss += loss.item()*data.shape[0]\n",
  2584. " #targets = [1 if output[i].round()==label[i] else 0 for i in range(len(label))]\n",
  2585. " targets = sum(torch.argmax(output,dim=1)==label)\n",
  2586. " val_correct += targets\n",
  2587. " \n",
  2588. " val_loss = val_loss/len(val_loader.sampler)\n",
  2589. " val_acc = val_correct/len(val_loader.sampler)\n",
  2590. " \n",
  2591. " print('epoch {}: train loss = {}, l1loss = {}, train acc = {},\\nval_loss = {}, val_acc = {}\\n'\n",
  2592. " .format(epoch+1, train_loss, loss1, train_acc, val_loss, val_acc))\n",
  2593. " if int(train_acc)==1:\n",
  2594. " print('!!! overfitted !!!')\n",
  2595. " break\n",
  2596. " model.train()\n",
  2597. " #scheduler1.step(val_loss)\n",
  2598. " \n",
  2599. " model =CNN_RNN().float()\n",
  2600. " model.load_state_dict(torch.load('captum/nasal/model'+str(fold)+'.pt'))\n",
  2601. " \n",
  2602. " n_correct = 0\n",
  2603. " model.eval()\n",
  2604. " for data, label in test_loader:\n",
  2605. " output = model(data.float())\n",
  2606. " #targets = [1 if output[i].round()==label[i] else 0 for i in range(len(label))]\n",
  2607. " targets = sum(torch.argmax(output,dim=1)==label)\n",
  2608. " print(targets)\n",
  2609. " n_correct += targets\n",
  2610. " \n",
  2611. " test_accs.append(n_correct/len(test_loader.sampler))\n",
  2612. " print('early stoping results:\\n\\t', test_accs)\n",
  2613. " \n",
  2614. " n_correct = 0\n",
  2615. " model.eval()\n",
  2616. " for data, label in train_loader:\n",
  2617. " output = model(data.float())\n",
  2618. " #targets = [1 if output[i].round()==label[i] else 0 for i in range(len(label))]\n",
  2619. " targets = sum(torch.argmax(output,dim=1)==label)\n",
  2620. " n_correct += targets\n",
  2621. " \n",
  2622. " train_accs.append(n_correct/len(train_loader.sampler))\n",
  2623. " print('\\t', train_accs)\n",
  2624. " \n",
  2625. " model = CNN_RNN().float()\n",
  2626. " model.load_state_dict(torch.load('captum/nasal/last_model'+str(fold)+'.pt'))\n",
  2627. " \n",
  2628. " n_correct = 0\n",
  2629. " model.eval()\n",
  2630. " for data, label in test_loader:\n",
  2631. " output = model(data.float())\n",
  2632. " #targets = [1 if output[i].round()==label[i] else 0 for i in range(len(label))]\n",
  2633. " targets = sum(torch.argmax(output,dim=1)==label)\n",
  2634. " print(targets)\n",
  2635. " n_correct += targets\n",
  2636. " test_accs_over.append(n_correct/len(test_loader.sampler))\n",
  2637. " print('full train results:\\n\\t', test_accs_over)\n",
  2638. " \n",
  2639. " n_correct = 0\n",
  2640. " model.eval()\n",
  2641. " for data, label in train_loader:\n",
  2642. " output = model(data.float())\n",
  2643. " #targets = [1 if output[i].round()==label[i] else 0 for i in range(len(label))]\n",
  2644. " targets = sum(torch.argmax(output,dim=1)==label)\n",
  2645. " n_correct += targets\n",
  2646. " train_accs_over.append(n_correct/len(train_loader.sampler))\n",
  2647. " print('\\t', train_accs_over)\n",
  2648. " \n",
  2649. " model = CNN_RNN().float()\n",
  2650. " model.load_state_dict(torch.load('captum/nasal/model'+str(fold)+'_acc.pt'))\n",
  2651. " \n",
  2652. " n_correct = 0\n",
  2653. " model.eval()\n",
  2654. " for data, label in test_loader:\n",
  2655. " output = model(data.float())\n",
  2656. " #targets = [1 if output[i].round()==label[i] else 0 for i in range(len(label))]\n",
  2657. " targets = sum(torch.argmax(output,dim=1)==label)\n",
  2658. " print(targets)\n",
  2659. " n_correct += targets\n",
  2660. " test_accs_acc.append(n_correct/len(test_loader.sampler))\n",
  2661. " print('best accs results:\\n\\t', test_accs_acc)\n",
  2662. " \n",
  2663. " n_correct = 0\n",
  2664. " model.eval()\n",
  2665. " for data, label in train_loader:\n",
  2666. " output = model(data.float())\n",
  2667. " #targets = [1 if output[i].round()==label[i] else 0 for i in range(len(label))]\n",
  2668. " targets = sum(torch.argmax(output,dim=1)==label)\n",
  2669. " n_correct += targets\n",
  2670. " train_accs_acc.append(n_correct/len(train_loader.sampler))\n",
  2671. " print('\\t', train_accs_acc)\n",
  2672. " print(test_label)"
  2673. ]
  2674. },
  2675. {
  2676. "cell_type": "code",
  2677. "execution_count": 16,
  2678. "id": "93a5fc77",
  2679. "metadata": {},
  2680. "outputs": [
  2681. {
  2682. "data": {
  2683. "text/plain": [
  2684. "0.8107657068062828"
  2685. ]
  2686. },
  2687. "execution_count": 16,
  2688. "metadata": {},
  2689. "output_type": "execute_result"
  2690. }
  2691. ],
  2692. "source": [
  2693. "(sum(test_accs_acc))/10"
  2694. ]
  2695. },
  2696. {
  2697. "cell_type": "code",
  2698. "execution_count": null,
  2699. "id": "74a75907",
  2700. "metadata": {},
  2701. "outputs": [],
  2702. "source": [
  2703. "train_accs, test_accs = [], []\n",
  2704. "train_accs_over, test_accs_over = [], []\n",
  2705. "train_accs_acc, test_accs_acc = [], []"
  2706. ]
  2707. },
  2708. {
  2709. "cell_type": "code",
  2710. "execution_count": 17,
  2711. "id": "078e125c",
  2712. "metadata": {},
  2713. "outputs": [
  2714. {
  2715. "data": {
  2716. "text/plain": [
  2717. "[0.8020833333333334,\n",
  2718. " 0.8177083333333334,\n",
  2719. " 0.8177083333333334,\n",
  2720. " 0.8272251308900523,\n",
  2721. " 0.7958115183246073,\n",
  2722. " 0.8219895287958116,\n",
  2723. " 0.8167539267015707,\n",
  2724. " 0.8167539267015707,\n",
  2725. " 0.806282722513089,\n",
  2726. " 0.7853403141361257]"
  2727. ]
  2728. },
  2729. "execution_count": 17,
  2730. "metadata": {},
  2731. "output_type": "execute_result"
  2732. }
  2733. ],
  2734. "source": [
  2735. "test_accs_acc"
  2736. ]
  2737. },
  2738. {
  2739. "cell_type": "code",
  2740. "execution_count": null,
  2741. "id": "5abb4609",
  2742. "metadata": {},
  2743. "outputs": [],
  2744. "source": []
  2745. },
  2746. {
  2747. "cell_type": "code",
  2748. "execution_count": null,
  2749. "id": "5518dc3d",
  2750. "metadata": {},
  2751. "outputs": [],
  2752. "source": []
  2753. },
  2754. {
  2755. "cell_type": "code",
  2756. "execution_count": null,
  2757. "id": "f62e3322",
  2758. "metadata": {},
  2759. "outputs": [],
  2760. "source": []
  2761. },
  2762. {
  2763. "cell_type": "code",
  2764. "execution_count": 23,
  2765. "id": "91c032f1",
  2766. "metadata": {},
  2767. "outputs": [
  2768. {
  2769. "data": {
  2770. "text/plain": [
  2771. "0.6354166666666667"
  2772. ]
  2773. },
  2774. "execution_count": 23,
  2775. "metadata": {},
  2776. "output_type": "execute_result"
  2777. }
  2778. ],
  2779. "source": [
  2780. "1 - sum(y__test)/len(y__test)"
  2781. ]
  2782. },
  2783. {
  2784. "cell_type": "code",
  2785. "execution_count": null,
  2786. "id": "d49fc26a",
  2787. "metadata": {},
  2788. "outputs": [],
  2789. "source": [
  2790. "+ l1_lambda*(sum(torch.linalg.norm(p, 1) for p in model.parameters()))"
  2791. ]
  2792. },
  2793. {
  2794. "cell_type": "code",
  2795. "execution_count": null,
  2796. "id": "97c7cbed",
  2797. "metadata": {},
  2798. "outputs": [],
  2799. "source": []
  2800. },
  2801. {
  2802. "cell_type": "code",
  2803. "execution_count": null,
  2804. "id": "d8a75e16",
  2805. "metadata": {},
  2806. "outputs": [],
  2807. "source": []
  2808. },
  2809. {
  2810. "cell_type": "code",
  2811. "execution_count": 218,
  2812. "id": "c02888f1",
  2813. "metadata": {},
  2814. "outputs": [
  2815. {
  2816. "name": "stdout",
  2817. "output_type": "stream",
  2818. "text": [
  2819. "CNN_RNN(\n",
  2820. " (conv1): Conv2d(10, 16, kernel_size=(3, 3), stride=(1, 1))\n",
  2821. " (pool): MaxPool2d(kernel_size=2, stride=1, padding=0, dilation=1, ceil_mode=False)\n",
  2822. " (conv2): Conv2d(16, 32, kernel_size=(3, 3), stride=(1, 1))\n",
  2823. " (batchnorm): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
  2824. " (lstm): LSTM(256, 128, num_layers=2, batch_first=True)\n",
  2825. " (fc): Linear(in_features=128, out_features=2, bias=True)\n",
  2826. ")\n"
  2827. ]
  2828. },
  2829. {
  2830. "name": "stderr",
  2831. "output_type": "stream",
  2832. "text": [
  2833. "C:\\Users\\saeed\\AppData\\Local\\Temp\\ipykernel_16720\\3694016727.py:7: UserWarning: nn.init.xavier_normal is now deprecated in favor of nn.init.xavier_normal_.\n",
  2834. " torch.nn.init.xavier_normal(self.conv1.weight)\n",
  2835. "C:\\Users\\saeed\\AppData\\Local\\Temp\\ipykernel_16720\\3694016727.py:10: UserWarning: nn.init.xavier_normal is now deprecated in favor of nn.init.xavier_normal_.\n",
  2836. " torch.nn.init.xavier_normal(self.conv2.weight)\n",
  2837. "C:\\Users\\saeed\\AppData\\Local\\Temp\\ipykernel_16720\\3694016727.py:14: UserWarning: nn.init.xavier_normal is now deprecated in favor of nn.init.xavier_normal_.\n",
  2838. " torch.nn.init.xavier_normal(self.fc.weight)\n"
  2839. ]
  2840. }
  2841. ],
  2842. "source": [
  2843. "model = model = CNN_RNN().float()\n",
  2844. "model.load_state_dict(torch.load('train/fc1_10_20_11_vowel/model.pt'))\n",
  2845. "print(model)"
  2846. ]
  2847. },
  2848. {
  2849. "cell_type": "code",
  2850. "execution_count": 219,
  2851. "id": "fd9bd508",
  2852. "metadata": {},
  2853. "outputs": [
  2854. {
  2855. "name": "stdout",
  2856. "output_type": "stream",
  2857. "text": [
  2858. "0.7864583333333334\n"
  2859. ]
  2860. }
  2861. ],
  2862. "source": [
  2863. "test_loss = 0\n",
  2864. "n_correct = 0\n",
  2865. "\n",
  2866. "model.eval()\n",
  2867. "for data, label in test_loader:\n",
  2868. " output = model(data.float())\n",
  2869. " pred = torch.argmax(output, dim=1)\n",
  2870. " n_correct += torch.sum(pred==label).item()\n",
  2871. "test_acc = n_correct/len(test_loader.sampler)\n",
  2872. "print(test_acc)"
  2873. ]
  2874. },
  2875. {
  2876. "cell_type": "code",
  2877. "execution_count": 53,
  2878. "id": "c7fd86ea",
  2879. "metadata": {},
  2880. "outputs": [
  2881. {
  2882. "name": "stdout",
  2883. "output_type": "stream",
  2884. "text": [
  2885. "0.3645833333333333\n"
  2886. ]
  2887. }
  2888. ],
  2889. "source": [
  2890. "print(sum(test_label)/len(test_label))"
  2891. ]
  2892. },
  2893. {
  2894. "cell_type": "code",
  2895. "execution_count": null,
  2896. "id": "20273a2b",
  2897. "metadata": {},
  2898. "outputs": [],
  2899. "source": []
  2900. },
  2901. {
  2902. "cell_type": "code",
  2903. "execution_count": null,
  2904. "id": "037040c9",
  2905. "metadata": {},
  2906. "outputs": [],
  2907. "source": []
  2908. },
  2909. {
  2910. "cell_type": "code",
  2911. "execution_count": 178,
  2912. "id": "99ab9dcd",
  2913. "metadata": {},
  2914. "outputs": [],
  2915. "source": [
  2916. "a = [1,2,3,4,5,6]"
  2917. ]
  2918. },
  2919. {
  2920. "cell_type": "code",
  2921. "execution_count": 179,
  2922. "id": "5189a944",
  2923. "metadata": {},
  2924. "outputs": [],
  2925. "source": [
  2926. "np.random.shuffle(a)"
  2927. ]
  2928. },
  2929. {
  2930. "cell_type": "code",
  2931. "execution_count": 180,
  2932. "id": "354e419a",
  2933. "metadata": {},
  2934. "outputs": [
  2935. {
  2936. "data": {
  2937. "text/plain": [
  2938. "[4, 2, 6, 3, 5, 1]"
  2939. ]
  2940. },
  2941. "execution_count": 180,
  2942. "metadata": {},
  2943. "output_type": "execute_result"
  2944. }
  2945. ],
  2946. "source": [
  2947. "a"
  2948. ]
  2949. },
  2950. {
  2951. "cell_type": "code",
  2952. "execution_count": null,
  2953. "id": "55070b74",
  2954. "metadata": {},
  2955. "outputs": [],
  2956. "source": []
  2957. },
  2958. {
  2959. "cell_type": "code",
  2960. "execution_count": null,
  2961. "id": "1d9174a3",
  2962. "metadata": {},
  2963. "outputs": [],
  2964. "source": []
  2965. }
  2966. ],
  2967. "metadata": {
  2968. "kernelspec": {
  2969. "display_name": "Python 3 (ipykernel)",
  2970. "language": "python",
  2971. "name": "python3"
  2972. },
  2973. "language_info": {
  2974. "codemirror_mode": {
  2975. "name": "ipython",
  2976. "version": 3
  2977. },
  2978. "file_extension": ".py",
  2979. "mimetype": "text/x-python",
  2980. "name": "python",
  2981. "nbconvert_exporter": "python",
  2982. "pygments_lexer": "ipython3",
  2983. "version": "3.9.7"
  2984. }
  2985. },
  2986. "nbformat": 4,
  2987. "nbformat_minor": 5
  2988. }