├── LICENCE ├── README.md ├── 其他 ├── README.md ├── 关于专业.md ├── 关于保研.md └── 关于综测.md ├── 大三上学期 ├── README.md ├── 强化学习 │ └── README.md ├── 操作系统 │ ├── README.md │ ├── 习题参考解答.docx │ ├── 实验一 │ │ ├── Project1_doc.pdf │ │ └── README.md │ ├── 实验三 │ │ ├── Project_3.cpp │ │ └── README.md │ ├── 实验二 │ │ ├── Project_2.cpp │ │ └── README.md │ └── 实验四 │ │ ├── Project_4.c │ │ └── README.md ├── 算法博弈论 │ ├── README.md │ ├── hm1.pdf │ └── hm2.pdf ├── 自然语言处理 │ ├── README.md │ ├── 实验一 │ │ └── README.md │ ├── 实验三 │ │ └── README.md │ └── 实验二 │ │ └── README.md ├── 计算机组成与原理 │ └── README.md ├── 计算机视觉 │ ├── README.md │ ├── 实验一 │ │ └── README.md │ ├── 实验三 │ │ └── README.md │ └── 实验二 │ │ └── README.md └── 语音识别与合成 │ └── README.md └── 实验报告模板 ├── LaTeXTemplate ├── Figures │ └── swallow.jpg ├── luftballons.pl ├── main.tex └── structure.tex └── README.md /LICENCE: -------------------------------------------------------------------------------- 1 | Attribution-NonCommercial-ShareAlike 4.0 International 2 | 3 | ======================================================================= 4 | 5 | Creative Commons Corporation ("Creative Commons") is not a law firm and 6 | does not provide legal services or legal advice. Distribution of 7 | Creative Commons public licenses does not create a lawyer-client or 8 | other relationship. Creative Commons makes its licenses and related 9 | information available on an "as-is" basis. Creative Commons gives no 10 | warranties regarding its licenses, any material licensed under their 11 | terms and conditions, or any related information. Creative Commons 12 | disclaims all liability for damages resulting from their use to the 13 | fullest extent possible. 14 | 15 | Using Creative Commons Public Licenses 16 | 17 | Creative Commons public licenses provide a standard set of terms and 18 | conditions that creators and other rights holders may use to share 19 | original works of authorship and other material subject to copyright 20 | and certain other rights specified in the public license below. The 21 | following considerations are for informational purposes only, are not 22 | exhaustive, and do not form part of our licenses. 23 | 24 | Considerations for licensors: Our public licenses are 25 | intended for use by those authorized to give the public 26 | permission to use material in ways otherwise restricted by 27 | copyright and certain other rights. Our licenses are 28 | irrevocable. Licensors should read and understand the terms 29 | and conditions of the license they choose before applying it. 30 | Licensors should also secure all rights necessary before 31 | applying our licenses so that the public can reuse the 32 | material as expected. Licensors should clearly mark any 33 | material not subject to the license. This includes other CC- 34 | licensed material, or material used under an exception or 35 | limitation to copyright. More considerations for licensors: 36 | wiki.creativecommons.org/Considerations_for_licensors 37 | 38 | Considerations for the public: By using one of our public 39 | licenses, a licensor grants the public permission to use the 40 | licensed material under specified terms and conditions. If 41 | the licensor's permission is not necessary for any reason--for 42 | example, because of any applicable exception or limitation to 43 | copyright--then that use is not regulated by the license. Our 44 | licenses grant only permissions under copyright and certain 45 | other rights that a licensor has authority to grant. Use of 46 | the licensed material may still be restricted for other 47 | reasons, including because others have copyright or other 48 | rights in the material. A licensor may make special requests, 49 | such as asking that all changes be marked or described. 50 | Although not required by our licenses, you are encouraged to 51 | respect those requests where reasonable. More considerations 52 | for the public: 53 | wiki.creativecommons.org/Considerations_for_licensees 54 | 55 | ======================================================================= 56 | 57 | Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International 58 | Public License 59 | 60 | By exercising the Licensed Rights (defined below), You accept and agree 61 | to be bound by the terms and conditions of this Creative Commons 62 | Attribution-NonCommercial-ShareAlike 4.0 International Public License 63 | ("Public License"). To the extent this Public License may be 64 | interpreted as a contract, You are granted the Licensed Rights in 65 | consideration of Your acceptance of these terms and conditions, and the 66 | Licensor grants You such rights in consideration of benefits the 67 | Licensor receives from making the Licensed Material available under 68 | these terms and conditions. 69 | 70 | 71 | Section 1 -- Definitions. 72 | 73 | a. Adapted Material means material subject to Copyright and Similar 74 | Rights that is derived from or based upon the Licensed Material 75 | and in which the Licensed Material is translated, altered, 76 | arranged, transformed, or otherwise modified in a manner requiring 77 | permission under the Copyright and Similar Rights held by the 78 | Licensor. For purposes of this Public License, where the Licensed 79 | Material is a musical work, performance, or sound recording, 80 | Adapted Material is always produced where the Licensed Material is 81 | synched in timed relation with a moving image. 82 | 83 | b. Adapter's License means the license You apply to Your Copyright 84 | and Similar Rights in Your contributions to Adapted Material in 85 | accordance with the terms and conditions of this Public License. 86 | 87 | c. BY-NC-SA Compatible License means a license listed at 88 | creativecommons.org/compatiblelicenses, approved by Creative 89 | Commons as essentially the equivalent of this Public License. 90 | 91 | d. Copyright and Similar Rights means copyright and/or similar rights 92 | closely related to copyright including, without limitation, 93 | performance, broadcast, sound recording, and Sui Generis Database 94 | Rights, without regard to how the rights are labeled or 95 | categorized. For purposes of this Public License, the rights 96 | specified in Section 2(b)(1)-(2) are not Copyright and Similar 97 | Rights. 98 | 99 | e. Effective Technological Measures means those measures that, in the 100 | absence of proper authority, may not be circumvented under laws 101 | fulfilling obligations under Article 11 of the WIPO Copyright 102 | Treaty adopted on December 20, 1996, and/or similar international 103 | agreements. 104 | 105 | f. Exceptions and Limitations means fair use, fair dealing, and/or 106 | any other exception or limitation to Copyright and Similar Rights 107 | that applies to Your use of the Licensed Material. 108 | 109 | g. License Elements means the license attributes listed in the name 110 | of a Creative Commons Public License. The License Elements of this 111 | Public License are Attribution, NonCommercial, and ShareAlike. 112 | 113 | h. Licensed Material means the artistic or literary work, database, 114 | or other material to which the Licensor applied this Public 115 | License. 116 | 117 | i. Licensed Rights means the rights granted to You subject to the 118 | terms and conditions of this Public License, which are limited to 119 | all Copyright and Similar Rights that apply to Your use of the 120 | Licensed Material and that the Licensor has authority to license. 121 | 122 | j. Licensor means the individual(s) or entity(ies) granting rights 123 | under this Public License. 124 | 125 | k. NonCommercial means not primarily intended for or directed towards 126 | commercial advantage or monetary compensation. For purposes of 127 | this Public License, the exchange of the Licensed Material for 128 | other material subject to Copyright and Similar Rights by digital 129 | file-sharing or similar means is NonCommercial provided there is 130 | no payment of monetary compensation in connection with the 131 | exchange. 132 | 133 | l. Share means to provide material to the public by any means or 134 | process that requires permission under the Licensed Rights, such 135 | as reproduction, public display, public performance, distribution, 136 | dissemination, communication, or importation, and to make material 137 | available to the public including in ways that members of the 138 | public may access the material from a place and at a time 139 | individually chosen by them. 140 | 141 | m. Sui Generis Database Rights means rights other than copyright 142 | resulting from Directive 96/9/EC of the European Parliament and of 143 | the Council of 11 March 1996 on the legal protection of databases, 144 | as amended and/or succeeded, as well as other essentially 145 | equivalent rights anywhere in the world. 146 | 147 | n. You means the individual or entity exercising the Licensed Rights 148 | under this Public License. Your has a corresponding meaning. 149 | 150 | 151 | Section 2 -- Scope. 152 | 153 | a. License grant. 154 | 155 | 1. Subject to the terms and conditions of this Public License, 156 | the Licensor hereby grants You a worldwide, royalty-free, 157 | non-sublicensable, non-exclusive, irrevocable license to 158 | exercise the Licensed Rights in the Licensed Material to: 159 | 160 | a. reproduce and Share the Licensed Material, in whole or 161 | in part, for NonCommercial purposes only; and 162 | 163 | b. produce, reproduce, and Share Adapted Material for 164 | NonCommercial purposes only. 165 | 166 | 2. Exceptions and Limitations. For the avoidance of doubt, where 167 | Exceptions and Limitations apply to Your use, this Public 168 | License does not apply, and You do not need to comply with 169 | its terms and conditions. 170 | 171 | 3. Term. The term of this Public License is specified in Section 172 | 6(a). 173 | 174 | 4. Media and formats; technical modifications allowed. The 175 | Licensor authorizes You to exercise the Licensed Rights in 176 | all media and formats whether now known or hereafter created, 177 | and to make technical modifications necessary to do so. The 178 | Licensor waives and/or agrees not to assert any right or 179 | authority to forbid You from making technical modifications 180 | necessary to exercise the Licensed Rights, including 181 | technical modifications necessary to circumvent Effective 182 | Technological Measures. For purposes of this Public License, 183 | simply making modifications authorized by this Section 2(a) 184 | (4) never produces Adapted Material. 185 | 186 | 5. Downstream recipients. 187 | 188 | a. Offer from the Licensor -- Licensed Material. Every 189 | recipient of the Licensed Material automatically 190 | receives an offer from the Licensor to exercise the 191 | Licensed Rights under the terms and conditions of this 192 | Public License. 193 | 194 | b. Additional offer from the Licensor -- Adapted Material. 195 | Every recipient of Adapted Material from You 196 | automatically receives an offer from the Licensor to 197 | exercise the Licensed Rights in the Adapted Material 198 | under the conditions of the Adapter's License You apply. 199 | 200 | c. No downstream restrictions. You may not offer or impose 201 | any additional or different terms or conditions on, or 202 | apply any Effective Technological Measures to, the 203 | Licensed Material if doing so restricts exercise of the 204 | Licensed Rights by any recipient of the Licensed 205 | Material. 206 | 207 | 6. No endorsement. Nothing in this Public License constitutes or 208 | may be construed as permission to assert or imply that You 209 | are, or that Your use of the Licensed Material is, connected 210 | with, or sponsored, endorsed, or granted official status by, 211 | the Licensor or others designated to receive attribution as 212 | provided in Section 3(a)(1)(A)(i). 213 | 214 | b. Other rights. 215 | 216 | 1. Moral rights, such as the right of integrity, are not 217 | licensed under this Public License, nor are publicity, 218 | privacy, and/or other similar personality rights; however, to 219 | the extent possible, the Licensor waives and/or agrees not to 220 | assert any such rights held by the Licensor to the limited 221 | extent necessary to allow You to exercise the Licensed 222 | Rights, but not otherwise. 223 | 224 | 2. Patent and trademark rights are not licensed under this 225 | Public License. 226 | 227 | 3. To the extent possible, the Licensor waives any right to 228 | collect royalties from You for the exercise of the Licensed 229 | Rights, whether directly or through a collecting society 230 | under any voluntary or waivable statutory or compulsory 231 | licensing scheme. In all other cases the Licensor expressly 232 | reserves any right to collect such royalties, including when 233 | the Licensed Material is used other than for NonCommercial 234 | purposes. 235 | 236 | 237 | Section 3 -- License Conditions. 238 | 239 | Your exercise of the Licensed Rights is expressly made subject to the 240 | following conditions. 241 | 242 | a. Attribution. 243 | 244 | 1. If You Share the Licensed Material (including in modified 245 | form), You must: 246 | 247 | a. retain the following if it is supplied by the Licensor 248 | with the Licensed Material: 249 | 250 | i. identification of the creator(s) of the Licensed 251 | Material and any others designated to receive 252 | attribution, in any reasonable manner requested by 253 | the Licensor (including by pseudonym if 254 | designated); 255 | 256 | ii. a copyright notice; 257 | 258 | iii. a notice that refers to this Public License; 259 | 260 | iv. a notice that refers to the disclaimer of 261 | warranties; 262 | 263 | v. a URI or hyperlink to the Licensed Material to the 264 | extent reasonably practicable; 265 | 266 | b. indicate if You modified the Licensed Material and 267 | retain an indication of any previous modifications; and 268 | 269 | c. indicate the Licensed Material is licensed under this 270 | Public License, and include the text of, or the URI or 271 | hyperlink to, this Public License. 272 | 273 | 2. You may satisfy the conditions in Section 3(a)(1) in any 274 | reasonable manner based on the medium, means, and context in 275 | which You Share the Licensed Material. For example, it may be 276 | reasonable to satisfy the conditions by providing a URI or 277 | hyperlink to a resource that includes the required 278 | information. 279 | 3. If requested by the Licensor, You must remove any of the 280 | information required by Section 3(a)(1)(A) to the extent 281 | reasonably practicable. 282 | 283 | b. ShareAlike. 284 | 285 | In addition to the conditions in Section 3(a), if You Share 286 | Adapted Material You produce, the following conditions also apply. 287 | 288 | 1. The Adapter's License You apply must be a Creative Commons 289 | license with the same License Elements, this version or 290 | later, or a BY-NC-SA Compatible License. 291 | 292 | 2. You must include the text of, or the URI or hyperlink to, the 293 | Adapter's License You apply. You may satisfy this condition 294 | in any reasonable manner based on the medium, means, and 295 | context in which You Share Adapted Material. 296 | 297 | 3. You may not offer or impose any additional or different terms 298 | or conditions on, or apply any Effective Technological 299 | Measures to, Adapted Material that restrict exercise of the 300 | rights granted under the Adapter's License You apply. 301 | 302 | 303 | Section 4 -- Sui Generis Database Rights. 304 | 305 | Where the Licensed Rights include Sui Generis Database Rights that 306 | apply to Your use of the Licensed Material: 307 | 308 | a. for the avoidance of doubt, Section 2(a)(1) grants You the right 309 | to extract, reuse, reproduce, and Share all or a substantial 310 | portion of the contents of the database for NonCommercial purposes 311 | only; 312 | 313 | b. if You include all or a substantial portion of the database 314 | contents in a database in which You have Sui Generis Database 315 | Rights, then the database in which You have Sui Generis Database 316 | Rights (but not its individual contents) is Adapted Material, 317 | including for purposes of Section 3(b); and 318 | 319 | c. You must comply with the conditions in Section 3(a) if You Share 320 | all or a substantial portion of the contents of the database. 321 | 322 | For the avoidance of doubt, this Section 4 supplements and does not 323 | replace Your obligations under this Public License where the Licensed 324 | Rights include other Copyright and Similar Rights. 325 | 326 | 327 | Section 5 -- Disclaimer of Warranties and Limitation of Liability. 328 | 329 | a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE 330 | EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS 331 | AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF 332 | ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, 333 | IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, 334 | WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR 335 | PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, 336 | ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT 337 | KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT 338 | ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. 339 | 340 | b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE 341 | TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, 342 | NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, 343 | INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, 344 | COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR 345 | USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN 346 | ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR 347 | DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR 348 | IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. 349 | 350 | c. The disclaimer of warranties and limitation of liability provided 351 | above shall be interpreted in a manner that, to the extent 352 | possible, most closely approximates an absolute disclaimer and 353 | waiver of all liability. 354 | 355 | 356 | Section 6 -- Term and Termination. 357 | 358 | a. This Public License applies for the term of the Copyright and 359 | Similar Rights licensed here. However, if You fail to comply with 360 | this Public License, then Your rights under this Public License 361 | terminate automatically. 362 | 363 | b. Where Your right to use the Licensed Material has terminated under 364 | Section 6(a), it reinstates: 365 | 366 | 1. automatically as of the date the violation is cured, provided 367 | it is cured within 30 days of Your discovery of the 368 | violation; or 369 | 370 | 2. upon express reinstatement by the Licensor. 371 | 372 | For the avoidance of doubt, this Section 6(b) does not affect any 373 | right the Licensor may have to seek remedies for Your violations 374 | of this Public License. 375 | 376 | c. For the avoidance of doubt, the Licensor may also offer the 377 | Licensed Material under separate terms or conditions or stop 378 | distributing the Licensed Material at any time; however, doing so 379 | will not terminate this Public License. 380 | 381 | d. Sections 1, 5, 6, 7, and 8 survive termination of this Public 382 | License. 383 | 384 | 385 | Section 7 -- Other Terms and Conditions. 386 | 387 | a. The Licensor shall not be bound by any additional or different 388 | terms or conditions communicated by You unless expressly agreed. 389 | 390 | b. Any arrangements, understandings, or agreements regarding the 391 | Licensed Material not stated herein are separate from and 392 | independent of the terms and conditions of this Public License. 393 | 394 | 395 | Section 8 -- Interpretation. 396 | 397 | a. For the avoidance of doubt, this Public License does not, and 398 | shall not be interpreted to, reduce, limit, restrict, or impose 399 | conditions on any use of the Licensed Material that could lawfully 400 | be made without permission under this Public License. 401 | 402 | b. To the extent possible, if any provision of this Public License is 403 | deemed unenforceable, it shall be automatically reformed to the 404 | minimum extent necessary to make it enforceable. If the provision 405 | cannot be reformed, it shall be severed from this Public License 406 | without affecting the enforceability of the remaining terms and 407 | conditions. 408 | 409 | c. No term or condition of this Public License will be waived and no 410 | failure to comply consented to unless expressly agreed to by the 411 | Licensor. 412 | 413 | d. Nothing in this Public License constitutes or may be interpreted 414 | as a limitation upon, or waiver of, any privileges and immunities 415 | that apply to the Licensor or You, including from the legal 416 | processes of any jurisdiction or authority. 417 | 418 | ======================================================================= 419 | 420 | Creative Commons is not a party to its public 421 | licenses. Notwithstanding, Creative Commons may elect to apply one of 422 | its public licenses to material it publishes and in those instances 423 | will be considered the “Licensor.” The text of the Creative Commons 424 | public licenses is dedicated to the public domain under the CC0 Public 425 | Domain Dedication. Except for the limited purpose of indicating that 426 | material is shared under a Creative Commons public license or as 427 | otherwise permitted by the Creative Commons policies published at 428 | creativecommons.org/policies, Creative Commons does not authorize the 429 | use of the trademark "Creative Commons" or any other trademark or logo 430 | of Creative Commons without its prior written consent including, 431 | without limitation, in connection with any unauthorized modifications 432 | to any of its public licenses or any other arrangements, 433 | understandings, or agreements concerning use of licensed material. For 434 | the avoidance of doubt, this paragraph does not form part of the 435 | public licenses. 436 | 437 | Creative Commons may be contacted at creativecommons.org. 438 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 北京理工大学-本科-人工智能专业-通关手册😊 2 | 3 | 作者是北京理工大学第二届人工智能专业(2020级)的学生。作为过来人,深知人工智能专业的实践作业涉及内容之多🚀。作者认为闭门造车不是打开实践作业的正确方式❌,在参考他人的过程中进行思考、实践与改进才能在一次实践作业中最大程度地吸收知识,最大限度地提升自己。故作者将相关资料整理于此,希望有助于之后的学弟学妹!**资料时效性有限**👀,欢迎同届、以及后面的学弟学妹们进行补充或参与维护🌞。 4 | 5 | 🔔🔔🔔 6 | - 2023/11/1 补充了大三上学期《操作系统》课程的相关资料(包含课后作业答案,实验介绍以及实验代码) 7 | - 2023/10/23 整理出大三上学期相关课程的实践作业资料(暂时仅包含作者上过的课程) 8 | - 后续将持续更新,欢迎star❤️❤️❤️ 9 | 10 | ## 适合读者 11 | - **为专业分流准备**,可以到这了解专业课程信息 12 | - **即将面临选课**,可以到这了解选修课授课内容,课程作业量等信息 13 | - **实践作业一筹莫展**,可以到这寻找实验启发 14 | - **不清楚如何撰写实验报告**,可以到这获取实验报告模板,了解撰写思路 15 | - **想提前预习下学期课程**,可以到这了解课程授课内容,课程实验内容等信息 16 | - **闲着没事**,可以到这点个star,跑跑开源代码 17 | 18 | ## 这里有什么? 19 | - **课程介绍** (包括课程性质,授课形式,授课内容,课程作业量,有无考试,课程建议等) 20 | 21 | P.S. 仅选修课列出授课内容 (必修课不得不学👻) 22 | 23 | - **课程实验介绍** (包括实验名称,实验内容,实验启发等) 24 | 25 | P.S. 部分课程实验代码和课程实验报告未开源 (明年回头看,你会发现正是这些实验的磨砺,自己的思维和代码能力才能取得显著的提升😋),but 提出了一些实验启发 (寻找实验思路,参考➡️实践➡️改进) 26 | 27 | - **开放性实验代码** 28 | 29 | P.S. 有实现模型算法的,有复现论文的,有基于实际应用场景的 (可以跑跑玩玩🍕) 30 | 31 | - **课程实验报告模板** 32 | 33 | P.S. 目前暂提供LaTeX模板 (便于编辑数学公式,结构清晰,熟练使用LaTeX也有助于未来的论文撰写,Overleaf or 本地安装均是不错的选择,Overleaf更适合团队共同编辑) 34 | 35 | - **课程实验报告撰写思路** 36 | 37 | P.S. 尽量包含干货,希望能对学弟学妹有所启发😀 38 | 39 | - **课程作业答案** 40 | 41 | P.S. 课程作业变化很快,碰到算运气😂 42 | 43 | - 往年试卷和复习资料等可以看👉友链 44 | 45 | - 若有其他想了解的信息、想拥有的资料,欢迎联系我 BIT2020AIZL@163.com 或在 issues 提出 46 | 47 | ## 声明 48 | 我不对项目中信息的准确性或真实性做任何承诺,但我会对仓库中我的表述负责。 49 | 50 | 如果有侵权情况,或者对开源项目中的内容有任何疑问、异议,麻烦您发送必要的信息至 BIT2020AIZL@163.com,我会立刻做出改正,带来不便还请您谅解! 51 | 52 | ## 许可 53 | Shield: [![CC BY-NC-SA 4.0][cc-by-nc-sa-shield]][cc-by-nc-sa] 54 | 55 | This work is licensed under a 56 | [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License][cc-by-nc-sa]. 57 | 58 | [![CC BY-NC-SA 4.0][cc-by-nc-sa-image]][cc-by-nc-sa] 59 | 60 | [cc-by-nc-sa]: http://creativecommons.org/licenses/by-nc-sa/4.0/ 61 | [cc-by-nc-sa-image]: https://licensebuttons.net/l/by-nc-sa/4.0/88x31.png 62 | [cc-by-nc-sa-shield]: https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-lightgrey.svg 63 | 64 | 这意味着您可以对本仓库中所包含的资源进行复制、发行、修改和创作等,但不得用于商业性目的,在使用时须进行署名,且以相同或兼容的协议进行许可。仓库的资源来自于用户和互联网,其正确性不作保证。 65 | 66 | ## 友链 67 | 19级AI专业学长的个人分享👉https://github.com/Robin-WZQ/BIT-AI-Review 68 | 69 | 20级AI专业同窗的个人分享👉https://github.com/lyccyl1/BIT-AI 70 | -------------------------------------------------------------------------------- /其他/README.md: -------------------------------------------------------------------------------- 1 | ## 记录一些学弟学妹咨询过的问题,也许你也关心😜 2 | 3 | -------------------------------------------------------------------------------- /其他/关于专业.md: -------------------------------------------------------------------------------- 1 | - 操作系统,计算机组成与原理,数据结构以及计算机网络等**考研课程**,**人工智能专业与其他专业一样均会学习**,**保研率与其他计院专业没有差异** 2 | - **人工智能专业课程量更大**,必修课相较于其他计院专业更多,选修课需要修满14学分,其他计院专业只需修满12学分,但是不需要担心,**课程内容都是递进连贯的**,不同课程的内容之间存在重合,可以相对轻松地衔接😄 3 | - 人工智能专业相较于其他计院专业,一般来说 (🙌膜拜大佬),**课程实验会更多,项目经历也会更丰富**,**对AI领域的算法模型掌握地会稍深**,对PyTorch等深度学习框架使用地会稍熟,**但对于计组、计网等专业课程掌握地会稍显薄弱**,**欠缺一定的前后端开发能力**,一方面是由于课程要求稍低,另一方面是由于课程量较大 4 | - 对于人工智能专业而言,尽管实验会更多,但**实验相较于考试,努力得到对应回报的概率更大**,毕竟投入的时间越多,实验报告就越详实 5 | 6 | -------------------------------------------------------------------------------- /其他/关于保研.md: -------------------------------------------------------------------------------- 1 | > 以下信息不一定准确 仅供参考 2 | 3 | ## 第一步:获得推免资格 4 | 5 | - **2020级人工智能专业**共69人,纯成绩保研18人,出国1人,其他保研7-8人,**共保研26-27人(约为37.8%)** 6 | - **(前三年) 百分之八十五的成绩 (算公选课成绩) + 百分之十五的综测**决定专业排名,即能否获得推免资格 7 | - 其他保研包括专项计划,工程硕博培养,支教保研,国优计划等 8 | - 支教保研,工程硕博培养,国优计划,攻读马克思或兵器科学专业等可申请加分,已获得推免资格的同学可以申请,申请之后便不再占有基本推免名额,基本推免名额往后顺延 9 | - 未获得推免资格的同学,如果有竞赛获奖,学术专长,文艺特长等,可以申请加分,只需要达到基本推免名额的最低线之上,即可保研,且不影响基本推免名额 10 | 11 | ​ 建议保研边缘的同学,踏踏实实准备考研,没准某天保研名额一下子落到自己身上,岂不是多个选择很开心✨ 12 | 13 | 14 | 15 | ## 第二步:推免 16 | 17 | - **获得推免资格后,你可以推免到任何学校,前提是该学校接受你** (参加夏令营/预推免拿到心仪offer) 18 | - 参加夏令营/预推免前可以联系导师,实际上保外校分为两种思路,一种是冲学校title,可以选择冷门方向/老师,可以考虑其他学院做CS方向的老师 (注意专业代码),另一种是选好导,可以从学长学姐了解RP、雷点,从学院官网了解Title、研究方向、最新成果,从Google学术了解论文引用量、实验室论文产出情况,从各大网站了解导师评价等 19 | - 夏令营只看前五学期成绩排名,预推免看前六学期成绩排名 (算公选课成绩) 20 | - 夏令营/预推免的考核方式可以参考目标院校的往年通知,从而进行针对性准备,如机试就提前刷题,面试就准备自我介绍等 21 | - 不要被信息差吊打😵,多问多查多看 22 | - 2023年本校CS学院的保研复试发生了改革,包括了面试,机试,听力,口语 23 | - 其他保研流程,保研经验可以参看👉[19级AI专业WZQ学长](https://github.com/Robin-WZQ/BIT-AI-Review) 24 | 25 | 26 | 27 | ## 补充 28 | 29 | - 工程硕博,也称卓越工程,校企联合,2023年是开展第二年 30 | - 工程硕士不占用导师名额,工程博士占用导师名额 31 | - 工程硕士录取专业为计算机技术 (三年制专硕) 32 | - 工程硕士先在本校一年,然后去企业一年半,再回学校半年 33 | - 工程博士先在本校两年,然后去企业三年,再回学校一年 34 | 35 | -------------------------------------------------------------------------------- /其他/关于综测.md: -------------------------------------------------------------------------------- 1 | ## 一. 综测包含什么? 2 | 3 | - B项 4 | - B1:实践参与分 (科创活动,学科竞赛) 5 | - B2:创新成果分 6 | - C项 7 | - C1:社会工作表现分 8 | - C2:社会实践分 9 | - C3:文体活动分 10 | - C4:志愿服务分 11 | 12 | ## 二. 综测影响什么? 13 | 14 | - **评选优秀学生奖学金**时,学习成绩占百分之八十,综测占百分之二十 (可能发生变化) 15 | - **计算排名获取保研资格**时,学习成绩占百分之八十五,综测占百分之十五 (可能发生变化) 16 | - 在获得综测的过程中**积累**的学术成果,科创成果,学科竞赛奖项,任职经历,社会实践奖项,文体活动奖项,志愿服务时长等,将**有助于获得社会捐助类奖学金,获评荣誉称号,入党等**。 17 | 18 | ## 三. 如何获得综测? 19 | 20 | ​ 很多方法和途径🌟。 21 | 22 | ## 四. 如何看待综测? 23 | 24 | ​ 建议学弟学妹们以Rank A为主,兼顾 Rank B、Rank C (小专业尤其如此👊)。 25 | -------------------------------------------------------------------------------- /大三上学期/README.md: -------------------------------------------------------------------------------- 1 | # 这里是大三上😊 2 | 3 | 没关系,大家能从大二下坚持过来已经很厉害了,好好保持,继续加油❤️❤️❤️ 4 | -------------------------------------------------------------------------------- /大三上学期/强化学习/README.md: -------------------------------------------------------------------------------- 1 | # 强化学习😊 2 | 3 | - 课程性质:选修课 4 | - 授课形式:英文PPT 5 | - 授课内容:MDP,RL,IL,POMDP等 6 | - 课程作业量:四次实验 7 | - 有无考试:无 8 | - 作者建议:该课程十分**锻炼代码能力**💥,相信经历过该课程的磨练,各位的代码能力能取得极大的提升。该课程按质按量完成好实验并提交实验报告便可得到**可观的分数**,**实验报告不用卷**,将实验流程描述清晰即可。如果课程听不大懂,不要紧!!!课后可以通过PPT查缺补漏 (**实验的内容基本全出自于PPT**),也可以根据PPT关键词搜索网课学习 (👉**言尽于此**👈)。 9 | -------------------------------------------------------------------------------- /大三上学期/操作系统/README.md: -------------------------------------------------------------------------------- 1 | # 操作系统😊 2 | 3 | - 课程性质:必修课,8周 4 | - 授课形式:中文PPT 5 | - 课程作业量:若干纸质作业,4个上机实验 6 | - 有无考试:有 7 | - 作者建议:建议**狠狠刷题 + 狠狠复习**👊以应对考试。 8 | -------------------------------------------------------------------------------- /大三上学期/操作系统/习题参考解答.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Z-Luan/BIT-AI/d56358464faa3ad4e0cb1266a2ca536989bffb90/大三上学期/操作系统/习题参考解答.docx -------------------------------------------------------------------------------- /大三上学期/操作系统/实验一/Project1_doc.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Z-Luan/BIT-AI/d56358464faa3ad4e0cb1266a2ca536989bffb90/大三上学期/操作系统/实验一/Project1_doc.pdf -------------------------------------------------------------------------------- /大三上学期/操作系统/实验一/README.md: -------------------------------------------------------------------------------- 1 | ## 一. 实验名称 2 | 3 | ​ 编译Linux内核 4 | 5 | 6 | 7 | ## 二. 实验目的 8 | ​ 在编译Linux内核实验中,通过安装Virtual Box, 配置Ubuntu,掌握虚拟机环境的配置,虚拟机操作系统的安装;通过Linux系统终端编译程序,掌握Linux命令的使用和Linux编程;通过编译Linux内核,掌握Linux内核的编译过程,理解不同版本Linux内核的区别,了解make文件的编写方法以及操作系统的组成部分;通过修改引导菜单配置,了解GRUB启动程序。 9 | 10 | 11 | 12 | ## 三. 实验环境配置 13 | [传送门](https://github.com/Z-Luan/BIT-AI/blob/main/%E5%A4%A7%E4%B8%89%E4%B8%8A%E5%AD%A6%E6%9C%9F/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/%E5%AE%9E%E9%AA%8C%E4%B8%80/Project1_doc.pdf) 14 | ​ 15 | 16 | ## 四. 实验步骤方法 17 | [传送门](https://github.com/Z-Luan/BIT-AI/blob/main/%E5%A4%A7%E4%B8%89%E4%B8%8A%E5%AD%A6%E6%9C%9F/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/%E5%AE%9E%E9%AA%8C%E4%B8%80/Project1_doc.pdf) 18 | -------------------------------------------------------------------------------- /大三上学期/操作系统/实验三/Project_3.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Z-Luan/BIT-AI/d56358464faa3ad4e0cb1266a2ca536989bffb90/大三上学期/操作系统/实验三/Project_3.cpp -------------------------------------------------------------------------------- /大三上学期/操作系统/实验三/README.md: -------------------------------------------------------------------------------- 1 | ## 一. 实验名称 2 | 3 | ​ 内存监视 4 | 5 | 6 | 7 | ## 二. 实验目的 8 | 9 | ​ 设计一个内存监视器,能实时地显示当前系统中内存的使用情况,包括系统地址空间的布局,物理内存的使用情况,同时能实时显示某个进程的虚拟地址空间布局和工作集信息等。 -------------------------------------------------------------------------------- /大三上学期/操作系统/实验二/Project_2.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | #define Buffer_num 6 7 | #define Buffer_len 10 8 | #define Producer_num 2 9 | #define Producer_repeat 12 10 | #define Consumer_num 3 11 | #define Consumer_repeat 8 12 | #define Process_num 5 13 | 14 | LARGE_INTEGER Start_Time, End_Time, Frequency; 15 | HANDLE semaphore_empty, semaphore_fill, semaphore_mutex; 16 | HANDLE Process_Handle[Process_num + 1]; 17 | 18 | struct shared_memory 19 | { 20 | char Buffer[Buffer_num][Buffer_len + 1]; 21 | int BEGIN; 22 | int END; 23 | }; 24 | 25 | HANDLE MakeSharedFile() 26 | { 27 | // 每个进程会被分配一块独立的内存空间, 不能由其他进程访问, 通过在进程间共享内存映像文件可以达到共享内存的目的 28 | // CreateFileMapping() 把文件映射到内存 29 | // INVALID_HANDLE_VALUE: 表示在页面文件(虚拟内存)中创建一个可共享的文件映射 30 | // NULL: 使用默认安全配置 31 | // PAGE_READWRITE: 以可读可写的方式打开文件映射 32 | // 0: 文件映射大小的高32位 33 | // sizeof(struct shared_memory): 文件映射大小的低32位 34 | // 由于 Windows 支持的最大文件大小可以用 64 位整数表示, 因此必须使用两个 32 位值, 对于小于 4GB 的文件来说, dwMaximumSizeHigh 为 0 35 | // "SHARED_MEMORY": 共享内存名称 36 | HANDLE FileMapping = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, sizeof(struct shared_memory), "SHARED_MEMORY"); 37 | return FileMapping; 38 | } 39 | 40 | void Create_Semaphore() 41 | { 42 | // CreateSemaphore(lpSemaphoreAttributes, lInitialCount, lMaximumCount, lpName)创建一个信号量对象 43 | // lpSemaphoreAttributes: 信号量的属性, 一般可以设置为NULL 44 | // lInitialCount: 信号量初始值, 必须大于等于0, 而且小于等于lMaximumCount 45 | // lMaximumCount: 信号量的最大值, 必须大于0 46 | // lpName: 信号量的名字, 可设置为NULL, 表示无名的信号量 47 | semaphore_empty = CreateSemaphore(NULL, Buffer_num, Buffer_num, "SEMAPHORE_EMPTY"); 48 | semaphore_fill = CreateSemaphore(NULL, 0, Buffer_num, "SEMAPHORE_FILL"); 49 | semaphore_mutex = CreateSemaphore(NULL, 1, 1, "SEMAPHORE_MUTEX"); 50 | } 51 | 52 | void Create_Process(int Process_ID) 53 | { 54 | // 当Windows创建新进程时, 将使用STARTUPINFO结构体的成员 55 | STARTUPINFO S; 56 | // STARTUPINFO结构体的所有成员初始化为 0 57 | memset(&S, 0, sizeof(S)); 58 | // 成员 cb 包含STARTUPINFO结构体的字节数, 必须进行初始化 59 | S.cb = sizeof(S); 60 | 61 | // typedef struct _PROCESS_INFORMATION { 62 | // HANDLE hProcess; //存放每个对象的与进程相关的句柄 63 | // HANDLE hThread; //返回的线程句柄 64 | // DWORD dwProcessId; //用来存放进程ID号 65 | // DWORD dwThreadId; //用来存放线程ID号 66 | // } PROCESS_INFORMATION, *PPROCESS_INFORMATION, *LPPROCESS_INFORMATION; 67 | PROCESS_INFORMATION P; 68 | 69 | char Cmd_Str[105]; 70 | char File_Path[100]; 71 | 72 | // GetModuleFileName(NULL,buff,MAX_PATH)获取exe可执行文件的绝对路径 73 | // NULL: 可执行文件为当前程序 74 | // buff: 存放地址的指针 75 | GetModuleFileName(NULL, File_Path, sizeof(File_Path)); 76 | 77 | // sprintf(char *str,const char *format,...) 发送格式化输出到 str 所指向的字符串 78 | sprintf(Cmd_Str, "%s %d", File_Path, Process_ID); 79 | 80 | // BOOL CreateProcess( 81 | // LPCTSTR lpApplicationName, // 应用程序名称, 指向启动进程的可执行文件, NULL表示可执行文件为当前程序 82 | // LPTSTR lpCommandLine, // 命令行字符串, 启动进程的命令行中的参数 83 | // LPSECURITY_ATTRIBUTES lpProcessAttributes, // 进程的安全属性, NULL表示默认安全属性 84 | // LPSECURITY_ATTRIBUTES lpThreadAttributes, // 线程的安全属性, NULL表示默认安全属性 85 | // BOOL bInheritHandles, // 是否继承父进程的属性 86 | // DWORD dwCreationFlags, // 创建标志, 表示进程的创建标志以及优先级控制 87 | // LPVOID lpEnvironment, // 指向新进程的环境变量块, 如果设置为 NULL, 那么使用父进程的环境变量 88 | // LPCTSTR lpCurrentDirectory, // 指定创建后新进程的当前目录, 如果设置为 NULL, 那么就在父进程所在的当前目录 89 | // LPSTARTUPINFO lpStartupInfo, // 传递给新进程的信息, 指向一个 STARTUPINFO 结构, 该结构里可以设定启动信息, 可以设置为 NULL 90 | // LPPROCESS_INFORMATION lpProcessInformation // 新进程返回的信息, 指向一个 PROCESS_INFORMATION 结构, 返回被创建进程的信息 91 | // ); 92 | CreateProcess(NULL, Cmd_Str, NULL, NULL, FALSE, 0, NULL, NULL, &S, &P); 93 | Process_Handle[Process_ID] = P.hProcess; 94 | 95 | return; 96 | } 97 | 98 | void Close_Semaphore() 99 | { 100 | CloseHandle(semaphore_empty); 101 | CloseHandle(semaphore_fill); 102 | CloseHandle(semaphore_mutex); 103 | } 104 | 105 | void Open_Semaphore() 106 | { 107 | // OpenSemaphore()通过信号量名, 获得信号量对象句柄 108 | // 第一个参数表示访问权限, 一般传入SEMAPHORE_ALL_ACCESS 109 | // 第二个参数表示信号量句柄继承性 110 | // 第三个参数表示信号量名称,不同进程可以通过信号量名称名称来确保它们访问同一个信号量 111 | semaphore_empty = OpenSemaphore(SEMAPHORE_ALL_ACCESS,FALSE, "SEMAPHORE_EMPTY"); 112 | semaphore_fill = OpenSemaphore(SEMAPHORE_ALL_ACCESS,FALSE, "SEMAPHORE_FILL"); 113 | semaphore_mutex = OpenSemaphore(SEMAPHORE_ALL_ACCESS,FALSE, "SEMAPHORE_MUTEX"); 114 | } 115 | 116 | void Show_Buffer(struct shared_memory *sm) 117 | { 118 | printf("缓冲池映像为: "); 119 | for (int i = 0; i < Buffer_num; i++){ 120 | printf("|%-15s", sm->Buffer[i]); 121 | // printf("%d",sizeof(sm->Buffer[i])); 122 | } 123 | printf("\n"); 124 | } 125 | 126 | char* Create_Sentence() 127 | { 128 | static char sentence[Buffer_len]; 129 | memset(sentence, 0, sizeof(sentence)); 130 | int num = rand() % 10 + 1; 131 | for (int i = 0; i < num; i++) 132 | sentence[i] = (char)(rand() % 26 + 65); 133 | return sentence; 134 | } 135 | 136 | 137 | void Producer(int Process_ID) 138 | { 139 | // OpenFileMapping 打开文件映射对象, 返回指定文件映射对象的 HANDLE 140 | // FILE_MAP_ALL_ACCESS: 指定对文件映射的访问方式, 需要与CreateFileMapping()中设置的保护属性相匹配 141 | // FALSE: 函数返回的 HANDLE 不能由当前进程启动的新进程继承 142 | // "SHARED_MEMORY": 文件映射对象名称 143 | 144 | // LPVOID 是一个没有类型的指针 145 | // MapViewOfFile(HANDLE hFileMappingObject, DWORD dwDesiredAccess, DWORD dwFileOffsetHigh, DWORD dwFileOffsetLow, DWORD dwNumberOfBytesToMap)把内存中的文件映射到进程的地址空间中 146 | // FileMapping: CreateFileMapping()返回的文件映射对象 HANDLE 147 | // FILE_MAP_ALL_ACCESS: 指定对文件映射的访问方式, 需要与CreateFileMapping()中设置的保护属性相匹配 148 | // MapViewOfFile()函数允许映射全部或部分文件, 在映射时需要指定文件的偏移地址以及待映射的长度 149 | // 文件的偏移地址由参数 dwFileOffsetHigh 和 dwFileOffsetLow 组成的64位值来确定 150 | // dwNumberOfBytesToMap 为0表示映射整个文件 151 | 152 | // ZeroMemory(PVOID Destination, SIZE_T Length) 用0来填充一块内存区域 153 | // PVOID Destination: 指向一块准备用0来填充的内存区域的起始地址 154 | // Length: 准备用0来填充的内存区域的大小,按字节来计算 155 | // ZeroMemory(File, sizeof(struct shared_memory)) 156 | HANDLE FileMapping = OpenFileMapping(FILE_MAP_ALL_ACCESS, FALSE, "SHARED_MEMORY"); 157 | LPVOID File = MapViewOfFile(FileMapping, FILE_MAP_ALL_ACCESS, 0, 0, 0); 158 | struct shared_memory *sm = (struct shared_memory*)(File); 159 | 160 | Open_Semaphore(); 161 | 162 | for(int i = 0 ; i < Producer_repeat ; i++) 163 | { 164 | QueryPerformanceCounter(&Start_Time); 165 | 166 | // WaitForSingleObject() 等待信号量 >= 0, 执行 P 操作 167 | // semaphore_empty , semaphore_mutex等待信号量的句柄 168 | // INFINITE: 允许无限等待 169 | WaitForSingleObject(semaphore_empty, INFINITE); 170 | WaitForSingleObject(semaphore_mutex, INFINITE); 171 | 172 | srand((unsigned int)time(NULL)); 173 | int Time = (rand() % 5 + 1) * 500; 174 | // Sleep 的单位是毫秒 175 | Sleep(Time); 176 | 177 | char* sentence = sm->Buffer[sm->END]; 178 | char* create_sentence = Create_Sentence(); 179 | strncpy(sentence, create_sentence, Buffer_len); 180 | printf("进程%d: 生产者在%d号缓冲区添加 %s\n", Process_ID, sm->END, sm->Buffer[sm->END]); 181 | sm->END = (sm->END + 1) % Buffer_num; 182 | 183 | QueryPerformanceCounter(&End_Time); 184 | QueryPerformanceFrequency(&Frequency); 185 | // QueryPerformanceFrequency 获取机器内部定时器的时钟频率, 以 周期变化次数/微秒 为单位 186 | double Running_Time = (double)(End_Time.QuadPart - Start_Time.QuadPart) * 1000 / Frequency.QuadPart; 187 | printf("时间为: "); 188 | printf("%lf ms\n", Running_Time); 189 | 190 | Show_Buffer(sm); 191 | 192 | // BOOL ReleaseSemaphore( 193 | // HANDLE hSemaphore, //信号量对象的句柄 194 | // LONG lReleaseCount, //信号量对象当前计数将增加的量 195 | // LPLONG lpPreviousCount //用于接收信号量的上一个计数, 如果不需要可设置为NULL 196 | // ); 197 | ReleaseSemaphore(semaphore_fill, 1, NULL); // 执行 v 操作 198 | ReleaseSemaphore(semaphore_mutex, 1, NULL); 199 | } 200 | 201 | Close_Semaphore(); 202 | 203 | // 在完成对映射到进程地址空间区域的文件处理后,需要通过函数UnmapViewOfFile()完成对文件映像的释放 204 | // File: MapViewOfFile()的返回值 205 | UnmapViewOfFile(File); 206 | CloseHandle(FileMapping); 207 | } 208 | 209 | void Consumer(int Process_ID) 210 | { 211 | HANDLE FileMapping = OpenFileMapping(FILE_MAP_ALL_ACCESS,FALSE,"SHARED_MEMORY"); 212 | LPVOID File = MapViewOfFile(FileMapping, FILE_MAP_ALL_ACCESS, 0, 0, 0); 213 | struct shared_memory *sm = (struct shared_memory*)(File); 214 | 215 | Open_Semaphore(); 216 | 217 | for(int i = 0 ; i < Consumer_repeat ; i++) 218 | { 219 | QueryPerformanceCounter(&Start_Time); 220 | 221 | WaitForSingleObject(semaphore_fill, INFINITE); 222 | WaitForSingleObject(semaphore_mutex, INFINITE); 223 | 224 | srand((unsigned int)time(NULL)); 225 | int Time = (rand() % 5 + 1) * 1000; 226 | Sleep(Time); 227 | 228 | char* sentence = sm->Buffer[sm->BEGIN]; 229 | printf("进程%d: 消费者在%d号缓冲区读取 %s\n", Process_ID, sm->BEGIN, sm->Buffer[sm->BEGIN]); 230 | memset(sentence, 0, sizeof(sm->Buffer[sm->BEGIN])); 231 | sm->BEGIN = (sm->BEGIN + 1) % Buffer_num; 232 | 233 | QueryPerformanceCounter(&End_Time); 234 | QueryPerformanceFrequency(&Frequency); 235 | double Running_Time = (double)(End_Time.QuadPart - Start_Time.QuadPart) * 1000 / Frequency.QuadPart; 236 | printf("时间为: "); 237 | printf("%lf ms\n", Running_Time); 238 | 239 | Show_Buffer(sm); 240 | 241 | ReleaseSemaphore(semaphore_empty, 1, NULL); 242 | ReleaseSemaphore(semaphore_mutex, 1, NULL); 243 | } 244 | 245 | Close_Semaphore(); 246 | UnmapViewOfFile(File); 247 | CloseHandle(FileMapping); 248 | } 249 | 250 | // argc是命令行总的参数个数, 默认值为1 251 | // argv[]包含argc个参数, 其中argv[0]是程序的全名,其余参数为命令行后面跟着的用户输入参数 252 | int main(int argc, char *argv[]) 253 | { 254 | if(argc==1) 255 | { 256 | // HANDLE, 本质上是一个 Long 型数据, 是一种指向指针的指针 257 | 258 | // 为什么要设置HANDLE, 直接用指针调用对象不可以吗? 259 | // Windows是一个以虚拟内存为基础的操作系统, 在这种系统环境下, Windows内存管理器经常在内存中来回移动对象, 依此来满足各种应用程序的内存需求 260 | // 对象被移动意味着对象的地址变化了, 为了解决这个问题, Windows操作系统为各应用程序腾出一块内存, 用来专门登记各应用程序对象在内存中的地址变化 261 | // 而各应用程序在外存中的存储位置是不变的, Windows内存管理器在移动对象到内存中后, 把对象的新地址告知 HANDLE 来保存 262 | // 这样我们只需记住 HANDLE 地址就可以间接地知道各个程序对象具体存储在内存中的哪个位置 263 | HANDLE FileMapping = MakeSharedFile(); 264 | 265 | // 创建信号量 266 | Create_Semaphore(); 267 | 268 | printf("进程1,2为生产者进程,进程3,4,5为消费者进程\n"); 269 | for(int i = 1 ; i <= Process_num ; i++) 270 | { 271 | Create_Process(i); 272 | } 273 | 274 | // DWORD WaitForMultipleObjects( // 每个word为2个字节的长度, DWORD双字即为4个字节, 每个字节是8位二进制 275 | // DWORD nCount, // 句柄数量 276 | // CONST HANDLE *lpHandles, // 句柄数组的指针 277 | // BOOL fWaitAll, // 等待类型, 如果为TRUE, 表示除非对象都发出信号, 否则就一直等待下去, 如果FALSE, 表示任何对象发出信号即可 278 | // DWORD dwMilliseconds // 指定要等候的毫秒数, 如果设置为零, 表示立即返回, 如指定常数INFINITE, 则根据实际情况无限等待下去 279 | // ); 280 | WaitForMultipleObjects(Process_num, Process_Handle + 1, TRUE, INFINITE); 281 | 282 | // CloseHandle() 关闭句柄对象 283 | for(int i = 1 ; i <= Process_num ; i++) 284 | { 285 | CloseHandle(Process_Handle[i]); 286 | } 287 | 288 | Close_Semaphore(); 289 | CloseHandle(FileMapping); 290 | printf("运行完成\n"); 291 | } 292 | else 293 | { // atoi() 将字符串类型强制转化为整型 294 | int Process_ID = atoi(argv[1]); 295 | if(Process_ID <= Producer_num) 296 | Producer(Process_ID); 297 | else 298 | Consumer(Process_ID); 299 | } 300 | 301 | return 0; 302 | } 303 | -------------------------------------------------------------------------------- /大三上学期/操作系统/实验二/README.md: -------------------------------------------------------------------------------- 1 | ## 一. 实验名称 2 | 3 | ​ 生产者消费者问题 4 | 5 | 6 | 7 | ## 二. 实验目的 8 | 9 | ​ 巩固操作系统信号量机制的相关知识,在Windows平台上利用进程模拟消费者和生产者,解决生产者消费者问题。 10 | 11 | 12 | 13 | ## 三. 实验原理 14 | 15 | - 生产者消费者问题 16 | 17 | ​ **生产者消费者问题描述了共享固定大小缓冲池的多个“生产者”和“消费者”,在实际运行时会发生的问题**。“生产者”随机等待一定时间,往缓冲池中添加数据,“消费者”随机等待一定时间,从缓冲池中读取数据。若缓冲池已满,“生产者”需等待“消费者”读取数据后再添加,若缓冲池已空,“消费者”需等待“生产者”添加数据后再读取。**在生产者消费者问题中,需要注意**:(1)同一时刻,缓冲池只能被一个“生产者”或“消费者”占用,这是为了避免多个“生产者”或“消费者”同时访问缓冲池造成混乱(2)“生产者”必须等待缓冲池中有空缓冲区时,才能占用空闲缓冲池,往空缓冲区中添加数据,“消费者”必须等待缓冲池中有满缓冲区时,才能占用空闲缓冲池,从满缓冲区中读取数据,这是为了避免“死锁”的发生。比如,某一时刻缓冲池中所有缓冲区均空,且缓冲池空闲,若“消费者”此时占用空闲缓冲池,然后发现缓冲池中没有满缓冲区,于是等待“生产者”往缓冲池中添加数据,尽管此时缓冲池中有空缓冲区,但由于“消费者”占用了缓冲池,导致“生产者”没法往缓冲池中添加数据,于是“生产者”等待“消费者”释放对缓冲池的占用权,二者相互等待,陷入了“死锁”。 18 | 19 | - 信号量 20 | 21 | ​ **信号量常用于进程间的同步与互斥,信号量机制是解决互斥共享资源的同步问题而引入的机制**。信号量的工作机制如下:当有进程申请使用共享资源时,先将当前共享资源的信号量值减1,若信号量值仍大于等于0,则进程可以使用共享资源,若信号量值小于0,则阻塞当前进程,将其加入等待队列。当进程使用完共享资源后,将当前共享资源的信号量值加1,若信号量值小于等于0,则唤醒等待队列中的队头进程,使用共享资源。上述将信号量值减1的操作是信号量的P操作,将信号量值加1的操作是信号量的V操作,信号量的P,V操作均是原语操作,在执行过程中不允许中断。 -------------------------------------------------------------------------------- /大三上学期/操作系统/实验四/Project_4.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | const int buffer_size=1024; 12 | 13 | void Change_Attr(char *file_sor,char *file_tar) 14 | { 15 | struct stat statbuf; 16 | lstat(file_sor,&statbuf); 17 | chmod(file_tar,statbuf.st_mode); 18 | chown(file_tar,statbuf.st_uid,statbuf.st_gid); 19 | if(S_ISLNK(statbuf.st_mode)) 20 | { 21 | struct timeval time_sor[2]; 22 | time_sor[0].tv_sec=statbuf.st_mtime; 23 | time_sor[1].tv_sec=statbuf.st_ctime; 24 | lutimes(file_tar,time_sor); 25 | } 26 | else 27 | { 28 | struct utimbuf utime_sor; 29 | utime_sor.actime=statbuf.st_atime; 30 | utime_sor.modtime=statbuf.st_mtime; 31 | utime(file_tar,&utime_sor); 32 | } 33 | } 34 | 35 | void Copy_File(char *file_sor,char *file_tar) 36 | { 37 | int fd_sor=open(file_sor,O_RDONLY); 38 | int fd_tar=creat(file_tar,O_WRONLY); 39 | unsigned char buff[buffer_size]; 40 | int len; 41 | while((len=read(fd_sor,buff,buffer_size))>0) 42 | { 43 | write(fd_tar,buff,len); 44 | } 45 | Change_Attr(file_sor,file_tar); 46 | 47 | close(fd_sor); 48 | close(fd_tar); 49 | 50 | } 51 | 52 | void Copy_Link(char *lnk_sor,char *lnk_tar) 53 | { 54 | unsigned char path[buffer_size]; 55 | readlink(lnk_sor,path,buffer_size); 56 | symlink(path,lnk_tar); 57 | Change_Attr(lnk_sor,lnk_tar); 58 | } 59 | 60 | void Copy_Dir(char *dir_sor,char *dir_tar) 61 | { 62 | DIR *pd_sor=opendir(dir_sor); 63 | struct dirent *entry_sor=NULL; 64 | struct stat statbuf; 65 | while((entry_sor=readdir(pd_sor))) 66 | { 67 | if(strcmp(entry_sor->d_name,".")==0|| 68 | strcmp(entry_sor->d_name,"..")==0) 69 | continue; 70 | 71 | char ts[buffer_size],tt[buffer_size]; 72 | strcpy(ts,dir_sor); 73 | strcat(ts,"/"); 74 | strcat(ts,entry_sor->d_name); 75 | strcpy(tt,dir_tar); 76 | strcat(tt,"/"); 77 | strcat(tt,entry_sor->d_name); 78 | lstat(ts,&statbuf); 79 | if(S_ISLNK(statbuf.st_mode)) 80 | { 81 | Copy_Link(ts,tt); 82 | } 83 | else if(S_ISDIR(statbuf.st_mode)) 84 | { 85 | 86 | mkdir(tt,statbuf.st_mode); 87 | Copy_Dir(ts,tt); 88 | } 89 | else if(S_ISREG(statbuf.st_mode)) 90 | { 91 | Copy_File(ts,tt); 92 | } 93 | } 94 | Change_Attr(dir_sor,dir_tar); 95 | } 96 | 97 | int main(int argc,char *argv[]) 98 | { 99 | if(argc!=3) 100 | { 101 | printf("error\n"); 102 | return 0; 103 | } 104 | struct stat statbuf; 105 | lstat(argv[1],&statbuf); 106 | 107 | if(S_ISDIR(statbuf.st_mode)) 108 | { 109 | if(opendir(argv[1])==NULL) 110 | { 111 | printf("can't find source\n"); 112 | return 0; 113 | } 114 | if(opendir(argv[2])==NULL) 115 | { 116 | mkdir(argv[2],statbuf.st_mode); 117 | } 118 | Copy_Dir(argv[1],argv[2]); 119 | } 120 | 121 | } -------------------------------------------------------------------------------- /大三上学期/操作系统/实验四/README.md: -------------------------------------------------------------------------------- 1 | ## 一. 实验名称 2 | 3 | ​ 复制文件 4 | 5 | 6 | 7 | ## 二. 实验目的 8 | 9 | ​ 在linux系统下设计并实现目录复制命令,学习使用linux系统有关目录读写和文件读写的API函数,对文件系统有一定的理解。 -------------------------------------------------------------------------------- /大三上学期/算法博弈论/README.md: -------------------------------------------------------------------------------- 1 | # 算法博弈论😊 2 | 3 | - 课程性质:选修课 4 | - 授课形式:英文PPT 5 | - 授课内容:Linear Programming,Nash Equilibrium,Fair Division等 6 | - 课程作业量:2次作业 (英文问题,英文作答) + 1次文献阅读 (要求英文) 7 | - 有无考试:无 8 | - 作者建议:课堂跟不上不要紧,课后看PPT、延河课堂查缺补漏。一个**精致的LaTex模板**很重要👊,不要觉得麻烦,**现在有助于得到可观的分数**,**未来写论文LaTex也是必需品**,何乐而不为。 9 | -------------------------------------------------------------------------------- /大三上学期/算法博弈论/hm1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Z-Luan/BIT-AI/d56358464faa3ad4e0cb1266a2ca536989bffb90/大三上学期/算法博弈论/hm1.pdf -------------------------------------------------------------------------------- /大三上学期/算法博弈论/hm2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Z-Luan/BIT-AI/d56358464faa3ad4e0cb1266a2ca536989bffb90/大三上学期/算法博弈论/hm2.pdf -------------------------------------------------------------------------------- /大三上学期/自然语言处理/README.md: -------------------------------------------------------------------------------- 1 | # 自然语言处理😊 2 | 3 | - 课程性质:必修课 4 | - 授课形式:中文PPT 5 | - 课程作业量:2次课堂小测 + 3次小实验 + 1 次大实验 6 | - 有无考试:无 7 | - 作者建议:通过该课程,同学们能够对NLP领域建立一个较完整的知识体系,**觉醒自己的NLP属性**🌟。作者当年还是一周一次,一次三节 (容易后半段犯困,不得不打打游戏提神)。现在调整为一周两次,一次两节了。同学们能课后通过PPT、延河课堂及时**查缺补漏**,不懂的多和授课老师交流,授课老师会耐心详尽地解答你🌞!对于每次实验,授课老师会**标出给分细则**,同学们根据自己的要求完成实验并撰写实验报告即可。 8 | -------------------------------------------------------------------------------- /大三上学期/自然语言处理/实验一/README.md: -------------------------------------------------------------------------------- 1 | ## 一. 实验名称 2 | 3 | ​ 汉语句子情感极性分析 4 | 5 | 6 | 7 | ## 二. 实验内容 8 | 9 | ​ 实现一个**基于词典和规则的情感分析系统**,实现一个**基于朴素贝叶斯模型的情感分析系统**,实现一个**基于逻辑回归的情感分析系统**。 10 | 11 | 12 | 13 | ## 三. 实验启发 14 | 15 | - 基于词典和规则的情感分析系统,可以**尝试扩充词典或者增加规则**来提升情感分析系统的性能 16 | 17 | - 基于朴素贝叶斯模型的情感分析系统,可以**尝试增加训练样本**来提升情感分析系统的性能 18 | 19 | -------------------------------------------------------------------------------- /大三上学期/自然语言处理/实验三/README.md: -------------------------------------------------------------------------------- 1 | ## 一. 实验名称 2 | 3 | ​ 故事生成 4 | 5 | 6 | 7 | ## 二. 实验内容 8 | 9 | ​ 利用**RNN系列模型,GPT系列模型等完成故事生成**。 10 | 11 | 12 | 13 | ## 三. 实验启发 14 | 15 | - 可以**以字符为单位进行文本生成**,也可以**以单词为单位进行文本生成**,二者生成效果不同 16 | 17 | - **构造训练数据有多种方法**,不同方法训练得到的模型生成效果存在差异 18 | 19 | - 训练数据的**sequence length会影响生成效果** 20 | 21 | - 从**输出分布中抽样**可以避免模型重复生成相同内容 22 | 23 | - **温度参数**会影响生成效果 24 | 25 | - **使用Hugging Face管道应用NLP预训练模型** (以GPT2为例) 26 | 27 | - 搭建GPT2 28 | 29 | ```python 30 | # GPT2LMHeadModel主体为调用GPT2Model类以及一个输出层self.lm_head 31 | # self.lm_head将GPT2Model类最后一个Block输出的hidden_states张量的最后一个维度由768维(config.n_embd)投影为词典大小维度(config.vocab_size)的lm_logits张量 32 | model = GPT2LMHeadModel.from_pretrained("./gpt2") 33 | ``` 34 | 35 | - 构造GPT2输入 36 | 37 | ```python 38 | # 构造分词器 39 | tokenizer = GPT2Tokenizer.from_pretrained("./gpt2") 40 | # GPT2模型的target_sequence与input_sequence相同 41 | input_sequence = tokenizer.encode(text) 42 | ``` 43 | 44 | - 微调GPT2 45 | 46 | ```python 47 | # 微调GPT2模型时不需要再定义损失函数,GPT2模型已经内嵌了交叉熵损失 48 | model.train() 49 | outputs = model(input_sequences, labels = target_sequences) 50 | loss = outputs[0] 51 | ``` 52 | 53 | - GPT2生成 54 | 55 | ```python 56 | model.eval() 57 | with torch.no_grad(): 58 | outputs = model(sequence_tensor) 59 | pred = outputs[0] 60 | pred = pred[0, -1, :] / temperature 61 | # GPT2采用了top-k机制,模型会从概率前k大的token中抽样选取下一个token 62 | pred_index = select_top_k(pred, k=10) 63 | pred_text = tokenizer.decode([pred_index]) 64 | ``` 65 | 66 | -------------------------------------------------------------------------------- /大三上学期/自然语言处理/实验二/README.md: -------------------------------------------------------------------------------- 1 | ## 一. 实验名称 2 | 3 | ​ 基于多种编码器的文本理解 4 | 5 | 6 | 7 | ## 二. 实验内容 8 | 9 | ​ 利用**Bi-LSTM,Transformer,Bert等模型完成文本分类**。 10 | 11 | 12 | 13 | ## 三. 实验启发 14 | 15 | - 对**预训练模型微调**时,**学习率和初始参数应该设置地小一些**,避免预训练模型不收敛 16 | 17 | - **调用预训练词向量实现词嵌入**的两种方式 18 | 19 | ```python 20 | ## 方式一 ## 21 | # vocab_size:词汇表大小 22 | # ninp:词嵌入维度 23 | # embedding_weight:预训练词向量 24 | self.embed = nn.Embedding(vocab_size, ninp) 25 | self.embed.weight.data.copy_(embedding_weight) 26 | self.embed.weight.requires_grad = True # 是否进行Freeze 27 | 28 | ## 方式二 ## 29 | # embedding_weight:预训练词向量 30 | self.embed = nn.Embedding.from_pretrained(embedding_weight, freeze=False) 31 | ``` 32 | 33 | - **使用Hugging Face管道应用NLP预训练模型** (以Bert为例) 34 | 35 | - 搭建Bert模块 36 | 37 | ```python 38 | # BERT_PATH:从Hugging Face下载下来的预训练模型参数存储路径,也可以用预训练模型名称替换,进行在线下载 39 | self.bert_config = BertConfig.from_pretrained('bert-base-uncased') 40 | self.bert = BertModel.from_pretrained(BERT_PATH, config = self.bert_config) 41 | ``` 42 | 43 | - Bert模块输入输出 44 | 45 | ```python 46 | # input_ids:token id 47 | # attention_mask:区分哪些token是padding的 避免模型attention到padding token 48 | # token_type_ids:区分不同token sequence 49 | # bert_output[0] 包含 sequence 中所有 token 的 embedding 向量 50 | # bert_output[1] 包含 [CLS] token 的 embedding 向量 51 | # self.bert 的输出类型是 BaseModelOutputWithPoolingAndCrossAttentions 52 | bert_output = self.bert(input_ids = input_ids, attention_mask = attention_mask, token_type_ids = token_type_ids) 53 | ``` 54 | 55 | - 构造Bert模块输入 56 | 57 | ```python 58 | # 构造分词器 59 | tokenizer = BertTokenizer.from_pretrained('bert-base-uncased') 60 | # text:待处理文本 61 | # add_special_tokens:是否添加[CLS]等special token 62 | # padding:是否padding待处理文本 63 | # truncation:当待处理文本长度超过阈值时,是否进行截断处理 64 | # max_length:待处理文本长度阈值 65 | token = tokenizer(text, add_special_tokens = True, padding = 'max_length', truncation = True, max_length = 150) 66 | input_ids = token['input_ids'] 67 | token_type_ids = token['token_type_ids'] 68 | attention_mask = token['attention_mask'] 69 | ``` 70 | 71 | - 电脑资源不够的话,AutoDL、腾讯云等是时候登场了🌝 72 | 73 | 74 | 75 | ## 四. 实验参考资料 76 | 77 | - LSTM 反向传播公式推导 78 | 79 | [LSTM参数更新推导 | 记录思考 (ilewseu.github.io)](https://ilewseu.github.io/2018/01/06/LSTM参数更新推导/) 80 | 81 | - Transformer Positional Encoding 原理与推导 82 | 83 | [一文教你彻底理解Transformer中Positional Encoding - 知乎 (zhihu.com)](https://zhuanlan.zhihu.com/p/338592312) 84 | 85 | [深度学习入门--Transformer中的Positional Encoding详解_class positionalencoding(nn.module):_CuddleSabe的博客-CSDN博客](https://blog.csdn.net/qq_15534667/article/details/116140592) 86 | 87 | - 加载模型预训练参数 88 | 89 | [PyTorch:如何加载预训练参数?_torch.load载入训练参数-CSDN博客](https://blog.csdn.net/fhcfhc1112/article/details/95862915) 90 | 91 | 92 | -------------------------------------------------------------------------------- /大三上学期/计算机组成与原理/README.md: -------------------------------------------------------------------------------- 1 | # 计算机组成与原理😊 2 | 3 | - 课程性质:必修课 4 | - 授课形式:中文PPT 5 | - 课程作业量:若干次问卷星选择题问卷 + 1次补码加减交替除法器实验 (已开源[32bit-Divider](https://github.com/Z-Luan/32bit-Divider)) 6 | - 有无考试:有 7 | - 作者建议:好好复习!!!2020级平均分73💔,**分差很大**。 8 | -------------------------------------------------------------------------------- /大三上学期/计算机视觉/README.md: -------------------------------------------------------------------------------- 1 | # 计算机视觉😊 2 | 3 | - 课程性质:必修课 4 | - 授课形式:英文PPT 5 | - 课程作业量:3次小实验 + 1次大实验 (大实验报告模板由授课老师指定,大实验有现场答辩,答辩限制时长,已开源[OpticalFlow](https://github.com/Z-Luan/OpticalFlow-LucasKanade-Farneback-Detection-Tracking)) 6 | - 有无考试:有,半开卷考试,允许自带A4纸 (字体的大小决定了开卷的程度😛) 7 | - 作者建议:针对每次小实验,如果想得高分的话,建议实现两份代码 ,一份手写实现算法,一份调库实现算法。不论是小实验,或是大实验,**创新点很重要👍**!!!**需要融入自己的思考与改进**!!!**改进的Idea可以来自于当前算法的最新研究、工程实践,也可以来自于自己在算法学习过程中发现的算法缺陷**。 8 | -------------------------------------------------------------------------------- /大三上学期/计算机视觉/实验一/README.md: -------------------------------------------------------------------------------- 1 | ## 一. 实验名称 2 | 3 | ​ Blending based on Laplacian pyramid 4 | 5 | 6 | 7 | ## 二. 实验内容 8 | 9 | ​ 通过**拉普拉斯金字塔实现图像融合**,掌握拉普拉斯金字塔的相关知识,探讨通过拉普拉斯金字塔实现图像融合的思路与优势。 10 | 11 | 12 | 13 | ## 三. 实验启发 14 | 15 | - 设置对比实验,**探究基于不同层数拉普拉斯金字塔实现图像融合**的效果优劣 16 | - 对于上采样,**尝试提出一种新的计算方式**,可以直接计算获得一个合理的值来代替插入零值行和零值列然后进行滤波的操作 -------------------------------------------------------------------------------- /大三上学期/计算机视觉/实验三/README.md: -------------------------------------------------------------------------------- 1 | ## 一. 实验名称 2 | 3 | ​ 相关滤波跟踪(CFT) 4 | 5 | 6 | 7 | ## 二. 实验内容 8 | 9 | ​ 通过提取图像特征,**运用相关滤波器进行目标跟踪**,掌握相关滤波跟踪的对应知识,探讨目标跟踪的实现思路。 10 | 11 | 12 | 13 | ## 三. 实验启发 14 | 15 | - 设置对比实验,**探究不同相关滤波跟踪算法**的优劣 16 | - **尝试改进算法**,如对于**MOSSE算法**,**可以利用上下文信息来辅助训练滤波模板**,实时更正误差,提升抗漂移能力,对于**KCF算法**,由于其提供了一个利用多维度特征训练滤波模板的方式,因此可以**选择不同的特征(像素特征,HOG特征,深度特征等)训练得到不同的滤波模板**,对比目标检测的性能 17 | - 抛出一些**有意思的问题**,为什么一些相关滤波跟踪算法对快速移动目标的检测效果较差?能否用SIFT特征进行相关滤波跟踪? -------------------------------------------------------------------------------- /大三上学期/计算机视觉/实验二/README.md: -------------------------------------------------------------------------------- 1 | ## 一. 实验名称 2 | 3 | ​ 尺度不变特征转换(SIFT) 4 | 5 | 6 | 7 | ## 二. 实验内容 8 | 9 | ​ 通过**尺度不变特征转换算法(SIFT)提取图像特征**,掌握SIFT算法的相关知识,探讨图像特征提取的思路。 10 | 11 | 12 | 13 | ## 三. 实验启发 14 | 15 | - 设置对比实验,**探究SIFT算法对旋转、尺度缩放、亮度变化是否能保持不变性,对噪声、遮挡程度不同是否能保持一定程度的稳定性** 16 | - 设置对比实验,**探究SIFT算法与其他图像特征提取算法**的优劣 17 | - **尝试通过SIFT实现全景图拼接** 18 | - **尝试改进SIFT算法**,使特征点描述子具有色彩信息 19 | 20 | -------------------------------------------------------------------------------- /大三上学期/语音识别与合成/README.md: -------------------------------------------------------------------------------- 1 | # 语音识别与合成😊 2 | 3 | - 课程性质:选修课 4 | - 授课PPT:中文 5 | - 授课内容:speech recognition,speech synthesis等 6 | - 课程作业量:一次大作业 (完成一个指定项目或自主选择项目,已开源[Transformer-TTS](https://github.com/Z-Luan/Transformer-TTS)) 7 | - 有无考试:无 8 | - 作者建议:可以领取HW代金券兑换计算资源,但意味着要额外完成基于MindSpore框架的实验😚(**不限内容**)。MindSpore框架刚入手还是比较不习惯的,可能花费较长时间。作者在CSDN社区开源了若干个**基于MindSpore框架的实验** (包含**详细代码介绍**,**适合小白体质**,入门不是问题!) [传送门](https://blog.csdn.net/shsbdbsj?type=blog)。课程压力较小😍,可以了解语音识别与合成领域的入门知识,**分数也很可观**。 9 | 10 | -------------------------------------------------------------------------------- /实验报告模板/LaTeXTemplate/Figures/swallow.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Z-Luan/BIT-AI/d56358464faa3ad4e0cb1266a2ca536989bffb90/实验报告模板/LaTeXTemplate/Figures/swallow.jpg -------------------------------------------------------------------------------- /实验报告模板/LaTeXTemplate/luftballons.pl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl 2 | 3 | use strict; 4 | use warnings; 5 | 6 | for (1..99) { print $_." Luftballons\n"; } 7 | 8 | # This is a commented line 9 | 10 | my $string = "Hello World!"; 11 | 12 | print $string."\n\n"; 13 | 14 | $string =~ s/Hello/Goodbye Cruel/; 15 | 16 | print $string."\n\n"; 17 | 18 | finale(); 19 | 20 | exit; 21 | 22 | sub finale { print "Fin.\n"; } -------------------------------------------------------------------------------- /实验报告模板/LaTeXTemplate/main.tex: -------------------------------------------------------------------------------- 1 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2 | % Wenneker Assignment 3 | % LaTeX Template 4 | % Version 2.0 (12/1/2019) 5 | % 6 | % This template originates from: 7 | % http://www.LaTeXTemplates.com 8 | % 9 | % Authors: 10 | % Vel (vel@LaTeXTemplates.com) 11 | % Frits Wenneker 12 | % 13 | % License: 14 | % CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/) 15 | % 16 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 17 | 18 | %---------------------------------------------------------------------------------------- 19 | % PACKAGES AND OTHER DOCUMENT CONFIGURATIONS 20 | %---------------------------------------------------------------------------------------- 21 | 22 | \documentclass[11pt]{scrartcl} % Font size 23 | 24 | \input{structure.tex} % Include the file specifying the document structure and custom commands 25 | 26 | %---------------------------------------------------------------------------------------- 27 | % TITLE SECTION 28 | %---------------------------------------------------------------------------------------- 29 | 30 | \title{ 31 | \normalfont\normalsize 32 | \textsc{University, School or Department Name}\\ % Your university, school and/or department name(s) 33 | \vspace{25pt} % Whitespace 34 | \rule{\linewidth}{0.5pt}\\ % Thin top horizontal rule 35 | \vspace{20pt} % Whitespace 36 | {\huge Assignment Title}\\ % The assignment title 37 | \vspace{12pt} % Whitespace 38 | \rule{\linewidth}{2pt}\\ % Thick bottom horizontal rule 39 | \vspace{12pt} % Whitespace 40 | } 41 | 42 | \author{\LARGE Arthur Morgan} % Your name 43 | 44 | \date{\normalsize\today} % Today's date (\today) or a custom date 45 | 46 | \begin{document} 47 | 48 | \maketitle % Print the title 49 | 50 | %---------------------------------------------------------------------------------------- 51 | % FIGURE EXAMPLE 52 | %---------------------------------------------------------------------------------------- 53 | 54 | \section{Image Interpretation} 55 | 56 | \begin{figure}[h] % [h] forces the figure to be output where it is defined in the code (it suppresses floating) 57 | \centering 58 | \includegraphics[width=0.5\columnwidth]{swallow.jpg} % Example image 59 | \caption{European swallow.} 60 | \end{figure} 61 | 62 | %------------------------------------------------ 63 | 64 | \subsection{What is the airspeed velocity of an unladen swallow?} 65 | 66 | While this question leaves out the crucial element of the geographic origin of the swallow, according to Jonathan Corum, an unladen European swallow maintains a cruising airspeed velocity of \textbf{11 metres per second}, or \textbf{24 miles an hour}. The velocity of the corresponding African swallows requires further research as kinematic data is severely lacking for these species. 67 | 68 | %---------------------------------------------------------------------------------------- 69 | % TEXT EXAMPLE 70 | %---------------------------------------------------------------------------------------- 71 | 72 | \section{Understanding Text} 73 | 74 | \subsection{How much wood would a woodchuck chuck if a woodchuck could chuck wood?} 75 | 76 | %------------------------------------------------ 77 | 78 | \subsubsection{Suppose ``chuck" implies throwing.} 79 | 80 | According to the Associated Press (1988), a New York Fish and Wildlife technician named Richard Thomas calculated the volume of dirt in a typical 25--30 foot (7.6--9.1 m) long woodchuck burrow and had determined that if the woodchuck had moved an equivalent volume of wood, it could move ``about \textbf{700 pounds (320 kg)} on a good day, with the wind at his back". 81 | 82 | %------------------------------------------------ 83 | 84 | \subsubsection{Suppose ``chuck" implies vomiting.} 85 | 86 | A woodchuck can ingest 361.92 cm\textsuperscript{3} (22.09 cu in) of wood per day. Assuming immediate expulsion on ingestion with a 5\% retainment rate, a woodchuck could chuck \textbf{343.82 cm\textsuperscript{3}} of wood per day. 87 | 88 | %------------------------------------------------ 89 | 90 | \paragraph{Bonus: suppose there is no woodchuck.} 91 | 92 | Fusce varius orci ac magna dapibus porttitor. In tempor leo a neque bibendum sollicitudin. Nulla pretium fermentum nisi, eget sodales magna facilisis eu. Praesent aliquet nulla ut bibendum lacinia. Donec vel mauris vulputate, commodo ligula ut, egestas orci. Suspendisse commodo odio sed hendrerit lobortis. Donec finibus eros erat, vel ornare enim mattis et. 93 | 94 | %---------------------------------------------------------------------------------------- 95 | % EQUATION EXAMPLES 96 | %---------------------------------------------------------------------------------------- 97 | 98 | \section{Interpreting Equations} 99 | 100 | \subsection{Identify the author of Equation \ref{eq:bayes} below and briefly describe it in English.} 101 | 102 | \begin{align} 103 | \label{eq:bayes} 104 | \begin{split} 105 | P(A|B) = \frac{P(B|A)P(A)}{P(B)} 106 | \end{split} 107 | \end{align} 108 | 109 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent porttitor arcu luctus, imperdiet urna iaculis, mattis eros. Pellentesque iaculis odio vel nisl ullamcorper, nec faucibus ipsum molestie. Sed dictum nisl non aliquet porttitor. Etiam vulputate arcu dignissim, finibus sem et, viverra nisl. Aenean luctus congue massa, ut laoreet metus ornare in. Nunc fermentum nisi imperdiet lectus tincidunt vestibulum at ac elit. Nulla mattis nisl eu malesuada suscipit. 110 | 111 | %------------------------------------------------ 112 | 113 | \subsection{Try to make sense of some more equations.} 114 | 115 | \begin{align} 116 | \begin{split} 117 | (x+y)^3 &= (x+y)^2(x+y)\\ 118 | &=(x^2+2xy+y^2)(x+y)\\ 119 | &=(x^3+2x^2y+xy^2) + (x^2y+2xy^2+y^3)\\ 120 | &=x^3+3x^2y+3xy^2+y^3 121 | \end{split} 122 | \end{align} 123 | 124 | Lorem ipsum dolor sit amet, consectetuer adipiscing elit. 125 | \begin{align} 126 | A = 127 | \begin{bmatrix} 128 | A_{11} & A_{21} \\ 129 | A_{21} & A_{22} 130 | \end{bmatrix} 131 | \end{align} 132 | Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. 133 | 134 | %---------------------------------------------------------------------------------------- 135 | % LIST EXAMPLES 136 | %---------------------------------------------------------------------------------------- 137 | 138 | \section{Viewing Lists} 139 | 140 | \subsection{Bullet Point List} 141 | 142 | \begin{itemize} 143 | \item First item in a list 144 | \begin{itemize} 145 | \item First item in a list 146 | \begin{itemize} 147 | \item First item in a list 148 | \item Second item in a list 149 | \end{itemize} 150 | \item Second item in a list 151 | \end{itemize} 152 | \item Second item in a list 153 | \end{itemize} 154 | 155 | %------------------------------------------------ 156 | 157 | \subsection{Numbered List} 158 | 159 | \begin{enumerate} 160 | \item First item in a list 161 | \item Second item in a list 162 | \item Third item in a list 163 | \end{enumerate} 164 | 165 | %---------------------------------------------------------------------------------------- 166 | % TABLE EXAMPLE 167 | %---------------------------------------------------------------------------------------- 168 | 169 | \section{Interpreting a Table} 170 | 171 | \begin{table}[h] % [h] forces the table to be output where it is defined in the code (it suppresses floating) 172 | \centering % Centre the table 173 | \begin{tabular}{l l l} 174 | \toprule 175 | \textit{Per 50g} & \textbf{Pork} & \textbf{Soy} \\ 176 | \midrule 177 | Energy & 760kJ & 538kJ\\ 178 | Protein & 7.0g & 9.3g\\ 179 | Carbohydrate & 0.0g & 4.9g\\ 180 | Fat & 16.8g & 9.1g\\ 181 | Sodium & 0.4g & 0.4g\\ 182 | Fibre & 0.0g & 1.4g\\ 183 | \bottomrule 184 | \end{tabular} 185 | \caption{Sausage nutrition.} 186 | \end{table} 187 | 188 | %------------------------------------------------ 189 | 190 | \subsection{The table above shows the nutritional consistencies of two sausage types. Explain their relative differences given what you know about daily adult nutritional recommendations.} 191 | 192 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent porttitor arcu luctus, imperdiet urna iaculis, mattis eros. Pellentesque iaculis odio vel nisl ullamcorper, nec faucibus ipsum molestie. Sed dictum nisl non aliquet porttitor. Etiam vulputate arcu dignissim, finibus sem et, viverra nisl. Aenean luctus congue massa, ut laoreet metus ornare in. Nunc fermentum nisi imperdiet lectus tincidunt vestibulum at ac elit. Nulla mattis nisl eu malesuada suscipit. 193 | 194 | %---------------------------------------------------------------------------------------- 195 | % CODE LISTING EXAMPLE 196 | %---------------------------------------------------------------------------------------- 197 | 198 | \section{Reading a Code Listing} 199 | 200 | \lstinputlisting[ 201 | caption=Luftballons Perl Script., % Caption above the listing 202 | label=lst:luftballons, % Label for referencing this listing 203 | language=Perl, % Use Perl functions/syntax highlighting 204 | frame=single, % Frame around the code listing 205 | showstringspaces=false, % Don't put marks in string spaces 206 | numbers=left, % Line numbers on left 207 | numberstyle=\tiny, % Line numbers styling 208 | ]{luftballons.pl} 209 | 210 | %------------------------------------------------ 211 | 212 | \subsection{How many luftballons will be output by the Listing \ref{lst:luftballons} above?} 213 | 214 | Aliquam arcu turpis, ultrices sed luctus ac, vehicula id metus. Morbi eu feugiat velit, et tempus augue. Proin ac mattis tortor. Donec tincidunt, ante rhoncus luctus semper, arcu lorem lobortis justo, nec convallis ante quam quis lectus. Aenean tincidunt sodales massa, et hendrerit tellus mattis ac. Sed non pretium nibh. Donec cursus maximus luctus. Vivamus lobortis eros et massa porta porttitor. 215 | 216 | %------------------------------------------------ 217 | 218 | \subsection{Identify the regular expression in Listing \ref{lst:luftballons} and explain how it relates to the anti-war sentiments found in the rest of the script.} 219 | 220 | Fusce varius orci ac magna dapibus porttitor. In tempor leo a neque bibendum sollicitudin. Nulla pretium fermentum nisi, eget sodales magna facilisis eu. Praesent aliquet nulla ut bibendum lacinia. Donec vel mauris vulputate, commodo ligula ut, egestas orci. Suspendisse commodo odio sed hendrerit lobortis. Donec finibus eros erat, vel ornare enim mattis et. 221 | 222 | %---------------------------------------------------------------------------------------- 223 | 224 | \end{document} 225 | -------------------------------------------------------------------------------- /实验报告模板/LaTeXTemplate/structure.tex: -------------------------------------------------------------------------------- 1 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2 | % Wenneker Assignment 3 | % Structure Specification File 4 | % Version 2.0 (12/1/2019) 5 | % 6 | % This template originates from: 7 | % http://www.LaTeXTemplates.com 8 | % 9 | % Authors: 10 | % Vel (vel@LaTeXTemplates.com) 11 | % Frits Wenneker 12 | % 13 | % License: 14 | % CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/) 15 | % 16 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 17 | 18 | %---------------------------------------------------------------------------------------- 19 | % PACKAGES AND OTHER DOCUMENT CONFIGURATIONS 20 | %---------------------------------------------------------------------------------------- 21 | 22 | \usepackage{amsmath, amsfonts, amsthm} % Math packages 23 | 24 | \usepackage{listings} % Code listings, with syntax highlighting 25 | 26 | \usepackage[english]{babel} % English language hyphenation 27 | 28 | \usepackage{graphicx} % Required for inserting images 29 | \graphicspath{{Figures/}{./}} % Specifies where to look for included images (trailing slash required) 30 | 31 | \usepackage{booktabs} % Required for better horizontal rules in tables 32 | 33 | \numberwithin{equation}{section} % Number equations within sections (i.e. 1.1, 1.2, 2.1, 2.2 instead of 1, 2, 3, 4) 34 | \numberwithin{figure}{section} % Number figures within sections (i.e. 1.1, 1.2, 2.1, 2.2 instead of 1, 2, 3, 4) 35 | \numberwithin{table}{section} % Number tables within sections (i.e. 1.1, 1.2, 2.1, 2.2 instead of 1, 2, 3, 4) 36 | 37 | \setlength\parindent{0pt} % Removes all indentation from paragraphs 38 | 39 | \usepackage{enumitem} % Required for list customisation 40 | \setlist{noitemsep} % No spacing between list items 41 | 42 | %---------------------------------------------------------------------------------------- 43 | % DOCUMENT MARGINS 44 | %---------------------------------------------------------------------------------------- 45 | 46 | \usepackage{geometry} % Required for adjusting page dimensions and margins 47 | 48 | \geometry{ 49 | paper=a4paper, % Paper size, change to letterpaper for US letter size 50 | top=2.5cm, % Top margin 51 | bottom=3cm, % Bottom margin 52 | left=3cm, % Left margin 53 | right=3cm, % Right margin 54 | headheight=0.75cm, % Header height 55 | footskip=1.5cm, % Space from the bottom margin to the baseline of the footer 56 | headsep=0.75cm, % Space from the top margin to the baseline of the header 57 | %showframe, % Uncomment to show how the type block is set on the page 58 | } 59 | 60 | %---------------------------------------------------------------------------------------- 61 | % FONTS 62 | %---------------------------------------------------------------------------------------- 63 | 64 | \usepackage[utf8]{inputenc} % Required for inputting international characters 65 | \usepackage[T1]{fontenc} % Use 8-bit encoding 66 | 67 | \usepackage{fourier} % Use the Adobe Utopia font for the document 68 | 69 | %---------------------------------------------------------------------------------------- 70 | % SECTION TITLES 71 | %---------------------------------------------------------------------------------------- 72 | 73 | \usepackage{sectsty} % Allows customising section commands 74 | 75 | \sectionfont{\vspace{6pt}\centering\normalfont\scshape} % \section{} styling 76 | \subsectionfont{\normalfont\bfseries} % \subsection{} styling 77 | \subsubsectionfont{\normalfont\itshape} % \subsubsection{} styling 78 | \paragraphfont{\normalfont\scshape} % \paragraph{} styling 79 | 80 | %---------------------------------------------------------------------------------------- 81 | % HEADERS AND FOOTERS 82 | %---------------------------------------------------------------------------------------- 83 | 84 | \usepackage{scrlayer-scrpage} % Required for customising headers and footers 85 | 86 | \ohead*{} % Right header 87 | \ihead*{} % Left header 88 | \chead*{} % Centre header 89 | 90 | \ofoot*{} % Right footer 91 | \ifoot*{} % Left footer 92 | \cfoot*{\pagemark} % Centre footer 93 | -------------------------------------------------------------------------------- /实验报告模板/README.md: -------------------------------------------------------------------------------- 1 | ## 实验报告撰写步骤 2 | 3 | - 实验名称 4 | - 实验目的 5 | - 实验环境 (操作系统,服务器,集成开发环境,编程语言等) 6 | - 实验原理 (**介绍模型算法的相关知识**,包括原理推导、公式讲解等,熟练掌握知识能写很多,熟练运用外部工具能💦很多) 7 | - 实验内容 (**⭐按照代码流程解释代码含义**,代码流程如数据加载、数据预处理、超参数定义、构造网络模型、模型训练、模型验证、可视化训练过程。**在数据预处理时**,可以从预处理的效果进行分析,如归一化处理可以加快网络模型的收敛速度。**在超参数定义时**,可以从超参数数值设定的大小进行分析,如降低学习率,可以防止预训练模型微调时振荡不收敛。**在构造网络模型时**,可以从不同网络层的作用进行分析,如Dropout层可以防止过拟合。⭐**按照工作流程解释代码含义**,工作流程如第一阶段运用👉balabala👈模型进行实验,第二阶段在👉balabala👈模型的基础上进行改进,添加了👉balabala👈模块进行实验。) 8 | - 实验结果分析 (一定不要只粘贴结果❌,注意分析 **1. 为什么有这样的结果?** 如在做对比实验、消融实验时,由于不同算法的原理实现不同 or 不同的网络模型结构,👉balabala👈,导致了不同结果的产生 **2. 这样的结果表达了什么?** 如训练集准确率不断上升,验证集准确率趋于不变甚至降低,说明训练过拟合,可以**附上图表**进行直观说明) 9 | - 感想 10 | - 附录 (参考文献,参考资料等) 11 | --------------------------------------------------------------------------------