From 50deb42205b457c612e373c5eedbc5ee220974b2 Mon Sep 17 00:00:00 2001 From: Robert Muchsel <16564465+rotx-maxim@users.noreply.github.com> Date: Tue, 2 Jul 2024 09:27:09 -0500 Subject: [PATCH 1/3] Final PyTorch 1.8 release - freeze requirements --- README.md | 4 ++-- README.pdf | Bin 6727882 -> 6727866 bytes requirements.txt | 32 ++++++++++++++++---------------- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index f55d69335..c84a9f057 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # ADI MAX78000/MAX78002 Model Training and Synthesis -June 25, 2024 +July 2, 2024 -**Note: This branch is compatible with PyTorch 1.8. Please go to the “pytorch-2” branch for PyTorch 2.3 compatibility.** +**Note: This archived branch is compatible with PyTorch 1.8. Please go to the “develop” branch for PyTorch 2 compatibility.** ADI’s MAX78000/MAX78002 project is comprised of five repositories: diff --git a/README.pdf b/README.pdf index 60253bf98db9ee7fc12f4c11bdca11ddd361be17..6761f602b9179bc9b43420e63511adbd3e51280b 100644 GIT binary patch delta 72109 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 baK)9^Trqe^HAEZN^h~uTO*;2Dq1yieySyI6 delta 72246 zcmai-3H;U5^Z$P-(IQfkY$a>N-4`WgNjs8|Xj73$C9>p7SxQ;5d?-YgY^g}e5?P9< zkR>XLd=UxRh5vKz{oK#zo_T#9kN=nZc=*oeoHOUlnKLtIX3o5ye{X8_W&Cbwn~P{k{Of-=efHczD?jV`!?syZy!zj;m1QFj->&bf7v>+j;E&lOa%a6T>b3cYUwG_A zeV^*{{j13_*)A>b9QOCqdoF!`)LHR6FF1AbQ_~-LdiHgTo4<6?nh~EasdfFLu}cO; zYK;24?39nYzVboYfXNR(@nelTjjEm4;NPu{Py2jC>whA5zLr}0%ue%azIx*YXH-9S z+YSf68EyUKb!|F)H~g;#HR^6&zhd^<*(-Y=b;qdP2j^a&z5c~RRy?)#wrAo;{P0Yj z-!ENo*{t|us;HGD+&Rw{9#fqKJ8`yYVmqVxRe)P)=FMIZi zzyI3Y{LRoHa5{6Y#DUv%QMfuDzV!!?=N0^Nsr6_Ie63k&+M>o{r$S$ zu*YE7yF!=9nXne|gR=HAn8hpxNNw zTMnAmYiNxZXMEfF%&!NZ`SqlGI$hNNy&Dco9lHM=)ymGfw_p3}`%ifLtv@?%?L6VG z<~1J3-Pp9vE~o7J>81$>pS54^pPNta^3#+tubnY;-ltQ>l&#JU?J(r;ZL`Nrne^!W z{hK#DB++rhj9c37e*1>0+YSEg_-0eSd12I@^_P$O=JD<)-}dOyNA+4U;Dp?pyS?#r z;}@1MxpCv@dBgX3Y0_EEW7Q{C-)q9yFIKB5~>{k*kS*Y%&>b?&YEPZ+dM%le7UFUL1s zdUDJ4UtagW?cdsGP?uAFf46ttOAdX#*6Qnzy?@=nGcvC)J?gO5t(y(sHtqf`w|9d+ z&wP306&HW@=Hy!rBG4V-VPrYWR z13zmuId{Rm&rLn@*r}af+qJ7j$1>B+>^Au5FE4AdY|vht zS~S1)%4472*reA^qw38YGOFG?t)3Y9*Rs>TfAq>1o@(*;C6BJXW6vgi#(((9>Va+M zw_N(veQOVxzfb-7-yAvlr4iLT{V`p_`G=dJmr5==eT8{%^)! zt(%YEYx{UP*t_sI0opWIW{aKft-?r*&Kk}a3K+vSF{u6X>Hi32~cm)o`Ojm>Ua za>Rf07S`>2`Hvqixi7M4)tc%5Ev~!%i4#&^KKRY|=M6q##9K{nJv6no+Jg)C`TqF( zPd^|s{oo6yY(L_vu7}t9>B57ev#uV0-?vG=> zyms`XwxBay8>GYN7-#T#p!0Vsx(rWTot0#>b{?(GXPwp`Eob34VQ+B>! z&HQB}y4*Er!0fdj-1+7BbuU~!cJ`(hc8#1@_uXfrxpDU`uKi{G?Em_XdAG+CtKT|s zm;QSVY`Nitk!^4Ia>;~Emo2*DgmEXG)ZyV>2k$+x<6GnJ-fi30(YqHPcI3e8_IrE! z0}l;pGQa!jy%IaGtaIo?Tb9>O|8K(^?T>lr{)5+j^?Bz{TC_j?;o3jF{qT;{PJO&? z>V)yXH{SSAq8PQ0gI({p#a=+(ap zpTB#4(UT_)Kj^3THhgyG+cOV7^OX&`Gj4vcS)V)RK00jK@S*SCy>rXW7j?L3OWTiI z9#iebOTM~wXv?|RjUL*w>p^Y)@8^Bq?y~E%Z#L?^ar~QiUjNMIlj<#6u%vf+kJoEWgKM!u!VAjVY%Vv-5ebNPUzkQ|2){$eEpEhmSCBs(E?vs1z?`|da5`bIr>+-~Qa*6x^{wDh6u2amjU@y*G{-nnVh+#`lx zlX~v{PR~5luv_!@7M=Le=y?-w{dmFaFMV*=yW`h9c+ZS)TO8M7{XUbviN4Z(pB_)$ z@Zqu+Urb;A`?2>WTjpx**R8>zu@64q<*v-eLuN)Nj##wx+CQf(IknAA$L-!?{hbFK zAL~EkkDcT7{`_abiHW|~PMh0*YoBh--dTRt%6rCi%AWO5+dd2W)*G|i?W<1tq~3s5 z3-288=*+Eiha7XkJyTQt?%Vg!!}qSesY%yqi+5i+zJ0s1Zf^Ygc~31l>7=g*TsOSt zp_5M7cz14GtH&>ycJ1tIW}bP%Ia3e5;M!e!4nJe{g!=oR`r!u+`%al~Z?EHKU%LI9 zFP?kJ!abVLZM1AAf4|_UdG}6u`^eibJz&}w-<%VF`;rawk|Up- z)9&19Ll*tL?&5bB_D#v*T_XQRDnUm+y7u&SU1UA7A^IO=m=g&R#xtQMb1r z$SoMM^OLXs-R!M{@A+W+PtUz>#_)xc->v>^?F$?Id&_ord_TQMgEMA~TDNQ8{|>yW z(VjIQ-fdv7OV+(~dds0B8=QB0=8y*C=Pa3b&0QU@>2Sk&E!R{ZQS<2R*3naL{B^@F zJDvN|w@0pfv-@!iSFPH)Rl5a09+s(gz~}|bJIz0N^&YdkjEc2rvg3#QU9d5id42Mw zGk>3d`QtS|KIh6OUT&9O+UM_f7e0RI+B!|v969-{Ay2;2to<2ZZd|_XE=g%$vK{fSS_=)HrYN8>SApXHKWvW^LEx*0%qwt~=nG<&k~v z-8`sequ$M@{#CQ(oO(YUwYK@w*X;fLzwa!&e&%nFjazo~@SFdR<}Uqn)7qo{yKCjy zjT`R#->Pp1b-As_{39o<9J+6}t?NH|>Wi=9H`iZt(cRbIlf3rKD|!yyc4zwo8}vM< z*Gr%OFl%hJotoF1+4QmF7iCA}zTdMy6T7F&{k1-MzUIvSAQUxz;W z_Ndd_UjN;rw_fq%KikiHDtpnVA9mZn=>@yB8T`h=({k_4nz7F{1$8!*`fcWwyzJ`J~#K}M=q$Qa z$+RODeg5a+b)Ae?N5Y@<->7?(zGnO|qAs8|mA<&2@Ws znS9>fPc7K>>BhsmOn&0wMW;5J`$BH$>*xO8;me0KyQ9T9Wkc)!@cGa+`}G_4-P3ok zUp%4aO`{ieJalR6n>W6>g{`GyIKla_Tf9ue3*vfd1 zgK8hy{OuY$_1^!!8Ao@2_wF6LzPs?76B}IoNc)N3eRj=?H--#(=eS|Ze!J$k7DMKL z_RWYxhP;!x;qiHwo%?y$F}XT-FYb3>pNp>E`q8l24>lY#_~zy(Pux6z;&qJ&E$-c~ z`k1fl)S32m*C#h$x!VVc`Y)7if5Mc8$@ZtzdSuwvNa~AD$KN{Vwbw7-GU4orx7NJr z-QGvd+G}g;Db4q+e)H|)`>ot~e3NSy{u>+r{3-8Wy3gb<7CqZyhZkPj^zyH(pa1RO zOFA|x>$Rq7*=e~OUYpe6=%%~=x##~bJ?otnsfTyj@zrIGcJCV7_->#2M+}a?`_$h9 zC;ru?+hYscH@$AeXRD9fZq7;fb)Wj~F5g`9N6*LND>}T?;j1IBi9Pn?u!jeXPGnZ+HKBhdt1FPPToI zS*Kjv^_u&~&Rsg{@%in>WnQ~$$*xOkw0dpzhIJE%-!y#UmW$qrJTkZLgMH(ZPS}#W z>VK0zd1U;g!8bjA)%3kOpL*M(4qN74J!;zM<_!kkwrKU*i+^i+*Goemo;Tz6`IFx6 z8Nco1)mvNL*}VFDi?@4n&-$&WT{Y>R6)*g``rxtk-e~pYW&K|qx21*(YB7T<7|$dR{xOW1qQaE!^ktb#p)8?~dVh*KJIE^hWJXxm_>aR%6el z*9=~N_2|9kf3|7I$@eAC{`u~0Pwd|0*iSnTc=fKugBt&H@2ia__pJ8dUVE>9{mtLc ztGn=s$+h}zxBSObkG-+%&i^&+Uv}=gy4}Z2cx3F7@sV-MBcHu}#JgATJLI1A?U(mI z@!ORxZX0y-Pjv@AaP5r^-#UKL!|UFjJ-%_vs~eww#~$AtI(Kkx{EOGOT5`#_)7vb) zc*aAEt35nx>CeYh`{bE<8_s+rao8JcXT1LF>9;SNKR3BGG4APu_Mg;u<82G4xysg!kX5TMa&}7Tnp%0$ZvXs9oDnuHWR;DSfj`Es2&W&F@d@4j-d4fuPV&-z~a(FJoSUw`G&&%54q z;PUF7rY08be&vL|FTK=v_uRfG?s)OJSNznhdhN@%HveG!@=xz+dBwN4oD*q!aL+k= zci8vq6=QP^uD+t)O^1H<P=H~%=c{J=&HF6%#H?>l!JpZxmFr#82I zYx=6S7k0cd+Txkq{YU?OBhWa>z4NJ9oaNZD!n(313ZlX5HPHkG^g4VXLWA zuKabsfps?y9^N#*VaBaD9MyuE-F?>$J$~8rT(f~YzBeUPzs;=uk9g*UyWhIyh8inw zeelbkbL%gTyt1+8qWgb7;-lu<)@^y?^5@@r@x0St*yrfO+nv^N%NIut9R9|fziMsG z9Xe|9U-!i~f8FSh0ktmtbwI5%w@x2={nc}>jf_lO_i5y$NB8fy?|F6ZeRh}W4?OW> ztvi-(uG4JAo5#04=JhXj$X&R2#e*{*ssGMpqpm&o{Z`9&e7oNPZ7%DVyZ(ckZ~j{6 zylD3?>Q9)|vtIXIc5nV{_WIQ-;R zJ(iz+!JlilZuk89pT;h2+^Svnu*AeOc9^^Go&6JaKWdokcjKU8{Wg4f)4A z8@H%2?$3osbz3^>g0VMF*=t>Pbic#q{2S}p_Ump(KGH7NB3FIG_eX86_S2RcXV+Ug z{q;H*wtec3!{c{6yrJj#%f9|$hXLb$xuwr}*Husd+kfS_j>o_JM3dpG#{Bs5+wm7} zTc4ZW{`T&lcKmbq`?~#c^7H@BoAUGYZ?66J!(V<`v~YR*WV*66xlOc?(2u`k^D$zDHhx8mNdXMc0dS=~2ZzkbZ7i@JR}`jlfkU%Y(V%+4!1 z>~{9fm(983{LS?@U;pgg|9yCSn}eDSJbQDCrpp_g8{PAU$^X9k^1soWmrrQ1_VivS zJ-hJo%l_TI;l&rf@ZUxIcj|oqv}aG>?%&+xw^Pv*r;L2&k{Vqn_IYalFZZnMa_-b! zzUwl+M#Jih&usqw#WUmUj(h0$Z`*$|{k)Y=pZ3&=gKwCgdA3Wv#}*v&zx10wJlS%_ z*%Qxv_PxEAeX#O^C+hrr%%zQ||FUx9n3b)+ZgcRIdv9-lNWV7CBA0%Ab^rR8Ki%W! zgRdOW{fy6^Xw|(%=RF6${_4#qoW9pZpB{0>MbWjdcW?M%kM66M9X8|VXTDq5uvUZr zn>FCtvySNgPK$c;j$eGwv1Rk?9DUL5iw?W${uOJQ|F>aMyGWX3KJZ?jS>o+v0#&0`*)%n%nw>`g_{C42CBfnbwYV)hZ zuP(ox_|@aLGrwK<)#tY>KO3tdzuovX;(6fhzjGFBXfSZe zO|??7R5TvTBx7ZBW(;gn@_$#&7}%;sI@>g2|7&_-)7ts}h$N%2cmPYqve9TdQI>gd z;DLjZvEXlX$;2bk0G3Lo(wSH|ZYr5hrxPBQVc?AGo6V#n@vLuc_XiC~e(-}v-L_C@(P%l?HU^J4D^+Zx>g~f$tv1~Ts z5y!I0lt&CdWJ|XV{Ha7NlZkmGu}mWAX%@>wG6GAdqv6ItqhvBuip0nkjifW-rUJ~w z2M9+*BUu?R8jZw4BuqLTcMJ_ImCYpFHpNn9bB7OVz(yxzh-4-$&6CMUI8TO6M&q*X zL^>toCE{5bFA<4ZUkF{vI~~OW$-n z<*5)&WwUu$=|PL8^wdY;4}Vyq@JGnUsYDe1(00+dv`eJZr3W&9(4q;r!I3(eh={a< z-DFFUo>|We(O5PnAzfX}=DlUjqv2t>iP%BwByf^YInREmKSCSR^Il*@dQ?`r1c7h(U zBs<8a+8R5R9{UJ#NfwS=5&|KYWWZ?IdjnYyyC(BQ5($~$G?`~4?ro2F76s_01T5)k z0W6k3f@hbkC!Wn<35A3Nmhi*?2D|unC_q7+F57Ub>6~oZ9ocv`mGU+huvk1~>J(g_ z@roZ<(i=g*qF#KUgwlCIXgpsuf&j+783HWgnL3`0r@W#BhPL(V#w2ngC7z8XOVx|v zXC<*{(lJIn3tuQKp_5UQD4xY63aJ%|#1bG1CTOQUhmGohu>>khU~w-+K@yMnozB2w z;dm)Xsw|d)#qyJ3{T1ZTz+%!F77HiCfEnzcV1mHXX_;UK^Cw&}?VR}oegh&5{eY_M z;u&l<84#f(lY!x6(lDG*D-q9m8zP=T5V=zy&meW&sRxFw=_d`t2@-5@fA}(Jk^+uO zofFSQ(^)}+f)OMzoUBf5@OTCh?bg}ea&$CDYSDoj|U-F3&>Ws9>epER%(3f@l|>q@8 zNNg@54lz_k4|-lelLe{={4}gW5n^KrBO!-HD<@HeLRR#kXJF2cFm*B-$q82{VN97d ziqOLnRTxSMbw=U8i#q8Lfh)7+KFkX34G=TL?Pn~KjW|h6J5Fb)0#flrMtLTYNs7S@ zCxpf|^v81bn%ap1BxKgkJ)o=Jin`70LKL zP9zIgf>N21NMgnWrvz$o!zhOpwRZ&FA$JyYOgX2FtvKl%FxEHi7}H>Qemvqt${p<- zv%y>CIhfNVS~-EDk$sONzdaIm&ht?`g4;T1XA{gO5!2) z#&|MBmtlN*_g6fDzpA(;71}!yMG6NqWI*gxId=FSik*v^-|Q(_F@|c`*A@b?100bY zbH>3G0)Z9$0RbaL@Fuu+Y^O6XK*AL$WK3+a6bIh-O`Ffu^iPEdCL)kcJ8K=EFjVz> zmw@^n3F6jm34I}JxH!XsmMBgpSBR<*g7Kcgd}nvInK4d4KN+rGP7xWBh#X_q;k*}- z7~TUe_r=*%Ovd~4Bd{An)3t+w-n|lM>)a7zGU=?}_n0{}px}WeEsMVpjMn{DKHUd17SH)rEzZ=nAfw;-lei;P#)%q%w{| zd9Ri*a)txs`3d($=+`n`fim;aH;^QJL;zS+Zu9Y^UQaO+!s{e*B%Z`K8Bhiow(iLx z;~5Z-NYD_62H~Z!9g~jP8MB?PFm`AM+ZMujxEP(CV#A1s5p-Nn{4k~?JS@V+*~4HW zM_?d?NSfw@CKdC-^`7-?VP?Lcf5JQ-j#cpcdUoWVAB#lYxuIREWV~EHt_m>YTzquq zCLR(KqKn%eMa-qtA>pR)U1zXt%=<%u<>DOUkX+o_hzENZ{!q8uw9C5F&VX#Jn@kqF zz?r8gMC>vfuU-jT;QK6_`|7|3HDb|dqMSSMb2+rxjH!}fdPWzo#z8^QD(q|Lo*P5Z zmv+c8w_N&it{iumyVmOhgE@|2GU6t%_!kE-KuowYl6J?BcIjBjB`41v)-dC&Vqn+` z;jE)LwETuxJAWy$338Rfms?ZN6&KVv7mIN3$UC5axW~jK#f2VC;}Unm%G!DUFc`*UC1nhM z9_WxTLxO4{6%5AqRd&wz#a-<@LAY(QY^ZOCkrGN2YnSsu1A>=?v_m-vsgS#l7ifny zkE;jkQL6diV@G?qLXh|VRQgYv7x@RnK1&xa(A!{=guRht2>^t6eeQm2hCw~ z5{L6XAZ~;iCxWeA#-$78Va2;%1e4N4MBtD&E+86cdh}F$bl7wyDj7y+TnM1RHYp{I=rCLnXHCzbxct6uz=xS z2v%(Ed{_Ys5~&i7m&Z{dKgutt*3fG#gOLm7kr2lU2Lv&3EVswRUAcdUeUURlnI?wB z+3PqkGRXR}IiC*PKNrn-zU8kOr)ro2F3E5T2E$4ZrvQvFqlbY``X&oTf1n>ZF+Mv2 z?`_(dV_2zpenPt0l6+{++M$Mn$rvoSZ5V!5g2O~sg8NZcV$RTTK%}Ji5E&BhX~agr zPo{ly>Xbo5=*h1lt`|c&2wBlo;X!3_SRJyEDst;+7;*Ppvv!2_Sc$j#tX)7>JJ7&V z&YEB{W*?SN(DY+odWQR%LffKoOB&_}G)d`UWObDeSZIf_>f6PLc?K~29oarl*O@D?J0Mul_!)2 zTphT5d6?~RAYF3UU1ShBnTRV+$Yo|sHoVbWUt3^E8Tz^yFYU|=;U{C3o70ch&D%$10u331aIL6fYYATVBeS6X7Q91^`kW;!^I&XdDR*0w2SKzi<;@+`dX5L zN1R5Mh1AOB6H6TjllqEN(XY-j0mHLx?SxuTKjKUqYbVsA9TF+jj~JGmx^UJo9HKRx zb;A5)PEF}}W*qL{g=IL@P;-RXlF7z~x>VOWl~*@04r^PF^{ zGZt#d-oUWt1&JmjT2{Cd!6&xZrzZ|B12VaQWAY1)yNTbwK* zFW~sYQ|(p<44+Sk1elLS(3f2M(yaqOB9=I>TQO#!zX-GGiA;&V$efAhob+x3U?_o* z;W%j+^C7j+Qn6UhuMXP##6IgB^KuuMzYtkFqE!JEU^u(J2QagW5IT8Sg;FO%OiVG9 z8hP`{8F&Wc`WXypNc@%FV1yKWJ3)PZSg?ew9W)QdGZ;~~Jgh>{fdtH$c2K*5c{N1iz3KYbDLyO!U1XL zJv!D`{R1T96)zTLL;f6CJBJ}A^T14U6XtAt)569l3ghOHwnaFYUj0nb7Vwr>dr6QG zdh?xeEI7U*>VXQCcEXdi6U~8jmMwJ?8GaHK;59cO0rHAOo#IJ`F-SrP5z{Vw@Mq(} z_+BJ&4MpO*zNrK`U>-;!fHS&KFp;>s-oq}K5snQK8N`Z*u_Z1xpQK%R(sZS@XTY@R zC-O(U(1azq-@BF2*9&Xfp{B!j+%mYvmcYP|GY=jw1p=d?zqpVJjn)s_86y!_C>b!{ zmjyc}q_0mRweiw9XT=#=3)!K85GI7<2jq}=%GiM3RAGOKkhlpFS1dm{6+)2NMbl2} zTQ;W8mN%G}v`m_GOh;<0AwuIGaoU{-tUVff=}Rsqt~N(j+VLhL9FTTC-H{j(=7!Ui zwDZviYZr^>+_3}5#XUemUpjll5Y$VOUJXgR`wDt@MS+@aVvS#u1 zgp;uWlg^Q4?R;hup>op1L&0UtN_t{|BWIlv7y*#ZguB9q1|yd%XlIiqTQY#r4qt=7 zQp6jj9ZsCkg=3vDX2XWWx_Ce3VEAS{b8+h;v)i}BvU7|{LQ-W^vfSEB;_2b$;5*|9 zcUwYd{P(UM0Y1+Q84~xs!A7t`sF0%}ksdc7ip`}fa6#bRdq@TRBqY&>ZdxjGtLaofX4^G=A=9?uY@yn;lLN z-)zdosmNbS=i^GI|0|4b>+DHQL+{!paE0OMs6ep>+$ter+Hq?ZSU$I=9B)3w1<8tS z;2XjU-f@Nmj=SIl$wfRfag)J-;Bw*+Lj~tK;HJ(CGLM8wOK6S(+{xjt zfp&6z8PB^cXjiVbS$_p$J0*TVbeJ9|L|h383zI=o`_*wJaXJEOB|=vf_zg$~o0~OH z5d|^UkRrj>5X3|SJQc`raS6rXji+*6_*e|X+4$DbM^p?Z#}gPPpkIhR0#;bLkG;bF zvjI`QVMD_2K9C6;5gU>f<4y1~z_gu{0Z`hdxp4_*K<~#e7;VGJ*xot)&ZJR`!mNp; zH`5uZM%q#Nctvj?oh8x0VD27gNPOO$QHC3GI6+`O zT0md!IgS@{26PsxHT3T-42g(kVC+eVn7;VR1?IyUhJ(}qXaCuNJ}{QRyi%!0Zgi1^ z<#9&_lxi=)kpAIhY`n_bRJr{Jko#=d&{VHCB7jNlCSY2%i1ECI1P-aN5zAqfcoUid zN$Zfw$RjQr&}%zj{(b!*FEc>3t^7NBN1}kDx zd@9-%>^~dOD;;7-KE>HqQiUC08(%S?#lWl`iO(U-#`EGE`74eCyHtujZ!mwvfQ6Ae z5Q9Wy1u&eY;biDrD57KZFB%{Qbk6{6GTzN%Nci^YKM(Xr z%m(z~L0~B9%Fczpl5N3wRlHi`6#Kgc6)GGvoG z{s2~P8JBhVZD8FTM!VAv<_7bo5u;1A#71%%yoRx`xh1P&JTj>L3d%Def>JR&4s_n5 z{D9sX0SOt@GN9Z@KwQ>u&Ace5)_jp2r72(38D&bV694?Ex6!h~hCbOn(uFNm?;N!(;grECI_D2bn^U1|m9!xs>j zOPWmD^7q5Ov8$X(bFn1o&}IOq~n3^BSV>a`K<*eGF|HBqTP|N&f2BI&x+5#Wb?iFB9dbtohJzzS47IR11Qr_R z;D-$CyUv*=$Q~$M)ft;PdHu=$i)rH4G2tb1U8@wl{Ch0I2lrG%KBBO z+6)GmV;%m)aSNMUP}}?cfXS`LvUyxure*WUJDz(WXU{^JD4q^Q>@%9Jp*oL@ zOG;K^o5t%(GMy?{m)8KqM7*zu@yhMFQpt`u^e#~b^tBiaiK-c#`XUd3`GbZ#G%Pha zq%dn~2ofmfSHd$wVO9c0jtU^jS7T=N6>5v|%Ep={gSS-JiKAKt%)5{n)(2dT76|xo zn!vanhcMDI3OgIjM}urY)!~p!7J}=$bUVQhX>g!A(g5?X9bqo8xCth4IfxGDdh5c|hC@s; zUag{!jxy$%QFU%%UcSae}ugOv)?g18}A=qPC8l`~Onyue|0lct@2 z0Li0Gv!}xe0wa5~6lRtTZ>YQ;Hkc2T0rO8U4GBhB>3|V~QEV}Uacuk>Qt*EHXw;xemq2^H_y!pRIV>8EEzNRz2F2!(L))~r&}9hRKK)i z;vtOjDsvhN#%hj6WDx{=Vq2oY7GVByv$ZR}g07$-<5A8|5KHKizT8NhXCEM;x3DuX z2_b@ngto99Ff?HZqpvTMVUw<`<5BeN0~C*}WnFrW4$QxUVn9T-J7NaYlfzZPZBvc` z%L~m_G9fUZRcc6hneJDI9&)6nomj+-=c|ga?cCndP4{=)j}ux*m@RAe51QIS%^`lq zAi66scp`-1_tBC=z`R_dog6A~WbzulR8y08r&oFeyAKRAAU7hJj1*(C@w`R{7CaFs zXllfqj~bd+%S&v7dB>y;=ruYp|3mtRbXgpXFJ>cyer2B^co!)P6tl~@&UYD z!WmGMOBL<~du^MaOo?mC2J|W&SlNcR%!A2uT8|5A=z_5P!*&c2x*5>TWF$ehupKHX zsk_P(N-^l{-KQYot*SdSAi-P~B)(LF=|cbd++acQD$gc1pl1nS{-Fk)VF`Dr4Cdu0 zF!{8AjaO<(a*&N$IkH6jO4M7)fRaOGFi%znM*? zJ}lW1os4lp6|3`A3E5-)^aQZtoAXM8&ZLcxh#Sm{3}Dn43%7{@eYUM3)>`!39>bGk z1|2}Ld3d(rWeWoms`7}*-jnl=b?LT~mp%ST5_q{qDLwoY+QZ(pnKvn5! z$^XJ@UxipE3Dg;CwBy}sI6-j8$-$t*qophH@7N$er%6bt?hqSKHF_1F0$_tla5eo? zDuTHXiU`IGm19Q=h9fJ8C6H05wfE6-;ZNG{N(*{(Pjz>%8&X)>4#yBqhdzZZfd_zs!jN3@fi^cZ zD#`2xMq!C?bvB+?m}opnSEp}I_zqxN980)1N)sXqlSX^UmJphCld(c|UcVWv5NzsL zNq!Lf;t5cOc&V@x9xd6DSlRIU`0shSB3n&Tfeyjj2~RZK)H-+nz=)JK{4c_?yxB08 z4cUqFp@_9^G9&t|Q!Cae=Mn<>mUR*tJh*X`A*E1s zxE%r6gar8A$z?#1I>6N8Bn0A3BYWH~I-CQF+pF^lhAYgO3DM9aG2kmHqzF?;W?8JbgwsCrk+D0dOwgU<2 z5#hRRqeUGsUa8hDXD2I&A)WoZLS~JPDJ;PgEY}yx$Okxp>Bk2w@!BW7!p3?rfsH*& z*npz8kvV=cjHgyQumUTx{-ScopC36G6cZ43s-k`ZK?gk-yw!3d2pr+-3-H58cu`zK zU{#0*ePe*y#pUR?4qvQJT0BJHNaR#)^A62X0VJ3ff`pPlAZ<&dYVyuLMn@i2V~n z!+~H3``UO}|M3BUT;#%rCQHRM115GNAGOj`f)N+2*!Ydq)AEJvTgm;FbLA0d%f{}8 zkR6fg==>XeGZ3lwp(mEB+Gi{{o4m-hf0x zI#w{Gl#qEL$t!06nj1~SUCHkj>0fexMZU^Kob*o7;oy~veIh~(%kd6~&AANkSIRGD z?O*@0)mFPPY=5zOBpERH^jzWe;k}V9fsq~0fSA`UG8tcg*d`t3 zZx)0kJ}g}c>Y^WEx0#3lz2^(5f;L%+LP`v(%GvIe0!lf+TLVFvTXRChyvVJI#Heo z2rkKi1%E}+iK5hDSV^k~CSO~{{39R%j#5zoklB00+%cSI!3Om0$T0WCBRI`i(6Ttp zkrEaw7X_5da4WU}L#i3k5d5+WJOuNG8fligTd0f@#D#;FLSMTTgG8P?Q5IG&9Kduk z)X{SjwDG(i23B4ZVy8-Z1Cp`__BIn*Zd&}wfAGnOArBOQRlz1iq};+8kLRs^r}2^- zAxl}p2K1^D--$2j$W~j$bw8jLX%Lt^X0q{0@7{Tq09eHdrp&&hE{J^%37d>0aM*aN zx5K6q9E~g z*$qkHHz`NVQ`@jF?Pyy913%1#L%bANfXTCKv^A2kq;r0CpF z#mT{tBTgp0>>Z`l9AXCa6*_Hk1O{Z%Me$Io9Vq&stK<6sVP^&;aav$L2@^8o>T^6} zuux-|3C%-n|H=_0l5GSGt1LuJU;NbqV*>5>5~pAM*=g^wpeZdqo~l z&;%k+9lZdv0Y#--eRIbj_AN@WO@N7H$6S#c3>hYoZn_ewMFSGPV&GS2Um+D(*~y1t z0^0G{&@1`=)!0#iRGg}h1wU*#K(uoKoMFTqU)Bo!sZidFzH4Jnw>ualPN z3@jw)zbl1E#r>));bC&PI_@8O+r(k7Iz%hSfrEMxHXiG*TnP>vp#pNvO$NjiTb9X4 zV23jyW$%H7xfI}sWywo$HmkuTyv0Se)bPmPku8Twjs@2}S%`hz%uhOF@ht%&k3$%< zmhuz8^y~1jmQ+l)Bp;nj@m5%=ylg;K;b!E8lOZ-D3GD_GFFrMfykr3f?@mg`LwVVA zQ}Jq&46jOwyaY!X5X+lU8&6fZeFm)*v28oLBj>Mse1S*hCI+nI50Kzk2?qowl_4;n zNU;dp8LY@h73oFh_wjBm8&Flal;^h3RH-K%m=BoH&Og*Q;}urdl~4u6&l=_7I2{+h z+*?5+X(j{)N#YO314dqePcI_X+>;t4{*wi)7z;`VltfFAXmA(271x5=#W$X*Xj!|M z86NhD15S3STuR}86_~tTuu}G3a2m`%f;CIXA1dZqQ0t}-Dg`1g3fTqK^$bYqo^XN& z)0;qwmt|o)5C;~N;fK2DbuX;!m58GZ?bOG{dok7MxUgg)cvA&OoUaoL65M3&1Yz!? zLHtU1nc}dUI22A0 z7?yMhqe6@Ny)08nsFei2o1qP;*Kw|wt{q6^p|Qclt7lGZcVzMxtNcR1UwH<#Di8ze zqhfo@B-@16cH0CJd8!R8Ou7X>OiG@EkRM~z&6;-pD>R67beL?3)w1+kLP~?2!BjG* z2c7rZZZgE>{8y(yjEyN;WAQlo^r*}4*`bI7wQqOE>)_8n`1i3^8G zyH_`Pqr^&nNoQYroNdB=?e-X06>6Knw3{G^ag2H#Sa3e)*|I%6BY}i^VPR(ml6Lej0uiH*#M(|k^BG=>mkG0 zfTG_?<`w;JZJ1}jUe7xQs&G27V|Q{G5HCUH>dF_Vb=-L8Q8@0bzmoix`yO_-^h7=HBpJGPAl9mG z_}0YavQqpdg6ANd3^2)G047&pRw7m1fK}f8i&uZrW<%q} zA}RpIUq>sn&E%m0h)nawy zfmjVx#7yztUSa=%L~Fc}U*QeUeBP|10!S#IBnwe@9bRas-g)zeUqQ*wD=y&$%6d75 zW71ON4VadAvjkwF79nV{|EOf{lS*ws)$ceKgw%LTWzt0Kg<2&M`+dqelc1T@cmq~8 z_h=kdXnw_|sST9V@WsH2F|yUEyqB`Q51H3O#QnCL0$ z1DL1}+!m$kqg+SvI7?&|=BJwsUsXarguG}l*)3cdp6vigr8k@ht+mu!h6uCYY9dr# zii5c9*3Rr87N^V|<4ERiDZ_s5Jj!>1+tSLb8qcF=?uFWJ!46vHjXSIisLwB`wBh~o zHlSCLz;FimNr$Bb@;gXnH+jZwFnKa$0@x0g36m|sy`_EqM`H~ypWJlZ4-iL~AdymUP)pMyOkW6M(s=PIoX29($+icd?uLBWbkdeM3SCSE2oG*l~b_X`$mUMBm-cB!M^tV&St0*O2VPyc6 zPr!je3cmr+R_bF?-o2yc`ZOxpWd0 z0)~6QhrTc}RHmDMDou#M9=9w zn89`y#NtlP(NJD4frQ>+XJG0rCep298M{HYiI~0HCL51!GW}D@=_KcA;WzTlyzyir z$}1v+`6!=_C+ax=4ea9Lie4s!nKzyoP}Ah>nKZ6$&zK<5#8F`W zvS8ztsP}R&6W>bkD@OE-DP=H8aiIFGS2|ebTKA2o5WXGy51Z6;E7TX+&&5DwI!W7} ztd@Ni=y%g4d?>^-CJQN)RWtrC8XyMrSdEpp72CFjRcmEZ?Uy!QBS@Fo?yqWk9V0hmTK$6hhhi z(Xl_s(hbK0CJE|HnxfOP67KijQn6>EZa*22+q@u=40X&Itpdlhq;mODY5y^xd~MHQ z%E6}FLc}1^Dsa3<63-+;FQl}2nE+PkE{XXHB zmX)Bsg)-O;vQ1_b$#_}>4(~?!7MDu)Dr{1`5uVg`5%iyrK>*2{a?5S^GL62hq;!IL z$qo(OtZ67!I~cGE>y9f>Fd&v9&zn4{4d#Plz_?ku&L9!L1u&@sM`wB9ZZIDN2c~)G zj8|0XC6XOymzxatVLm2QO0N9sdi4QH#J)W!wpDYGztxWXG+*Bvl)j)Cd3x zY4+g+f$?%Fgwa=QVS^>y=dEorQc=MM)EhfSn>!_>G|Gw%=HrjRDjm|rn>|RR8W%80 z&!sad(|&bWAvzhUqi5q4HG0vU&A}aF@_|IMUJT|%FfhVX;bd$))#&!EsjwYx5G!Y5 z`lr&kHlPncngd3!2}J2da3Md03iwQ2yS)FUf~kw2H^eF9nTD0fqbFce5)R9ilPs%4 z>kCXP$M88RNwWfp*s~xZy}%EMAQZCNRWNL4fl5(W-%lE91f7e6=yzUg`WriarMQW~l!0?NO)F

Np2~t7zJD;?X)nT*>1-Y*~3Nq=iS{(T8L7CK#Ohia7 z6*-ShBFBmO33K7rl7-ltOur>OYVv+;5X%z^U^p|v&P-ZMKk;bD>34XG0FY3Iz;uB! zmG&PEMbLmm%f;niqlA;OdPK@_DBSf5XlIL~j7AAZw*e!7(TcK}!@DQndf*%!?91qUxC1hMufE*_99G0F!EQoJ}cr zlQW?A+5r=?+JLIx&9UVtO)98oR&IcvkHBG6HT_d6g7F85I!8{`Y6S6X%){e^?5sq3E5aU6U1LBbPqy~wQl?Q_IOb3`0 z(jb4YiW7l%h!c^gf00{3B9FuwQ2d_2s@Tse3{+m4s$9T8t>l^V$c{~0jtMEil?@A4 z4zEvr&M2!RJ>63fzSQx;+HrZ!o5S-Z%!S?LIulpZPgz^h2G^H$RK5);M)~Xwx-0|= zn&2|}SCSv6spEbSBc{UDQ4>mQ$0hN6xye{C(8tUTR(c^d{D@$jriw&s$6*nQekUa7 zqxwANmZ-kLyfc!8V1Kw3161>hR3@KT#eh&dq>Q~HSG{3xe8P6%C@&<(`YXwg^Ii6d zhEA7*gt|mJpg81tGvNd7#2Uhv_=o4ouTSx5C}c%Vmh~HM*=XSyg&`!hg(0dCoY2Cl z8LPt}H+EdBdUDCjw9N{6mdE#wbwDhH1c}y;BZ*iwI^P74T_u~eWCzQ6mcsH*&wxZ9 zxq{Yv3bz_%&~sETg_B-1%9B*&quQ0e8z9xJ+vLx5HgYGIQ)w!_X03dz|7 zftA;h3wRcrRLDitr-WRE)nStgwYZA7b|8^Lau$jY&H(rk84$r80)t7G8QD0h(eZV8 zQj@uR!l)x;!?$#G_js45X<9x+6h$=?8Q2Am3J0^Qb>-VrIe#! zz|wSvf-bXQwQLD~R9T4srmkfp;A%v2v9%@gi=0g_gDisTuaQhz3&~N$K`b;X2Kih} z#!K_&Ll9SSfkFi6N~Dk+DH!q=#$Y}uXQ>*+{GN(C3oFq=a+praNH|R$sTok7C>qTB zLCARbwG_xkvnq=2%+gtEUKvczyVWgneQi9i`GMi4@RY`B>Ob6P#XCLI0Fx>oHlQ~L zfJtVxWxxdI-HtouY$}d>#hnG9oOcEkjm~$4#9?Azt!7ThNw~a` z<;V(~^8nlrNF3iWCha6TW8?YL1k9c!oBk<1b_Acii2!fu@x&(ewhjZzZ4Tp3ZtU=H zB`*|x)|Ngky=Od%4frzFH;wj+z#+ zTt%j-Idz2>taOkpL=sJT^QD=ltfcU%#uCPaGB86pATX&aN1hlyqOcvXVuZHRJ_eTe zgBblw$S+l&Kq6J;7!bFvAR&@2Fs+}2CMi|#hM)6p&$WGL9Hc@*qWW@5un8R#GM?6$ zvk!IYcsUj$h~?o2*>aLB0TQh-XEjoFA@bgd@yfqG%leDt2Pk9(32xJHg1{uH0)I~M zOvk8dFn{cTg;WKep@t3V%qPGFCPmk2 zr!PM-WhF(PLN21-fs~gaskHy{*@}L}6kYH}CP_i^q!1YL+f5n=uGkB}!b^AAMGp!Ffj6et#64CumQc|1|~J<=uG_%LCm#MU_wZ9vbMz$6EnzUmqTR&Jq|3IP&sb=LCq03_^_ zpEQ10up@GUR-QFmP10xNJ%SS9l9`-zjdb zlaZuNJbqH0EAIuAzE+E?Fu{sTAUW0C+QL}_lh_{vYRx%n5qaT5U-4J~BMmdaLEwti zBe`2sG0NY?Kr995=!*^v2DI@cW&ljCPK<|T=L1)~<&z6M9xZR?SZ1?O3q@HZYlUIK z9Z)BT*;=&WDlUOmGR^N31FBHrm1(ha(M5*W%%2=f8xzJ%Q*_JW$k`)8ubt3!QZ^SD z=_-!Y zi&4A;+FN2Ld_XK2ufQ}q228F=Jl^$o1$`yW%RUb#AKsu~0J_qVnkR#@pZPbc+OAZ; zLtIV-PX^_bz}4U=tNHN2dME+U7xa;bg7y&=RpC?{ay(@_p}Gdom|qj^@~l^O!k9rj zVU9{#0H%{T9&mWbH4BSW4h43wcX0A>K~jjwuP>A)FixyEwssNpqTVv-yt2gTrI)dA zNndKJXkTs}z8z0BN?6YD!~OVpw6j=Uytar*{vsi~@V$kNN9;9}xWKg1Jnblf=QSw) zR-eIdZ$HGE!apa6$Mn8O%<1;|?C=WW-zd|pl!PqAcTObA=3YzG2F~<`7AH&WVG|KL zgrq>yOcH4~rtxAFWA25e$JA=xb=lAa|jPt9*XFma$k3OP9TWuB6Sl(PvkTXu^Q zW*#xA?jj8^<-~)-g9!-;+a8qgXMsJ(QToZyE?k}QmOZ_4leTxf<$P3Wu#@ua^DLnZrl9ML{E#~~?S#|G6ZRno z#`BNdFxU}X+S!uW9b!vc7VhVzjZlGHX6ehl&u@u+x4|3iRP~espiD4)_i0C#j5HBa zBnk_E&`u<#rCJv!U16|W=@eNV_K_z)?L^QJ?-3UD=oa0X6slc3t(`hIaB#>ET zxZ)+xuFfc;JpC*89Z!!O6K-3w?;6*z7m;F(VcY4}1+I|ts12Dv${=JY%Zj;o%O0b2 zgbI8%PGJ=un|^zJSRGzu!bB( z>{!uuyrOWsd!ntI|ns9 z2?w5xAm6AU3qXTQxTMAFl8Tj8yMucpSyeJIbc2@>T=PUj;=>a^91&nKR=JLdH0H^D z{-g$SgP^PKHy#(63;`FJw3Wf~^g$YE-{8wQ1-U_xR4yNcAVn#`-*WjN!dEJY@^T1s zRjG>PkVz-V_VbDgNg_5L(Ijz$TFDey9oGUuLfV~|#)Rn$_l!Vp5a-bWZ-4)VN2*3BDonP64gg~ypClPTwSo`sg~ zLVgqYR<(!W+?HJ>;47Cis|4$JADGDGbedX!vSNLGNA4VkqT3RCx-NZjo|NJ$vZF0;NJ zMuqe>C%DS@Kf4V34Enf-ro3K&=sst4>~Y0F!F|z}33WqP@vkRTwTtSqYj#R?J%lg^?cbw}cR;ueFGv(R(nmQ5-o|zE_S|M(u3kVB*5C zs?o*CRQO4(=5&c%&YKNbCSn5(je?4Q`cgQ^xnita@Pri|hcfof~6X_DEhY}Np z<4ZF_Y8-Py8H#mjU(1p<{Zn#PVTK~%$fy%#!WBuxt!3l6)!~mVuiRgX1Hx2LrsyX@ z9*I!FnJabxZ*fFNU}zSPQ^lPNzpYS)Agf4LKH4syUbD(tVnR~BSk5tgDVKcOiQs~Z z#5TYQVdItcoIa@DZn$AR3uIztKTWqdl6;i_b5xbF)xPu`gK1T2Y7|)7YWcc@NQ7J2 z*W&H8J3HVGGJ8B5ag!0Z9BKN>2{@&NI}&Bl2W*W}b)7YmecJgLlAVk9-Ch~&YmY0xL23N-mq^9BLl0n%pAy8H68)#o$ ziKhJE77088c^qaE$>MTVuuc`e4STRJh>QM?QVOyTM=cbLRCWS}sbiC2{YCO82?%+8 z4h*kbIBUD{2n@P-mlkA^7(cLZi@|RZHB6HbiFq9YW3kYV5UXnk`+8+$pT_hDjVyeL z!2nCh3n$o3zO2agH>@RLld)>uj?-at30(ja9~ss`(G6N@19Iaah~QR-wDwYtc9fR) z?Kp~#`z;3MB?gWqS9A4LRzgt>Z*Z7bN+v_3$7@ECF1g#d$s`kHi)SKQU^~C7=E!zp zgd23=y|e=fOdbIPlOi9mPT*a=ctpSRh7KH2yLIcPN1Rf2=%a&L_9vJzhzC+U?&UwZ z=nqPz&x!WOgdx_J?cYDvrgrQ9Z=3.1.18 -Pillow>=7 -PyYAML>=5.1.1 -albumentations>=1.3.0 +GitPython==3.1.43 +Pillow==10.4.0 +PyYAML==6.0.1 +albumentations==1.3.1 faiss-cpu==1.7.4 -batch-face>=1.4.0 -h5py>=3.7.0 +batch-face==1.4.0 +h5py==3.11.0 kornia==0.6.8 -librosa>=0.7.2 -numba<0.50.0 -numpy>=1.22,<1.23 -opencv-python>=4.4.0 -protobuf>=3.20.1,<4.0 +librosa==0.9.2 +numba==0.49.1 +numpy==1.22.4 +opencv-python==4.10.0.84 +protobuf==3.20.3 pycocotools==2.0.7 pyffmpeg==2.0 pytorch-metric-learning==2.3.0 -pytube>=12.1.3 -scipy>=1.3.0 -shap>=0.34.0 -tensorboard>=2.9.0,<2.10.0 -tk>=0.1.0 +pytube==15.0.0 +scipy==1.10.1 +shap==0.44.1 +tensorboard==2.9.0 +tk==0.1.0 torchmetrics==0.6.0 -e distiller From 1e1305e6fb89d75bcb88fbae938e010420df757e Mon Sep 17 00:00:00 2001 From: Robert Muchsel <16564465+rotx-maxim@users.noreply.github.com> Date: Tue, 2 Jul 2024 11:14:56 -0500 Subject: [PATCH 2/3] Remove keys() from kws20.py --- datasets/kws20.py | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/datasets/kws20.py b/datasets/kws20.py index c677627b8..dc70b91fe 100644 --- a/datasets/kws20.py +++ b/datasets/kws20.py @@ -487,7 +487,6 @@ def __filter_dtype(self): def __filter_classes(self): initial_new_class_label = len(self.class_dict) new_class_label = initial_new_class_label - self.new_class_dict = {} for c in self.classes: if c not in self.class_dict: if c == '_unknown_': @@ -495,7 +494,6 @@ def __filter_classes(self): raise ValueError(f'Class {c} not found in data') num_elems = (self.targets == self.class_dict[c]).cpu().sum() print(f'Class {c} (# {self.class_dict[c]}): {num_elems} elements') - self.new_class_dict[c] = new_class_label self.targets[(self.targets == self.class_dict[c])] = new_class_label new_class_label += 1 @@ -504,10 +502,6 @@ def __filter_classes(self): self.targets[(self.targets < initial_new_class_label)] = new_class_label self.targets -= initial_new_class_label - self.new_class_dict = {c: self.new_class_dict[c] - initial_new_class_label - for c in self.new_class_dict.keys()} - self.new_class_dict['_unknown_'] = len(self.new_class_dict) - def __filter_librispeech(self): print('Filtering out librispeech elements...') @@ -1002,7 +996,7 @@ def KWS_35_get_unquantized_datasets(data, load_train=True, load_test=True): def KWS_20_msnoise_mixed_get_datasets(data, load_train=True, load_test=True, apply_prob=0.8, snr_range=(-5, 10), - noise_type=MSnoise.class_dict.keys(), + noise_type=MSnoise.class_dict, desired_probs=None): """ Returns the KWS dataset mixed with MSnoise dataset. Only training set will be mixed @@ -1058,7 +1052,7 @@ def KWS_12_benchmark_get_datasets(data, load_train=True, load_test=True): def MixedKWS_20_get_datasets_10dB(data, load_train=True, load_test=True, apply_prob=1, snr_range=tuple([10]), - noise_type=MSnoise.class_dict.keys(), + noise_type=MSnoise.class_dict, desired_probs=None): """ Returns the mixed KWS dataset with MSnoise dataset under 10 dB SNR using signalmixer From 68c5b73b9b7892741fae6328906cafb4b243177e Mon Sep 17 00:00:00 2001 From: Robert Muchsel <16564465+rotx-maxim@users.noreply.github.com> Date: Tue, 2 Jul 2024 11:32:07 -0500 Subject: [PATCH 3/3] Remove noise_type argument --- datasets/kws20.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/datasets/kws20.py b/datasets/kws20.py index dc70b91fe..383205641 100644 --- a/datasets/kws20.py +++ b/datasets/kws20.py @@ -996,7 +996,6 @@ def KWS_35_get_unquantized_datasets(data, load_train=True, load_test=True): def KWS_20_msnoise_mixed_get_datasets(data, load_train=True, load_test=True, apply_prob=0.8, snr_range=(-5, 10), - noise_type=MSnoise.class_dict, desired_probs=None): """ Returns the KWS dataset mixed with MSnoise dataset. Only training set will be mixed @@ -1010,6 +1009,8 @@ def KWS_20_msnoise_mixed_get_datasets(data, load_train=True, load_test=True, noise_type --> All noise types in the noise dataset. """ + noise_type = MSnoise.class_dict + if len(snr_range) > 1: snr_range = range(snr_range[0], snr_range[1]) else: @@ -1052,7 +1053,6 @@ def KWS_12_benchmark_get_datasets(data, load_train=True, load_test=True): def MixedKWS_20_get_datasets_10dB(data, load_train=True, load_test=True, apply_prob=1, snr_range=tuple([10]), - noise_type=MSnoise.class_dict, desired_probs=None): """ Returns the mixed KWS dataset with MSnoise dataset under 10 dB SNR using signalmixer @@ -1060,6 +1060,8 @@ def MixedKWS_20_get_datasets_10dB(data, load_train=True, load_test=True, additional noise. """ + noise_type = MSnoise.class_dict + if len(snr_range) > 1: snr_range = range(snr_range[0], snr_range[1]) else: