From def2d9e082da132d81091acf2da57fb9598954e6 Mon Sep 17 00:00:00 2001 From: Ikechukwu Uchendu Date: Fri, 15 Sep 2023 14:05:52 -0400 Subject: [PATCH] Built site for gh-pages --- .nojekyll | 2 +- ...inciples,-Algorithms,-and-Applications.pdf | Bin 43740 -> 51062 bytes about.html | 144 +++- about.pdf | Bin 7036 -> 0 bytes acknowledgements.html | 577 ++++++++++++++++ conventions.md | 40 ++ copyright.html | 324 --------- copyright.pdf | Bin 4540 -> 0 bytes credits.html | 581 +++++++++++++++++ data_engineering.html | 605 +++++++++++++++++ datacollection.pdf | Bin 6346 -> 0 bytes dedication.html | 268 +++++++- dedication.pdf | Bin 4403 -> 0 bytes deployment.html | 146 ++++- deployment.pdf | Bin 4352 -> 0 bytes dl_primer.html | 597 +++++++++++++++++ efficient_ai.html | 581 +++++++++++++++++ embedded_ml.html | 615 ++++++++++++++++++ embedded_sys.html | 594 +++++++++++++++++ ethics.html | 329 ---------- ethics.pdf | Bin 6654 -> 0 bytes feature_engineering.pdf | Bin 5530 -> 0 bytes foreword.html | 324 --------- foreword.pdf | Bin 4086 -> 0 bytes frameworks.html | 581 +++++++++++++++++ generative_ai.html | 581 +++++++++++++++++ hw_acceleration.html | 581 +++++++++++++++++ index.html | 168 +++-- index.pdf | Bin 11480 -> 0 bytes intro.pdf | Bin 11727 -> 0 bytes introduction.html | 186 ++++-- introduction.pdf | Bin 6625 -> 0 bytes mlops.html | 150 ++++- mlops.pdf | Bin 4019 -> 0 bytes mlworkflow.html | 192 ++++-- mlworkflow.pdf | Bin 7539 -> 0 bytes ondevice_learning.html | 594 +++++++++++++++++ optimizations.html | 200 ++++-- optimizations.pdf | Bin 7625 -> 0 bytes preprocessing.html | 168 ++++- preprocessing.pdf | Bin 6629 -> 0 bytes primer.pdf | Bin 6360 -> 0 bytes references.html | 142 +++- references.pdf | Bin 4280 -> 0 bytes resources.html | 324 --------- resources.pdf | Bin 4214 -> 0 bytes responsible_ai.html | 581 +++++++++++++++++ search.json | 367 ++++++----- summary.pdf | Bin 6309 -> 0 bytes sustainable_ai.html | 581 +++++++++++++++++ taxonomy.html | 336 ---------- taxonomy.pdf | Bin 7052 -> 0 bytes tinyml.pdf | Bin 7781 -> 0 bytes toc.html | 324 --------- toc.pdf | Bin 4690 -> 0 bytes tools.html | 324 --------- tools.pdf | Bin 3813 -> 0 bytes training.html | 246 ++++--- training.pdf | Bin 10103 -> 0 bytes 59 files changed, 9526 insertions(+), 2827 deletions(-) delete mode 100644 about.pdf create mode 100644 acknowledgements.html create mode 100644 conventions.md delete mode 100644 copyright.html delete mode 100644 copyright.pdf create mode 100644 credits.html create mode 100644 data_engineering.html delete mode 100644 datacollection.pdf delete mode 100644 dedication.pdf delete mode 100644 deployment.pdf create mode 100644 dl_primer.html create mode 100644 efficient_ai.html create mode 100644 embedded_ml.html create mode 100644 embedded_sys.html delete mode 100644 ethics.html delete mode 100644 ethics.pdf delete mode 100644 feature_engineering.pdf delete mode 100644 foreword.html delete mode 100644 foreword.pdf create mode 100644 frameworks.html create mode 100644 generative_ai.html create mode 100644 hw_acceleration.html delete mode 100644 index.pdf delete mode 100644 intro.pdf delete mode 100644 introduction.pdf delete mode 100644 mlops.pdf delete mode 100644 mlworkflow.pdf create mode 100644 ondevice_learning.html delete mode 100644 optimizations.pdf delete mode 100644 preprocessing.pdf delete mode 100644 primer.pdf delete mode 100644 references.pdf delete mode 100644 resources.html delete mode 100644 resources.pdf create mode 100644 responsible_ai.html delete mode 100644 summary.pdf create mode 100644 sustainable_ai.html delete mode 100644 taxonomy.html delete mode 100644 taxonomy.pdf delete mode 100644 tinyml.pdf delete mode 100644 toc.html delete mode 100644 toc.pdf delete mode 100644 tools.html delete mode 100644 tools.pdf delete mode 100644 training.pdf diff --git a/.nojekyll b/.nojekyll index 6833e4db..1f935d25 100644 --- a/.nojekyll +++ b/.nojekyll @@ -1 +1 @@ -16200ff2 \ No newline at end of file +8ab53747 \ No newline at end of file diff --git a/Embedded-AI--Principles,-Algorithms,-and-Applications.pdf b/Embedded-AI--Principles,-Algorithms,-and-Applications.pdf index 37d61c37a86e3d548c553bceb2e0d27267e1bd24..9adc46d6381efe454eb765b926cc8ea5cd846211 100644 GIT binary patch literal 51062 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 CU<0uL literal 43740 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 TvPR|M;^yN + Embedded AI: Principles, Algorithms, and Applications - 1  About Us + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ + +
+ + + +
+ +
+
+

Acknowledgements

+
+ + + +
+ + + + +
+ + +
+ +

coming soon.

+ + + +
+ + +
+ + + + + \ No newline at end of file diff --git a/conventions.md b/conventions.md new file mode 100644 index 00000000..9afe1507 --- /dev/null +++ b/conventions.md @@ -0,0 +1,40 @@ +# Conventions Used in this Book + +Please follow these conventions as you contribute to this online book: + +1. **Clear Structure and Organization**: + - **Chapter Outlines**: Begin each chapter with an outline that provides an overview of the topics covered. + - **Sequential Numbering**: Utilize sequential numbering for chapters, sections, and subsections to facilitate easy reference. + +2. **Accessible Language**: + - **Glossary**: Include a glossary that defines technical terms and jargon. + - **Consistent Terminology**: Maintain consistent use of terminology throughout the book to avoid confusion. + +3. **Learning Aids**: + - **Diagrams and Figures**: Employ diagrams, figures, and tables to visually convey complex concepts. + - **Sidebars**: Use sidebars for additional information, anecdotes, or to provide real-world context to the theoretical content. + +4. **Interactive Elements**: + - **Exercises and Projects**: Integrate exercises and projects at the end of each chapter to encourage active learning and practical application of concepts. + - **Case Studies**: Incorporate case studies to provide a deeper understanding of how principles are applied in real-world situations. + +5. **References and Further Reading**: + - **Bibliography**: Include a bibliography at the end of each chapter for readers who wish to delve deeper into specific topics. + - **Citations**: Maintain a consistent style for citations, adhering to recognized academic standards like APA, MLA, or Chicago. + +6. **Supporting Materials**: + - **Supplementary Online Resources**: Provide links to supplementary online resources, such as video lectures, webinars, or interactive modules. + - **Datasets and Code Repositories**: Share datasets and code repositories for hands-on practice, particularly for sections dealing with algorithms and applications. + +7. **Feedback and Community Engagement**: + - **Forums and Discussion Groups**: Establish forums or discussion groups where readers can interact, ask questions, and share knowledge. + - **Open Review Process**: Implement an open review process, inviting feedback from the community to continuously improve the content. + +8. **Inclusivity and Accessibility**: + - **Inclusive Language**: Utilize inclusive language that respects diversity and promotes equality. + - **Accessible Formats**: Ensure the textbook is available in accessible formats, including audio and Braille, to cater to readers with disabilities. + +9. **Index**: + - **Comprehensive Index**: Include a comprehensive index at the end of the book to help readers quickly locate specific information. + +Implementing these conventions can contribute to creating a textbook that is comprehensive, accessible, and conducive to effective learning. diff --git a/copyright.html b/copyright.html deleted file mode 100644 index 0abdb80f..00000000 --- a/copyright.html +++ /dev/null @@ -1,324 +0,0 @@ - - - - - - - - - -copyright - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - - - - -
- -
- - - - \ No newline at end of file diff --git a/copyright.pdf b/copyright.pdf deleted file mode 100644 index 789397ad5c07664d62f2b206407b25c9c863d419..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4540 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 fIHjNXJ2nAWCx2|9KN + + + + + + + + + +Embedded AI: Principles, Algorithms, and Applications - Credits + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +
+ + +
+ + + +
+ +
+
+

Credits

+
+ + + +
+ + + + +
+ + +
+ +

coming soon.

+ + + +
+ + +
+ + + + + \ No newline at end of file diff --git a/data_engineering.html b/data_engineering.html new file mode 100644 index 00000000..3f92c144 --- /dev/null +++ b/data_engineering.html @@ -0,0 +1,605 @@ + + + + + + + + + + +Embedded AI: Principles, Algorithms, and Applications - 8  Data Engineering + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +
+ + +
+ + + +
+ +
+
+

8  Data Engineering

+
+ + + +
+ + + + +
+ + +
+ +
+

8.1 Data Sources

+
+
+

8.2 Training Data

+
+
+

8.3 Training Data Splits

+
+
+

8.4 Data Labeling

+
+
+

8.5 Types of Data

+ + +
+ +
+ + +
+
+ +
+ + + + \ No newline at end of file diff --git a/datacollection.pdf b/datacollection.pdf deleted file mode 100644 index 3a299c63c06fa43dfcca5ec0e18d572c06277ca1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6346 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 + -dedication +Embedded AI: Principles, Algorithms, and Applications - 2  Dedication + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +
+ + +
+ + + +
+ +
+
+

4  Deep Learning

+
+ + + +
+ + + + +
+ + +
+ +
+

4.1 What are Neural Networks

+
+
+

4.2 What is Deep Learning Training

+
+
+

4.3 What is Deep Learning Inference

+ + +
+ +
+ + +
+
+ +
+ + + + \ No newline at end of file diff --git a/efficient_ai.html b/efficient_ai.html new file mode 100644 index 00000000..5d89ed59 --- /dev/null +++ b/efficient_ai.html @@ -0,0 +1,581 @@ + + + + + + + + + + +Embedded AI: Principles, Algorithms, and Applications - 12  Efficient AI + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +
+ + +
+ + + +
+ +
+
+

12  Efficient AI

+
+ + + +
+ + + + +
+ + +
+ +

coming soon.

+ + + +
+ + +
+ + + + + \ No newline at end of file diff --git a/embedded_ml.html b/embedded_ml.html new file mode 100644 index 00000000..747cd996 --- /dev/null +++ b/embedded_ml.html @@ -0,0 +1,615 @@ + + + + + + + + + + +Embedded AI: Principles, Algorithms, and Applications - 6  Embedded ML + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +
+ + +
+ + + +
+ +
+
+

6  Embedded ML

+
+ + + +
+ + + + +
+ + +
+ +
+

6.1 CloudML

+
+
+

6.2 EdgeML

+
+
+

6.3 TinyML

+
+

6.3.1 TinyML for IoT Systems

+
+
+

6.3.2 How does TinyML Work

+
+
+

6.3.3 Resources are Limited, but so is the Competition

+
+
+
+

6.4 Exercises

+ + +
+ +
+ + +
+
+ +
+ + + + \ No newline at end of file diff --git a/embedded_sys.html b/embedded_sys.html new file mode 100644 index 00000000..0c8ea48b --- /dev/null +++ b/embedded_sys.html @@ -0,0 +1,594 @@ + + + + + + + + + + +Embedded AI: Principles, Algorithms, and Applications - 5  Embedded Systems + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +
+ + +
+ + + +
+ +
+
+

5  Embedded Systems

+
+ + + +
+ + + + +
+ + +
+ +
+

5.1 Sensors

+
+
+

5.2 Power

+

coming soon.

+ + +
+ +
+ + +
+
+ +
+ + + + \ No newline at end of file diff --git a/ethics.html b/ethics.html deleted file mode 100644 index b4725100..00000000 --- a/ethics.html +++ /dev/null @@ -1,329 +0,0 @@ - - - - - - - - - -ethics - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - - -
-

Responsible AI

-

coming soon.

-
-
-

AI Safety

-

coming soon.

- - -
- -
- -
- - - - \ No newline at end of file diff --git a/ethics.pdf b/ethics.pdf deleted file mode 100644 index e22579e05cc0fcd6768376df99e220cb88793b9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6654 zcmbtYWl$X2l173}a0Vy1`!KkBAh;*^;O;VbaJS$PAh?C#!QFxfcLIaETd=+F)mH7j zb>F^yRr{~&)TyrXebwjdubWO)T9ysO&I6#^Iy=4t2vBlTI-1x3goQa|t?k^*T{vXz zAa3T;=BAEj<{XOV4wi0KlpsD{QBi=an~OQb9spemjc*6^h+~KNQzedA zyvHt;Kj2D!7hoUA3CAqXjr5BrYSOIhHfdiepZAieUR*JC-3HUM(WO}G-hvslf+=Lk zm67xstbU+as_`H|s*`*<`*i{XoG| z)lW{3pEe)XG0=hi>$pms?bO+(Ia#N9-OqiLAr|UiL_QL`G9~EO(1h~-LZ&8<1Q`Zp5GtHqkgb61n4^_aZIz}l z4jcK?PK+8Vf#yIRIr=z(2b%`x*Uqbca1@NP>VL<}#s8n+1%tqU#%nNTWE;$h4R_`# zCPOYHd#+OPjk2d4kL*ye*nGm;#Y0j_vL5T{Cfai<9Eti7W`KKo72WbxOAPcfVl&y* z*J3FDx}f6&{1JMZp%Jy zLH|Ne0QHJn4t3+nql*c9U9E4>HG;tBlB(sfMb3DC+TKc9oGo-da!f{kVgSXq>m}3r zf~#InB~z*-9VO4iB+=})V*XZ_ny@_qpf2w%)t{WES;)qWA&1XgJdGC>!$&JfWl&FJ zuVyW|1c6WG$W{Q|o=%E7*UjMrvtlYUE0$QGk0`QP0N4iJ3XY4?RBWr8X5!WlCH7EG$p=&0@ZPS2%HV%J0#{ z6s_KX7-FOy4L~W?qhq`Au1DAiQK~>72)66zOzM;wRKj-fSn)l>qo~n> z*^H7I5#im;Sl&LbHfNIi%Jkp_LOmZfS2Oqx->N=KQp*a5%J5+s>jojZVTPg2xkH6z z@_Tt;zq5vy3J;0v0Ol;5TEcDzS;0+6>H;bIPnTKa1ev7m1bc=NM9mAM&oZ<^v#>P1 zG;%SeeYIrz<^r?gl#m@NovY3_ zd%n}drhcpAE3ZzVm^NRa_J+HoENRKbE|x4y^y=T427~^m&NbXk+`OF3Ii%#JWgQ*d zH2;V>rT(473GfO0rTn#hobU$UbVyAN!Ot4Mo~%(`d4mRz``9Dy^sx{g0e-mmBbCQ% z-kwxC2+g9miHY4kor3O%ImCMm|B$zeaKuii#*`oPisT_&v*;ROnB5_TOxc{Y_P>QD zrW93(xHi`)d>$UgPHrD=mK{A)Y5PoqXov22Z28JCb_DjB6k_Q@Yes$AqH?3m&?m5k z6)slz{WBwSSqH#o`956d)5mxDQ6$=t7@x{sNt}EpvXw&Pl(?z=8SOe;JcuiI!%Rgd zUuNerT$M+4V(VJ zTJ(B)idEabe6mo91$Q8Q`kgFF#Y$j|ca*pTXd)m8gFofv zP-m=9z-QMLze(vtwW~cMeU~&{rPUDAa~kti-gJ>s$GRjM7EG4M(#gePW40G* zm*Sp}M_2m84&uu!@4x!}mWF+mb||U6qO>uko_Q|Vb0hTuNaOAm#7(5`=?2|M{07W= zV85}bL5c!G3GtB(9!e@1q!MX4w)tp0f8Y{M-16t2ZP5$BX&B>_O1D8&;aAmvbPcVo zR5oJ_q{LJX?7J`?B9OKzA|IJJ^a=!@2G9d0)E z8s%6XPr=qv5EaGTxmLV``pa{HWkWxT*keCGk}s^|aNtcC5i*O#1kEb1!QtD*;GYIz z0fSL_VPE-N8@1*+t95=m8w_F=M@(r8L@kuW7cT9T`|ohiE`}?6Ev~qxsiI(bzgi>= zB_Z#}O^)feneOIAK|G#Ho$FY0y~0br!6cms53ylNlfYLJ1^}=kI#3dQ2^_<;kr?N& zHs^_&DJJxUQ5ZHy-$omc57|DO@-61@S~Q0RjFW{EV!Mw3E`EUb`^ zQhxj#jiwOx`ARBYhr(=206rK)>*uNQBKf0WtDMa=Rpkx;0pz?<-D|Z@>sI3;Wn$(P zRf>pQgS0AbzKoU~X2J}W+wTbq&)K6BlP!JwpSw5Hm5eJ?$ytPZp&u=WEzIdp1 zi;-w?TYk+?lf7jkzd=*HJfcLjhT*423Iy(BEKoyXyC9*!fK<`lE4v(Fksn4{WKj6Z zvTrjrtwqQ$Ct!pNhQKGkf*&C2KOPK3^p)6p`FC>{Zo?M~*WjCO zzb!TRc7BU?k7{O0*GW#pkA&^nfxDYXy$TS_Q7`OJMdS)yV6>WGINH_NYG;1<3p~P@ zAIlD;tq-{~wx?alRLK{<8@Y|yHu^)A`S07X>rU3oi}zu+Ma`B~`Me}<6Cy|2KuTd^ z1=j66KdqQ%y!%_0JY^CG(K(;6=kDmi-MVv{tXK9O*vjKhutv@|-EQfqUxmHQbaN3p zF)V3w8^r|Cl9CgmJ@bT-=hZF(;wPbJUgwzD@>F=asp-p^YFJMwHBero!XHbm z#42WI!0H|#0M^o2iA#%z@agnP?Y%X^jCfFl7>XV~<@lqG1qZnGt;u!OaeHxFK$eRL3pXgA2C!|en54+7%2EW*9a6=@$Gfa~+n!gS?NN@7if$)# zelby$A35JFZ1&8q^2TzRci8R*6%9`8aItAQ%!tnm8Q`;jH_7QUh+bhYIyTbn%&J*! zfr(1@9=Y_jRvs71k#I%mfZ8(f|(-r5DrxJJ(?)p-U&Fdx*cfu znThmihLft{y>VEX-!dna+Mw#JHC4zeh_q&Byh)w(dLMbl(s{V(zA&1@D5~W-hI5;E zsjk%FVhb^VJQvU9RmS|^78u`aTvN5I(vJ+?7`Jjg?rw5XCBpC zRQjn#o#K6BQINX;A&hHxm>+Aqt$MTd_$B6H<^6n)LYkV7Qt8)jo%ua8Nbj^)18-Wd zR(5@zjmnyZcS#Z3p0S^DEpVG+=rz?J`Q#oeODC&h z;@kP?&+F~N&a5ccB19;c@G3=o4H@?0@7jQ1!_W4~?IC7(`I{0v8yA7%U5D2^UWlSq ziZ@L~G7%vQySGFB*J7!tr&j;M7W_wcpX)FF%huR90oz#BOwQ`uSkcKC0S-?YA>&`9 z=J|g(4sHSdKRb?CEgwY<9iq-OQTBJo$qL!~vp!W8m!P-slk2AOsKeq&C_su4YG70S zp?h%Y}YE*M4XsTpx)s<+h`0gBjWqG1_=1rDaJ?Ce>xcT%_ERf>zv-UhXEbnGJ* zwWptbcem0`eLGJdU6e(EIMFyj8L4@?qFN*pQ%y4{b3p?McQG8v#Ke{*Jn>Kxs!E>l zo4yHxbJxBe{fts0dVd@i^zmd(F+$op>{pe(H0ydL64Jbbok=8Sjz}MSYa0{SDPPG* zCY1d^HzRPNxJOLMukDP~-l_heXo6{4zx5%Cu#B39aIhw{zgW0(T#_RyCdQv{J#Dgv z**lhAZ-OA>+N*vbU8+iLQl42bgYBZg>&kad&JrXTOOSMI1Kw zfi-l5hMHBoGK$BV#^njLgW78(u@lkNe0Fy|ba3V#>0FUCtzE&o%;v^!o9{{#O+R6* z{iLv@BhF>Z{F4Z~lTBKivgU^_EteFxE%1i0B26(>fn@C+z>LZvs zWRooh^yeMt)gIv^nGaXKjcPk)Q!@DF4}~E@bVEL(YJ^sYUqU!FJ){=l)yJ1ZS+Nw` zp~J2Vh=GGUXrYs02rsC3&in)C{g1vfNtHq+j0MyRQZNKh#RBIKXj;CHD8vrM_M}?h z>-ddIxVgDHs9pRbMZtQ+x2hQ1P8Uh8V%Nzz%Ug8qr0U{akl|N6+sXc?yhe>K9B14O z2}hCeKH&4iy}hxHH-7Y3?rn{YH>iP~LxFDP|{b^e(z1Rj?tnBA$LfDJG970OV3d%jNP&J8{!Do zUB(FtQ_~v9{K^~PnMYHZ@S=9giI;JJh+b=4BXn8rzK)aw&-Fx=h#Qd6g`O3e>*cYQ z>sx^4Ccu~;77L%7muAO2<|t2P!Zin`n}O~Rhp|Z?m1M}XUITjra4b+3Ix9GC>nQyC z*_|b73}C&u{7z9phn$b2NvEA{-bGX*DZqC|q}RVdxB_Aq6YA&69S`nW9p!dc0orr- zy4phX18-Z@PVE=m_4*DW9SC7#S=hy>(`z`YkjyX8T5RPY4RW!M{LS@-c}V+n=q}Mb zy-gWEM)?Kx{b?%>d$X~Z{tzLq>ol&Qk?9~d_DBZ7Pg8lOY$QFDII}*^` z>?B{!(nKk{R!my)lEzlYEP zJQMdF(S57k+arvROHpH|Wl3@pY+DNan3`EB!u0*7+ktUhDGX+=Pk!(paQATZOJ~Oh zc_d7GMH`bpvufAX%8L`gvV=)s-<;?8vw7T=OAc!l=Xlqbc2{;?nr&{6QnX%;E~~x5<`%Y;Nj4N;J5#t7xbt3_a6f3eB8Rc@Rx zoZ^VW11%{`VUveIq#2C zlfAtG6zr2lck_6>L3zg1QKQ74nKEQHIp8j2k=?8ISt%20z5D?Bbb>nMuHW60>ti=M z>I$GJ;Ez-9uG>V3XAs?~7n=QEHk?27%|$4(4g|m|e@zWs#dvwRz~5d@iXyTC9ty`B z)^Zp5Fg{_Pc*v~PBzK}zqw9-r@!YU@ zpFe}j8s+%2{&+&L%jK~!t(zeQorV9bxVr9aEtRl{&qo(IJhbV%%;DK-{_j_uO{oh9 z?TvGK+T%3ix>z{!U$b-W6jUr5+TBI&)~$19m4sB=;+^Xv5q}s8H5eYO@NTy#+XWXN zH4)yXgzl&KRXZYA=J(g21!KI+u^q{swtz+c4tA?U8-7SAQZlliBILbLw#)1f-!|Ao znE8_V(J{0ByR+V0mM^^@X3CLk>7!_)EY_@9Zw6+wY*7PQIeQDQ@_c0FThD!a?V^z^ zp$q#yP(>-^Y8krHIx=iR(CESaK*}nC$eFPoqf!c$+Rt*PShO~ewuXhE9F5oU9-Mfq z7tcMcEKIv+St5N~yKc?OSGJS#W2_h%r;j%1h=cKtkEGaYI7rfP`ZY&|08%Ux^Ycs= zG#NwU>X$huQ{vFETF2Z>L|>=mCvvoEe36ur0j8^(J}ZpV$Z9c`#SmRe(Q-*<$>Y3Z zqQQ52Rk^Ve9|Q2C60G1n`Ktbo?ANW3|9Uv}M`9afa8`aRf>A&szZx>GcV6_yWib9uj0hG($CSJ^JWo@$QLr8QT7{bZGys^f8#Jy%v)XTl?> z4Bv=ehih2Q+{lL+12ovQGi9W8*M=83$#%}jHo!g6IGqxC8{gg%d8M|N#T!|-rEx5) za4P}{ydsF$H)=B`xh`8mba_F>5o&)m%N@F$fQH4hygIgxPDl1PZ8>>B7G zlWy81MNhKbi@Zt|I+l@N?H^xOgT)OrH@)58*`2oR4Bqg^R9n8>ZMtM_3__jbqsO(; zqwY(!6$9=uFoPFqeJ{ozO5}!tGG{qIf14G7R?-|W_c|Imh9_i@t)s6x3A#NZe4j2L zzi&hk1UMXF2#Ii*hr-_i5EZwuI456F=mi%dafyXxBKK5b&&3;omUp@JZ|J-k#AjIG z7BkuzDAgv!P5j|$Tfe?At3DEnqlGbcAWAzSIsaYZz<=6g|5M@KtD9SJ$V=-9^OcrzM@fLAtbu5syhRc6+d)xrSU)uC^`LJ;X_OY?$}b@>;5nG1-R zp299(Hn%LITAKZ&F~+O5p}q=YQ=b99|IU@G8^py8>SAsI;01%h06IDu6)!i*_xF46{dd+`XYGCVcdhf;=ev3IRa8a9MI`||*rWXm0F)ib?rG-= zkdqTrb#X^Kc#EmJBhU^i4)&f%2Qh624=1!UyEp`>paAeedpjUd0RQDk-F5)JIMv=& z+*NpgFn6vj#E?XAk#whj^I&SU_r`P8mP!x8&BVK8;YgIP81{sOX60e_{c~C7gHVi_ zZ6LcX?lo)CYS?fzV-L^qJwW;o5PO_s(P)DD-Qx48r7+*jyb99{s%JV5;LY<*>2I4( zQk!njo-ScG5~`o~1Ao>ir3bl-EC$(6Ff!QaM(CK-xIS4WM@?WCuT-nm>XWy)*V5A{ zIT~k&-RQR_$ms6tTLK(BkpF%C-&cRs3ljgo6b^z&|Fv-Il%BX=AXU_1a2&Kv_(N$W zT@mekTYcnQ+#GSt$gIdBcj?*Mif5X@eW~Pb>6-_ANM6xV)TGK;J~60xH#RIF+R08 zs6lb{J-&LX?~asQs?Dh;fYQN05DL3MNqTxkm_@`U$@1 zJxGC^BG2`PUuoOhUs)Drc^&WP4Bl$^sO`YudU~YONzNm5DumOyMCtu-hktD z{f#K^mDzT95TwAP`}>cRk>ytSJHiKQ3-!kSkJ6_HU;Vne{pDTE&wr2@{HMf5zIJGg zmxGwHhKj1E2io}eHBk9Ky=n=l_+OPbF%Hx=a-w~gm1&bY=9T{eXF)tSB4A;if@qTcSHG6Y6TO9v{oH#OsJDjSN@OG_UfbF|(m6EtXh z{bteFLu8&S!yxfP2ES44eC{Zw^1cX=$pEj~hzUGgssu%g3O0VA7y4kSUFNt8;~Aaa zsjgT>3aI{CfU!7dWSEv1mgF?C=O(GTNjYp4&heIzJ8YA=lw_!ql9E`sFz>iaowCHn zHW^lbKu+_z`m?zebL=5??p$TPk#P&wg$=fuxa>B}q&ERrK4c54>#P_DJTrmDj*t?r zXW?rN8ouFK^cJQY>pu~fZ&D8XQk2FoEco;@X`Sny*{|RZzG8*1No%NZcsHqZ4=L#i zin6z0;YcZ)bWDlEHn9)1&B-1a@3)1Ta06EJj6Io?-K%R4X8FjL=Ii0v`RL&6C|*Vu zU2_TlF>qc?o}M)I7^UkGvb-R4SkSQ)B(Iopci{RrqLGkk#nUdEI3u|VdbNZV$uY?i`yQv>mElD>eUY4(gmq3UgYk2F+dp17tczS^v zp9uOX&mY*ef}h1#VUF^iJ>@D^R$Fxv&|S;YkoIy-nFW5^>A>h+`>YH~%gaH~89hJL z-e5Z3PH#yd?~>{jyf`xZ5>!O}`r6Em4oeux~apdhmDKql}cUk6Lzr)9u z>O1?X-E=RtLWt&shM)zaO zmm;6xa{CB(5k9*(GHM^LsXkUtM4WoujkjZYW@`7R8qgCsG$uTzi{una&`?_P<~ds* z17Z-2=xt#@^bV?N=3t$~Mku1Jy&s}cjY+TB6F$XpN|!yE)G!nTpWGG5MFQmkmUbx{t9BlddDAL+=65~?^0j;15YlvILjcXi1&Um<`5`Ayj z-@r`~48<TOMM;h$IcU3~DvP@^H>?y-Ed>`{&@c;QP(yztr4>YLDB7 zcB%DlC=+3IjsJjhsXtNv@4sRo&|i`5W^21FCJZeBmnBRb|-@8kKt z^E=jW@^CfHhcb?YfF!QC?zu&)cI$`abjAWLx2k|L0r!vZMV-uUQTNc0XcY?&*qfa! znc#ag#yk+E5ia#+$RgVf-HH&RBB%})sA{*nA8#5d)eD^#`r^~RZNi-zU8oMOC$NaB zQVfAzD{|>if0jF}V4~|()?pF0)Y>4z*nJ%Y51PAtaMcuTgs z1~lku36Q(GmcJNHHCobsIQ+V79z>-1FiY@^ht>!tu#G?J`clVH)84L1^;8C0#y^+y z3NTn&0;`OjpV5@4epy8%i7FN@1D|<>dH)q5D00p!)xfu~z`T3pwTD@Y?H zUV4|^CmjjE>TuI7MIt$%>Y|2W6&FS6k=%e-0H0nMZPAi*Sk_qkz@s7QlaEg)y!6Mr zoWA$p}eLcb9sv~WdLzAnZh8CuRGtDzS06V{o znhNvGb91}_;J1;v!|2LddV-kleAeW|+_CQUw-q^CKdFE0DBa$XJ33-NV5DVZjfek@@}1nA~9yz`8G81U>T z8CBkI!51r;lRP0LnM8H>e0A)($A-8UprfL*_62!W!3Efk#SqzHb{r$NHL|boj9j@C z`TS{K+PP)GXk!tx#7_zwr7zL1h>M+0r=Z&DI`FnidkFB-}?K zngYC=W`#L9EBEtg-q@nCIwLcb$Nx{dT>QwDl4jlJMi`{ zktkW6kPy?hm;5~DE-nZr`l1I+0jDXNQEQ2I>VYUIkg@hn3L@|4J>OCuNPj!IiUMX& z5Ggme*4DPSi{aoT?F$+^~Pew*>G{eE<8#ApSQ@yV>5t$0Ncc zOo<>OyamX^oBP+W;(u|#e|QBkJv&z;G)hdD9R&K_HF*1=*~P)o|KuNlpuah{MiZ3h ziWJp#*P|ZKMrlY8wT6bWZFkbvytNVW3DLjE-q$WjpqDCex0-Ji@1Qtf+Gw^QBYKd3B;Fm)2TyAa zcH(_0P&t@g<2ow-eLBgqg_RBDaW^)=&G6Vq$3qGoQ|Ek@gO-g z&;E3lZ9++tZ)H*=RSs|X2;!Brx9nLH^>RB!5>E|B3lR%{!WL}Bz?_9Tllt~3*0zO46t6^d;YxpOs}d-iEgu|K2`Xe#vj zo*tzJqb;;}D_myG%5;UsLa{Qv0*A2&!6Q=u_khyo)L^_Mq#Ktgo4$hw&n+&NJ;C8Aer;Yl- znMIHE3U{Z;`*AF2Bl7I#Lv52!6q*g~CvAeOBIo*tZb^GD6jM@TW9pzVVnV~=^cr?E z69u=?Wh&JyUsD*UaV;+VJ8{LK(Xf|&pwDR1qyFm?9m+%H%#H*$%`6jC;V$I_1D>S5 z_s>YD2fW)XAPFeG0!A&=#T%|jv)#~uSH<~kS7iR}{cmTZA+CZ`Qb%q-EeXVou)j`z zU2QQDc)R#n+)lZ5@7#C(iV{qEqndW{Zc1gSwq9j$(t^f6vzyWaHsT}Nn`Ke_i0Aj| zgObg|Lne*lEpF09zhtcB;b*P%Z8jC^X#Q&ga{Sove?^SM|3r+rp@XBCh6-Fx8YBUh zbcBL{5@1IV&<+WaK!U(fpd%0pmPAS;r4;`66V_seo}OsHA1MsQG&~$V+5Z?f8HyRX z1URrufW*w;;=k{Jtp5YS{yzWU85^Pw15zm)j1V+%=Nj{XRaj_Y612CR&rdelxNjY@ zOd+T`oe2ko>lgcB+=_&br-CXXng+4##lY#9q=Xxhy^vh - - - - - - - - -foreword - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - - -
-

Foreword

- - -
- -
- -
- - - - \ No newline at end of file diff --git a/foreword.pdf b/foreword.pdf deleted file mode 100644 index e3f6c70bebc5210ab0bae79ab299b7ee0105873a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4086 zcmb7HXHXN`x(!kdMUbjgkqAg2AwWV60-*%y0g+xp=$+7&9;5|<1EPR{(z}$XfHdi# z6j5mcB1f7ay$ONqnRzqE`_8%N-S_XCJ$t^gX6?212Qoluh)YVy071WRt{(#B1fT+5 z_O3uhMTmxrJ09l?(QvoJ<4`!Pmje!>gY$I4I}1p{uX`-+FM|7=uV2=fKq#o- zcz3Y%k>hxO^;rRDLLIka{Zy%C&*4?hlmg(f#dKkf6KSuU0o6~pd`S37hy(Fw}ecc?yCiMKuP7_zm zZvS4Y_(F_Yl{sTDA4Qk4+k#IWy*rZ;;&AZ}r`YIzdGy;VhuKa?ET3$CRs>3Yei~#a z^8}O}OW$DW&-K-TbZ*;~B&Z5H>vk!1HQySn8q}+h$!2a6sDlPRZ zFRTnYTsxr*EyrT`HLh-SPXI77wfc?wjKcJlh9}Gb5c;u;n8qwEim& zT0339shXY)S3cqvtDfgI!pOWWc#wWXgHWYibGgXr6%u_0(xjSgZHvFZxV3{1C};?N zuDk%X0j*CDN`_Mq$;7*6imJ6AzKnn|?S>PxDrPW1>%bc}=g66g0A3_&En7ORmU3;X z39Tg+8s5#~5s_qK;+i@45u>;8dy#5dz>QmuZpH?Dyw#nh{fuXt* z#ae{o>eKmV8yVKBu`!dhnwL?vLCQIS$a14oisv)FYkz~A^q;t4{O$3<-Z+RF8l~ao zi8uZkL)HH2l|iA1U*R;t+|^-q;%Zx%QcxahGL&GcnQgIv7srzUys%M_eODi|@jx-n zh-wYL+t}3>F#@AF2y9%gPuFBUaGqH;!%w3mvhWmSI78>$r<~eUrz`5pHNjn!KL`xW#Wr0cJSEFHpKSQg zT0R~}U@AG2WeE{$85Te=eENH|J@)3vxBb5ScE@Rw6xN0U#9^@LycuuTzeJrJ!J2N? zZb)Cs+%BjfIMjt0(%c&QYB18rH%#`p%!{r|Jgp&37nC|=w&fx}|^h{{) zD1&xUs>n5#_W9N83L@;3Fp&c|9R(WTC@RjLsqt=y> z+0FuJMzuo5ZvApn)LMxfyD_8wP7h)DT^VHT)wh{tDunv%8vjX*W-;}mc##tG;w;ku zr=WZ8ws)9yFqQu}G6BxGLqpQ%cFm0}Zd~)}!>fEjXmP!$xX9xmfN6{i@b2Mj2(>{@ z#V0&Sv^#xU6Iy-Ne&K=;YgtwQ1gRS7`Kn%Qb|}Ew;Hk$+KQ@CG`SEu0Zfenny&?}t zQ)9tqGfoTEgY83KCfCOg?i@@utMwiTH_UHpv%cD)Ydxhs1+=0{>&3DkwUX3L5vkv` zvJ-9YYBkad{`Se#?OVI&gf`JeTTeH4W8A@+Q1VX5Jz+&yBi+KhZRL5MH1(E`E|OoG zWtEvh@>yvR%eqQ;4M%?FXm0n#hZlA>hC2kA9vQtscGEBypZEr2Uv})N%xE z6(kn%Tn9BxvpNZ#{8ShxdAjAA+#0Z14jV{L9lNWBp*-np;f6LJ>nXMt9ds>~+CFo9 z9GYKp1V6s|=)1n|?oR9*CFO!Td~QJcZM(%AX9G-(75JynfIE+MCILBPH-ZrQ|Ke;CI_noR=(@E4;kBWQq1!?zcr%azF0U!Jo{+c~OG|2Ru(a7^qpLblxjb#Xrv>};y5s!y(R%YS&ia?l|4$$)%h zc?ZbxHHU|&2IXza)m=VWILY1F{Ef?WCa&~_G`IYlcUNo^FB{jE0h7y&=z|hpuQzA= z-^N|LSNB|3H(M1>Z;Jtn4^1Qdg@nkcGWF=VsQ7%ko_9Tmdr8YpYCf_j?>iRuGfQ8F1(f#E z&yYKlg80MdLlj#K%>wocS;9{{?(RwWok-8FAw>%PuP*ZQG#326+_%o>@N)(;Gf>$wAR%PH1( z6|qT6y7*TxY)o8)d z1b`WvkbL49IXNxk+iA!jJ0XJenl5F|Sp-4wdd6*Ml zmCIn|xuEm52{$D^=&X23&1*baTwWh)oJ=(IM=z~P>c4;6yP`6G5LA)n4IS@y#(kM$ zU}3)Fl%m+he)%M%CpIp&Wpde^T=Wg!H^ofLj>HyuM0~WESRGY9JxREcb3QXD&Zto= zVOfF2OT9Y0=j-_u?pWnG=wYL)4pwYZ5bO1^QS|+hh6fy=dQQu7l&UbXA`s7kl~*CN zlS{|5hVJi>xOz#~iQ-4~OX}8$9^Z~0ze{avP9aVv3RT=6maQI(BmvD=LTp6wnPs!W z_o7W)HYZ|KF60qgO+7HaX_}6uGDlx|~43My!>?c*b?%coXD%-_-0<-EHlXgjx7%h*QF=t{e-Asp@)H z^7<1xUa(S#xIz6y7hwpz6T{h*rY;d9(WxFYVVydxI!+Ktd9tt-C&?0`is}>1yGN(Z zrljWCOsoz#DE4p8nXYFCJnkW`7G~NAj}OjC)ZFr!v`xlX72fhEc_mFr3=%yn^1c$w z4x-WJ8y`}v$IHrhVBBC#rN8IC+MS|uAc>>{5X#ykg7sEkz22S-wj0Zyn?IoladH}< zCmn0q?5-4|D~0(B*9ig2_L2EwNh|b2Jn;f1oY#l>T0huL>6ul3e@9K&_)|e1= z=%UQg%>vtF>q?l#jd;20yR$qQ5Vl13Nf8fp{;jL>rq>0Dr{kKU%dF=JCFWVB&7bgNZdBU zIYQ7V3q?5xSp>}94q@jg4V9L`Vc}Aa2q_0BLQYZ+CoAV5hy1^9SV4@uyzsz3N*F=V zo{nAue{4fW5R6L*PCyC=TgCk^_y#RxQrW{-ffsf`xC5l^2y7Y2<$Jm6BH z2-EgEUCe!<1t|QT85(CDq*5D)Ub6>j+@St3UCvA@MTzD(qlC>_;vjRM>|Q+T#<5Q- r-r}|}C+<4^{C^%&WN6bd{1qBMyqzyT$QS1bltReDfFO{%z6S7LIA~Qu diff --git a/frameworks.html b/frameworks.html new file mode 100644 index 00000000..e69f5ad3 --- /dev/null +++ b/frameworks.html @@ -0,0 +1,581 @@ + + + + + + + + + + +Embedded AI: Principles, Algorithms, and Applications - 10  ML Frameworks + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +
+ + +
+ + + +
+ +
+
+

10  ML Frameworks

+
+ + + +
+ + + + +
+ + +
+ +

coming soon.

+ + + +
+ + +
+ + + + + \ No newline at end of file diff --git a/generative_ai.html b/generative_ai.html new file mode 100644 index 00000000..db4859d7 --- /dev/null +++ b/generative_ai.html @@ -0,0 +1,581 @@ + + + + + + + + + + +Embedded AI: Principles, Algorithms, and Applications - 20  Generative AI + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +
+ + +
+ + + +
+ +
+
+

20  Generative AI

+
+ + + +
+ + + + +
+ + +
+ +

coming soon.

+ + + +
+ + +
+ + + + + \ No newline at end of file diff --git a/hw_acceleration.html b/hw_acceleration.html new file mode 100644 index 00000000..4a59b26a --- /dev/null +++ b/hw_acceleration.html @@ -0,0 +1,581 @@ + + + + + + + + + + +Embedded AI: Principles, Algorithms, and Applications - 16  Hardware Acceleration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +
+ + +
+ + + +
+ +
+
+

16  Hardware Acceleration

+
+ + + +
+ + + + +
+ + +
+ +

coming soon.

+ + + +
+ + +
+ + + + + \ No newline at end of file diff --git a/index.html b/index.html index 2991368c..d4606d39 100644 --- a/index.html +++ b/index.html @@ -6,8 +6,7 @@ - - + Embedded AI: Principles, Algorithms, and Applications + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +
+ + +
+ + + +
+ +
+
+

15  On-Device Learning

+
+ + + +
+ + + + +
+ + +
+ +
+

15.1 Federated Learning

+
+
+

15.2 On-Device Training

+

coming soon.

+ + +
+ +
+ + +
+
+ +
+ + + + \ No newline at end of file diff --git a/optimizations.html b/optimizations.html index 60b10528..4ec21d53 100644 --- a/optimizations.html +++ b/optimizations.html @@ -6,8 +6,9 @@ + -Embedded AI: Principles, Algorithms, and Applications - 10  Optimizations +Embedded AI: Principles, Algorithms, and Applications - 13  Optimizations - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - - -
-

Resources

- - -
- -
- -
- - - - \ No newline at end of file diff --git a/resources.pdf b/resources.pdf deleted file mode 100644 index 157d6dcbe6397919487af5347a77ba2edf362bc5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4214 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 + + + + + + + + + +Embedded AI: Principles, Algorithms, and Applications - 19  Responsible AI + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +
+ + +
+ + + +
+ +
+
+

19  Responsible AI

+
+ + + +
+ + + + +
+ + +
+ +

coming soon.

+ + + +
+ + +
+ + + + + \ No newline at end of file diff --git a/search.json b/search.json index da93a19f..e5d349e6 100644 --- a/search.json +++ b/search.json @@ -4,7 +4,14 @@ "href": "index.html", "title": "Embedded AI: Principles, Algorithms, and Applications", "section": "", - "text": "Preface\nThis is a Quarto book.\nTo learn more about Quarto books visit https://quarto.org/docs/books.\n\n\nThe Philosophy Behind the Book\n\n\nPrerequisites\n\n\nConventions Used in This Book\n\n\nHow to Contact Us\n\n\nContributors" + "text": "Preface\nIn “Embedded AI: Principles, Algorithms, and Applications”, we will embark on a critical exploration of the rapidly evolving field of artificial intelligence in the context of embedded systems, originally nurtured from the foundational course, tinyML from CS249r.\nThe goal of this book is to bring about a collaborative endeavor with insights and contributions from students, practitioners and the wider community, blossoming into a comprehensive guide that delves into the principles governing embedded AI and its myriad applications.\nAs a living document, this open-source textbook aims to bridge gaps and foster innovation by being globally accessible and continually updated, addressing the pressing need for a centralized resource in this dynamic field. With a rich tapestry of knowledge woven from various expert perspectives, readers can anticipate a guided journey that unveils the intricate dance between cutting-edge algorithms and the principles that ground them, paving the way for the next wave of technological transformation.\n\n\nThe Philosophy Behind the Book\nWe live in a world where technology perpetually reshapes itself, fostering an ecosystem of open collaboration and knowledge sharing stands as the cornerstone of innovation. This philosophy fuels the creation of “Embedded AI: Principles, Algorithms, and Applications.” This is a venture that transcends conventional textbook paradigms to foster a living repository of knowledge. Anchoring its content on principles, algorithms, and applications, the book aims to cultivate a deep-rooted understanding that empowers individuals to navigate the fluid landscape of embedded AI with agility and foresight. By embracing an open approach, we not only democratize learning but also pave avenues for fresh perspectives and iterative enhancements, thus fostering a community where knowledge is not confined but is nurtured to grow, adapt, and illuminate the path of progress in embedded AI technologies globally.\n\n\nPrerequisites\nVenturing into “Embedded AI: Principles, Algorithms, and Applications” does not mandate you to be a maestro in machine learning from the outset. At its core, this resource seeks to nurture learners who bear a fundamental understanding of systems and harbor a curiosity to explore the confluence of disparate, yet interconnected domains: embedded hardware, artificial intelligence, and software. This confluence forms a vibrant nexus where innovations and new knowledge streams emerge, making a basic grounding in system operations a pivotal tool in navigating this dynamic space.\nMoreover, the goal of this book is to delve into the synergies created at the intersection of these fields, fostering a learning environment where the boundaries of traditional disciplines blur to give way to a holistic, integrative approach to modern technological innovations. Your interest in unraveling embedded AI technologies and low-level software mechanics would be guiding you through a rich learning experience.\n\n\nConventions Used in This Book\nPlease follow the conventions listed in Conventions\n\n\nHow to Contact Us\nPlease contact vj@eecs.harvard.edu\n\n\nHow to Contribute\nPlease see instructions at here.\n\n\nContributors\nPlease see Credits." + }, + { + "objectID": "credits.html", + "href": "credits.html", + "title": "Credits", + "section": "", + "text": "coming soon." }, { "objectID": "about.html#whos-this-book-for", @@ -44,281 +51,351 @@ { "objectID": "introduction.html#ai-for-beginners", "href": "introduction.html#ai-for-beginners", - "title": "2  Introduction", - "section": "2.1 AI for Beginners", - "text": "2.1 AI for Beginners" + "title": "3  Introduction", + "section": "3.1 AI for Beginners", + "text": "3.1 AI for Beginners" }, { "objectID": "introduction.html#machine-learning-and-deep-learning", "href": "introduction.html#machine-learning-and-deep-learning", - "title": "2  Introduction", - "section": "2.2 Machine Learning and Deep Learning", - "text": "2.2 Machine Learning and Deep Learning" + "title": "3  Introduction", + "section": "3.2 Machine Learning and Deep Learning", + "text": "3.2 Machine Learning and Deep Learning" }, { "objectID": "introduction.html#machine-learning", "href": "introduction.html#machine-learning", - "title": "2  Introduction", - "section": "2.3 Machine Learning", - "text": "2.3 Machine Learning" + "title": "3  Introduction", + "section": "3.3 Machine Learning", + "text": "3.3 Machine Learning" }, { "objectID": "introduction.html#deep-learning", "href": "introduction.html#deep-learning", - "title": "2  Introduction", - "section": "2.4 Deep Learning", - "text": "2.4 Deep Learning" + "title": "3  Introduction", + "section": "3.4 Deep Learning", + "text": "3.4 Deep Learning" }, { "objectID": "introduction.html#applications-of-deep-learning", "href": "introduction.html#applications-of-deep-learning", - "title": "2  Introduction", - "section": "2.5 Applications of Deep Learning", - "text": "2.5 Applications of Deep Learning" + "title": "3  Introduction", + "section": "3.5 Applications of Deep Learning", + "text": "3.5 Applications of Deep Learning" }, { "objectID": "introduction.html#quiz", "href": "introduction.html#quiz", - "title": "2  Introduction", - "section": "2.6 Quiz", - "text": "2.6 Quiz" + "title": "3  Introduction", + "section": "3.6 Quiz", + "text": "3.6 Quiz" }, { - "objectID": "tinyml.html#cloudml", - "href": "tinyml.html#cloudml", - "title": "3  Embedded ML", - "section": "3.1 CloudML", - "text": "3.1 CloudML" + "objectID": "dl_primer.html#what-are-neural-networks", + "href": "dl_primer.html#what-are-neural-networks", + "title": "4  Deep Learning", + "section": "4.1 What are Neural Networks", + "text": "4.1 What are Neural Networks" }, { - "objectID": "tinyml.html#edgeml", - "href": "tinyml.html#edgeml", - "title": "3  Embedded ML", - "section": "3.2 EdgeML", - "text": "3.2 EdgeML" + "objectID": "dl_primer.html#what-is-deep-learning-training", + "href": "dl_primer.html#what-is-deep-learning-training", + "title": "4  Deep Learning", + "section": "4.2 What is Deep Learning Training", + "text": "4.2 What is Deep Learning Training" }, { - "objectID": "tinyml.html#tinyml", - "href": "tinyml.html#tinyml", - "title": "3  Embedded ML", - "section": "3.3 TinyML", - "text": "3.3 TinyML\n\n3.3.1 TinyML for IoT Systems\n\n\n3.3.2 How does TinyML Work\n\n\n3.3.3 Resources are Limited, but so is the Competition" + "objectID": "dl_primer.html#what-is-deep-learning-inference", + "href": "dl_primer.html#what-is-deep-learning-inference", + "title": "4  Deep Learning", + "section": "4.3 What is Deep Learning Inference", + "text": "4.3 What is Deep Learning Inference" }, { - "objectID": "tinyml.html#exercises", - "href": "tinyml.html#exercises", - "title": "3  Embedded ML", - "section": "3.4 Exercises", - "text": "3.4 Exercises" + "objectID": "embedded_sys.html#sensors", + "href": "embedded_sys.html#sensors", + "title": "5  Embedded Systems", + "section": "5.1 Sensors", + "text": "5.1 Sensors" }, { - "objectID": "primer.html#what-are-neural-networks", - "href": "primer.html#what-are-neural-networks", - "title": "4  Deep Learning Primer", - "section": "4.1 What are Neural Networks", - "text": "4.1 What are Neural Networks" + "objectID": "embedded_sys.html#power", + "href": "embedded_sys.html#power", + "title": "5  Embedded Systems", + "section": "5.2 Power", + "text": "5.2 Power\ncoming soon." }, { - "objectID": "primer.html#what-is-deep-learning-training", - "href": "primer.html#what-is-deep-learning-training", - "title": "4  Deep Learning Primer", - "section": "4.2 What is Deep Learning Training", - "text": "4.2 What is Deep Learning Training" + "objectID": "embedded_ml.html#cloudml", + "href": "embedded_ml.html#cloudml", + "title": "6  Embedded ML", + "section": "6.1 CloudML", + "text": "6.1 CloudML" }, { - "objectID": "primer.html#what-is-deep-learning-inference", - "href": "primer.html#what-is-deep-learning-inference", - "title": "4  Deep Learning Primer", - "section": "4.3 What is Deep Learning Inference", - "text": "4.3 What is Deep Learning Inference" + "objectID": "embedded_ml.html#edgeml", + "href": "embedded_ml.html#edgeml", + "title": "6  Embedded ML", + "section": "6.2 EdgeML", + "text": "6.2 EdgeML" + }, + { + "objectID": "embedded_ml.html#tinyml", + "href": "embedded_ml.html#tinyml", + "title": "6  Embedded ML", + "section": "6.3 TinyML", + "text": "6.3 TinyML\n\n6.3.1 TinyML for IoT Systems\n\n\n6.3.2 How does TinyML Work\n\n\n6.3.3 Resources are Limited, but so is the Competition" + }, + { + "objectID": "embedded_ml.html#exercises", + "href": "embedded_ml.html#exercises", + "title": "6  Embedded ML", + "section": "6.4 Exercises", + "text": "6.4 Exercises" }, { "objectID": "mlworkflow.html#data-collection", "href": "mlworkflow.html#data-collection", - "title": "5  Machine Learning Workflow", - "section": "5.1 Data Collection", - "text": "5.1 Data Collection" + "title": "7  ML Workflow", + "section": "7.1 Data Collection", + "text": "7.1 Data Collection" }, { "objectID": "mlworkflow.html#pre-processing", "href": "mlworkflow.html#pre-processing", - "title": "5  Machine Learning Workflow", - "section": "5.2 Pre-Processing", - "text": "5.2 Pre-Processing" + "title": "7  ML Workflow", + "section": "7.2 Pre-Processing", + "text": "7.2 Pre-Processing" }, { "objectID": "mlworkflow.html#training", "href": "mlworkflow.html#training", - "title": "5  Machine Learning Workflow", - "section": "5.3 Training", - "text": "5.3 Training" + "title": "7  ML Workflow", + "section": "7.3 Training", + "text": "7.3 Training" }, { "objectID": "mlworkflow.html#optimization", "href": "mlworkflow.html#optimization", - "title": "5  Machine Learning Workflow", - "section": "5.4 Optimization", - "text": "5.4 Optimization" + "title": "7  ML Workflow", + "section": "7.4 Optimization", + "text": "7.4 Optimization" }, { "objectID": "mlworkflow.html#deployment", "href": "mlworkflow.html#deployment", - "title": "5  Machine Learning Workflow", - "section": "5.5 Deployment", - "text": "5.5 Deployment" + "title": "7  ML Workflow", + "section": "7.5 Deployment", + "text": "7.5 Deployment" }, { "objectID": "mlworkflow.html#evaluation", "href": "mlworkflow.html#evaluation", - "title": "5  Machine Learning Workflow", - "section": "5.6 Evaluation", - "text": "5.6 Evaluation" + "title": "7  ML Workflow", + "section": "7.6 Evaluation", + "text": "7.6 Evaluation" }, { "objectID": "mlworkflow.html#quiz", "href": "mlworkflow.html#quiz", - "title": "5  Machine Learning Workflow", - "section": "5.7 Quiz", - "text": "5.7 Quiz" + "title": "7  ML Workflow", + "section": "7.7 Quiz", + "text": "7.7 Quiz" }, { - "objectID": "datacollection.html#data-sources", - "href": "datacollection.html#data-sources", - "title": "6  Data Collection", - "section": "6.1 Data Sources", - "text": "6.1 Data Sources" + "objectID": "data_engineering.html#data-sources", + "href": "data_engineering.html#data-sources", + "title": "8  Data Engineering", + "section": "8.1 Data Sources", + "text": "8.1 Data Sources" }, { - "objectID": "datacollection.html#training-data", - "href": "datacollection.html#training-data", - "title": "6  Data Collection", - "section": "6.2 Training Data", - "text": "6.2 Training Data" + "objectID": "data_engineering.html#training-data", + "href": "data_engineering.html#training-data", + "title": "8  Data Engineering", + "section": "8.2 Training Data", + "text": "8.2 Training Data" }, { - "objectID": "datacollection.html#training-data-splits", - "href": "datacollection.html#training-data-splits", - "title": "6  Data Collection", - "section": "6.3 Training Data Splits", - "text": "6.3 Training Data Splits" + "objectID": "data_engineering.html#training-data-splits", + "href": "data_engineering.html#training-data-splits", + "title": "8  Data Engineering", + "section": "8.3 Training Data Splits", + "text": "8.3 Training Data Splits" }, { - "objectID": "datacollection.html#data-labeling", - "href": "datacollection.html#data-labeling", - "title": "6  Data Collection", - "section": "6.4 Data Labeling", - "text": "6.4 Data Labeling" + "objectID": "data_engineering.html#data-labeling", + "href": "data_engineering.html#data-labeling", + "title": "8  Data Engineering", + "section": "8.4 Data Labeling", + "text": "8.4 Data Labeling" }, { - "objectID": "datacollection.html#types-of-data", - "href": "datacollection.html#types-of-data", - "title": "6  Data Collection", - "section": "6.5 Types of Data", - "text": "6.5 Types of Data" + "objectID": "data_engineering.html#types-of-data", + "href": "data_engineering.html#types-of-data", + "title": "8  Data Engineering", + "section": "8.5 Types of Data", + "text": "8.5 Types of Data" }, { "objectID": "preprocessing.html#what-is-data-pre-processing", "href": "preprocessing.html#what-is-data-pre-processing", - "title": "7  Pre-processing", - "section": "7.1 What is Data Pre-processing?", - "text": "7.1 What is Data Pre-processing?" + "title": "9  Pre-processing", + "section": "9.1 What is Data Pre-processing?", + "text": "9.1 What is Data Pre-processing?" }, { "objectID": "preprocessing.html#whats-involved-with-data-pre-processing", "href": "preprocessing.html#whats-involved-with-data-pre-processing", - "title": "7  Pre-processing", - "section": "7.2 What’s Involved with Data Pre-processing?", - "text": "7.2 What’s Involved with Data Pre-processing?" + "title": "9  Pre-processing", + "section": "9.2 What’s Involved with Data Pre-processing?", + "text": "9.2 What’s Involved with Data Pre-processing?" }, { "objectID": "preprocessing.html#whats-the-importance-of-data-pre-processing", "href": "preprocessing.html#whats-the-importance-of-data-pre-processing", - "title": "7  Pre-processing", - "section": "7.3 What’s The Importance Of Data Pre-Processing?", - "text": "7.3 What’s The Importance Of Data Pre-Processing?" + "title": "9  Pre-processing", + "section": "9.3 What’s The Importance Of Data Pre-Processing?", + "text": "9.3 What’s The Importance Of Data Pre-Processing?" }, { - "objectID": "feature_engineering.html", - "href": "feature_engineering.html", - "title": "8  Feature Engineering", + "objectID": "frameworks.html", + "href": "frameworks.html", + "title": "10  ML Frameworks", "section": "", "text": "coming soon." }, { "objectID": "training.html#selecting-a-training-dataset", "href": "training.html#selecting-a-training-dataset", - "title": "9  Model Training", - "section": "9.1 Selecting a Training Dataset", - "text": "9.1 Selecting a Training Dataset" + "title": "11  Model Training", + "section": "11.1 Selecting a Training Dataset", + "text": "11.1 Selecting a Training Dataset" }, { "objectID": "training.html#neural-network-architectures", "href": "training.html#neural-network-architectures", - "title": "9  Model Training", - "section": "9.2 Neural Network Architectures", - "text": "9.2 Neural Network Architectures\n\n9.2.1 Multilayer Perceptron (MLP)\n\n\n9.2.2 Convolutional Neural Networks\n\n\n9.2.3 Recurrent Neural Networks\n\n\n9.2.4 Transformers" + "title": "11  Model Training", + "section": "11.2 Neural Network Architectures", + "text": "11.2 Neural Network Architectures\n\n11.2.1 Multilayer Perceptron (MLP)\n\n\n11.2.2 Convolutional Neural Networks\n\n\n11.2.3 Recurrent Neural Networks\n\n\n11.2.4 Transformers" }, { "objectID": "training.html#back-propagation", "href": "training.html#back-propagation", - "title": "9  Model Training", - "section": "9.3 Back Propagation", - "text": "9.3 Back Propagation" + "title": "11  Model Training", + "section": "11.3 Back Propagation", + "text": "11.3 Back Propagation" }, { "objectID": "training.html#convergence", "href": "training.html#convergence", - "title": "9  Model Training", - "section": "9.4 Convergence", - "text": "9.4 Convergence" + "title": "11  Model Training", + "section": "11.4 Convergence", + "text": "11.4 Convergence" }, { "objectID": "training.html#overfitting-and-underfitting", "href": "training.html#overfitting-and-underfitting", - "title": "9  Model Training", - "section": "9.5 Overfitting and Underfitting", - "text": "9.5 Overfitting and Underfitting" + "title": "11  Model Training", + "section": "11.5 Overfitting and Underfitting", + "text": "11.5 Overfitting and Underfitting" }, { "objectID": "training.html#hyperparameters", "href": "training.html#hyperparameters", - "title": "9  Model Training", - "section": "9.6 Hyperparameters", - "text": "9.6 Hyperparameters\n\n9.6.1 Epochs\n\n\n9.6.2 Learning Rate" + "title": "11  Model Training", + "section": "11.6 Hyperparameters", + "text": "11.6 Hyperparameters\n\n11.6.1 Epochs\n\n\n11.6.2 Learning Rate" }, { "objectID": "training.html#transfer-learning", "href": "training.html#transfer-learning", - "title": "9  Model Training", - "section": "9.7 Transfer Learning", - "text": "9.7 Transfer Learning\n\n9.7.1 Optimizer" + "title": "11  Model Training", + "section": "11.7 Transfer Learning", + "text": "11.7 Transfer Learning\n\n11.7.1 Optimizer" }, { "objectID": "training.html#summary", "href": "training.html#summary", - "title": "9  Model Training", - "section": "9.8 Summary", - "text": "9.8 Summary" + "title": "11  Model Training", + "section": "11.8 Summary", + "text": "11.8 Summary" }, { "objectID": "training.html#quiz", "href": "training.html#quiz", - "title": "9  Model Training", - "section": "9.9 Quiz", - "text": "9.9 Quiz" + "title": "11  Model Training", + "section": "11.9 Quiz", + "text": "11.9 Quiz" + }, + { + "objectID": "efficient_ai.html", + "href": "efficient_ai.html", + "title": "12  Efficient AI", + "section": "", + "text": "coming soon." }, { "objectID": "optimizations.html#software-optimizations", "href": "optimizations.html#software-optimizations", - "title": "10  Optimizations", - "section": "10.1 Software Optimizations", - "text": "10.1 Software Optimizations\n\n10.1.1 Compression\n\n\n10.1.2 Quantization\n\n\n10.1.3 Weight Pruning\n\n\n10.1.4 Knowledge Distillation" + "title": "13  Optimizations", + "section": "13.1 Software Optimizations", + "text": "13.1 Software Optimizations\n\n13.1.1 Compression\n\n\n13.1.2 Quantization\n\n\n13.1.3 Weight Pruning\n\n\n13.1.4 Knowledge Distillation" }, { "objectID": "optimizations.html#hardware-optimizations", "href": "optimizations.html#hardware-optimizations", - "title": "10  Optimizations", - "section": "10.2 Hardware Optimizations", - "text": "10.2 Hardware Optimizations\n\n10.2.1 GPUs\n\n\n10.2.2 TPUs\n\n\n10.2.3 NPUs" + "title": "13  Optimizations", + "section": "13.2 Hardware Optimizations", + "text": "13.2 Hardware Optimizations\n\n13.2.1 GPUs\n\n\n13.2.2 TPUs\n\n\n13.2.3 NPUs" + }, + { + "objectID": "ondevice_learning.html#federated-learning", + "href": "ondevice_learning.html#federated-learning", + "title": "15  On-Device Learning", + "section": "15.1 Federated Learning", + "text": "15.1 Federated Learning" + }, + { + "objectID": "ondevice_learning.html#on-device-training", + "href": "ondevice_learning.html#on-device-training", + "title": "15  On-Device Learning", + "section": "15.2 On-Device Training", + "text": "15.2 On-Device Training\ncoming soon." + }, + { + "objectID": "hw_acceleration.html", + "href": "hw_acceleration.html", + "title": "16  Hardware Acceleration", + "section": "", + "text": "coming soon." + }, + { + "objectID": "sustainable_ai.html", + "href": "sustainable_ai.html", + "title": "18  AI Sustainability", + "section": "", + "text": "coming soon." + }, + { + "objectID": "responsible_ai.html", + "href": "responsible_ai.html", + "title": "19  Responsible AI", + "section": "", + "text": "coming soon." + }, + { + "objectID": "generative_ai.html", + "href": "generative_ai.html", + "title": "20  Generative AI", + "section": "", + "text": "coming soon." + }, + { + "objectID": "acknowledgements.html", + "href": "acknowledgements.html", + "title": "Acknowledgements", + "section": "", + "text": "coming soon." } ] \ No newline at end of file diff --git a/summary.pdf b/summary.pdf deleted file mode 100644 index 39bd8c319869e59f14720b1ba8c94e7174f3acde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6309 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 + + + + + + + + + +Embedded AI: Principles, Algorithms, and Applications - 18  AI Sustainability + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +
+ + +
+ + + +
+ +
+
+

18  AI Sustainability

+
+ + + +
+ + + + +
+ + +
+ +

coming soon.

+ + + +
+ + +
+ + + + + \ No newline at end of file diff --git a/taxonomy.html b/taxonomy.html deleted file mode 100644 index dd02b87c..00000000 --- a/taxonomy.html +++ /dev/null @@ -1,336 +0,0 @@ - - - - - - - - - -taxonomy - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - - -
-

Taxonomy of ML Algorithms

-
-

Supervised Learning

-
-
-

Unsupervised Learning

-
-
-

Reinforcement Learning

-
-
-

Quiz

- - -
-
- -
- -
- - - - \ No newline at end of file diff --git a/taxonomy.pdf b/taxonomy.pdf deleted file mode 100644 index a6c09eeae902575d32494e8c0eae3a236bcb831f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7052 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 BIDP;C diff --git a/tinyml.pdf b/tinyml.pdf deleted file mode 100644 index 0cbc34d28d8bf5c80c0e516b6f9f064790d07db4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7781 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 C9gvLx diff --git a/toc.html b/toc.html deleted file mode 100644 index a3588a62..00000000 --- a/toc.html +++ /dev/null @@ -1,324 +0,0 @@ - - - - - - - - - -toc - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - - -
-

Table of Contents

- - -
- -
- -
- - - - \ No newline at end of file diff --git a/toc.pdf b/toc.pdf deleted file mode 100644 index 0ea4e7ea45e4466c0adbd561c7866f9670be86d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4690 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 diff --git a/tools.html b/tools.html deleted file mode 100644 index ac3c6a87..00000000 --- a/tools.html +++ /dev/null @@ -1,324 +0,0 @@ - - - - - - - - - -tools - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - - -
-

Tools

- - -
- -
- -
- - - - \ No newline at end of file diff --git a/tools.pdf b/tools.pdf deleted file mode 100644 index a44aa78d0080a767b2102952136b216ec98a93e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3813 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 X + -Embedded AI: Principles, Algorithms, and Applications - 9  Model Training +Embedded AI: Principles, Algorithms, and Applications - 11  Model Training
+ +