<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[flex_university的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/flex_university</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; flex_university]]></copyright><item><title><![CDATA[python 命名空间与作用域 可变与不可变对象 闭包]]></title><link>https://blog.youkuaiyun.com/flex_university/article/details/147003237</link><guid>https://blog.youkuaiyun.com/flex_university/article/details/147003237</guid><author>flex_university</author><pubDate>Fri, 04 Apr 2025 21:32:34 +0800</pubDate><description><![CDATA[闭包：在一些语言中，在函数中可以（嵌套）定义另一个函数时，如果内部的函数引用了外部的函数的变量，则可能产生闭包。在给定函数被多次调用的过程中，这些私有变量能够保持其持久性。Python 中只有模块（module），类（class）以及函数（def、lambda）才会引入新的作用域，其它的代码块（如 if/elif/else/、try/except、for/while等）是不会引入新的作用域的。所以相同值的两个对象也是不同地址的两个对象，也因此，对对象如列表进行操作，不会影响这个列表的地址，只会对地址扩充。]]></description><category></category></item><item><title><![CDATA[python装饰器]]></title><link>https://blog.youkuaiyun.com/flex_university/article/details/146976361</link><guid>https://blog.youkuaiyun.com/flex_university/article/details/146976361</guid><author>flex_university</author><pubDate>Thu, 03 Apr 2025 11:02:47 +0800</pubDate><description><![CDATA[，即对扩展开放，对修改封闭。允许在不修改原函数或类代码的情况下，通过包装（装饰）的方式动态添加新功能，而。实现，通过一个函数或类传递原函数，而返回或提供添加了拓展功能的新函数调用。装饰器语法糖用**@**标识。这种设计避免了因直接修改原代码引入的风险，提升了代码的可维护性。，而不改变函数调用方式和参数传递。顾名思义，可以为现有的对象添加新的小功能，实现。装饰器的使用体现了开放封闭原则（]]></description><category></category></item><item><title><![CDATA[qlib量化：工作流管理]]></title><link>https://blog.youkuaiyun.com/flex_university/article/details/146315728</link><guid>https://blog.youkuaiyun.com/flex_university/article/details/146315728</guid><author>flex_university</author><pubDate>Tue, 18 Mar 2025 11:21:14 +0800</pubDate><description><![CDATA[qlib中由接口自动运行由配置文件（yaml）定义的。]]></description><category></category></item><item><title><![CDATA[yaml & python 进行文件配置]]></title><link>https://blog.youkuaiyun.com/flex_university/article/details/146314611</link><guid>https://blog.youkuaiyun.com/flex_university/article/details/146314611</guid><author>flex_university</author><pubDate>Mon, 17 Mar 2025 14:57:08 +0800</pubDate><description><![CDATA[日期与时间必须使用ISO 8601格式，时间和日期之间使用T连接，最后使用+代表时区，即2018-02-17T15:02:31+08:00。]]></description><category></category></item><item><title><![CDATA[python fire 库与 sys.argv 处理命令行参数]]></title><link>https://blog.youkuaiyun.com/flex_university/article/details/146139162</link><guid>https://blog.youkuaiyun.com/flex_university/article/details/146139162</guid><author>flex_university</author><pubDate>Sun, 09 Mar 2025 21:47:00 +0800</pubDate><description><![CDATA[使用fire库的程序文件可以参照以下范式，用if __name__ == "__main__"包含fire.Fire()来供命令行调用，并传参给getdata。在本例中import sys后，sys.argv列表解析命令行为，可以看见sys.argv[0]是脚本名称或路径，后面分别是位置参数和关键字参数相关信息。其中get_data.py文件如下，GetData是导入的类对象，qlib_data是GetData中的函数。相比于fire库进行直接解析为类中函数对象的调用形式，sys.argv相对没那么简洁。]]></description><category></category></item><item><title><![CDATA[conda list ＜package＞ 指令输出的build和channel含义]]></title><link>https://blog.youkuaiyun.com/flex_university/article/details/146130422</link><guid>https://blog.youkuaiyun.com/flex_university/article/details/146130422</guid><author>flex_university</author><pubDate>Sun, 09 Mar 2025 12:29:16 +0800</pubDate><description><![CDATA[即该包是从哪个 Anaconda 仓库（频道）安装的。Conda 包通过不同的频道进行管理和分发的。，即该包的编译、构建、发布的具体版本。通常包含一些额外的标识，帮助你区分同一包的不同版本。Build：表示当前安装包的。]]></description><category></category></item><item><title><![CDATA[conda 配置新环境时package will be install 和 package will be download 的区别]]></title><link>https://blog.youkuaiyun.com/flex_university/article/details/146124247</link><guid>https://blog.youkuaiyun.com/flex_university/article/details/146124247</guid><author>flex_university</author><pubDate>Sat, 08 Mar 2025 22:41:04 +0800</pubDate><description><![CDATA[这一类显示的是已经下载到本地并准备安装的软件包。安装过程包括将包的内容解压、配置、和依赖关系的处理（例如将可执行文件、库文件、配置文件等放置到合适的目录中）。安装是指将下载好的包放入新的环境中，确保它们能被正确使用。）中，以便后续安装使用。简单来说，下载是指将软件包从远程仓库传输到本地磁盘，准备好进行安装。这些包会被下载到本地缓存目录（通常是。仓库或其他指定的源下载的软件包。命令来查看 Conda 的配置。处于首位的即使软件包缓存位置。：这一类显示的是需要从。]]></description><category></category></item><item><title><![CDATA[Matplotlib入门笔记]]></title><link>https://blog.youkuaiyun.com/flex_university/article/details/141824430</link><guid>https://blog.youkuaiyun.com/flex_university/article/details/141824430</guid><author>flex_university</author><pubDate>Wed, 04 Sep 2024 19:23:34 +0800</pubDate><description><![CDATA[同类有很多外来的画图包（基于R的ggplot2，一些从JavaScript前端移植到py的包），他们在py中相对独立。4、Artist：整个（输出）图像的所有内容，每个都是一个artist，即一个artist  python对象。最后，请直接面向目标学习，matplotlib等包，需要在实战中摸索，抓住主线，而不是系统性从头到尾的学习。2、改变全局参数（如设置支持中文的字体，图片像素、背景、默认大小尺寸等。1、导入包，设置风格（default、ggplot等风格）3、画图代码的函数化（以提高复用能力）]]></description><category></category></item><item><title><![CDATA[win10 / win11 永久暂停自动更新方法]]></title><link>https://blog.youkuaiyun.com/flex_university/article/details/141216921</link><guid>https://blog.youkuaiyun.com/flex_university/article/details/141216921</guid><author>flex_university</author><pubDate>Thu, 15 Aug 2024 11:08:33 +0800</pubDate><description><![CDATA[选择延长500周，估计你电脑的寿命差不多就够了，当然你可以多选一点。之后你会看到上方更新时间变得非常久，如果你想真的几百年不更新（前提你电脑还在），就把注册表数值改大一点即可。然后在对话框右测，右键->单击新建Dword（32位值）。双击新建的注册表，就新的你刚刚创建的那个文件，会弹出如下对话框，进行修改，注意，最好跟上图改的一模一样！打开运行窗口输入regedit打开注册表。step2：按照以下顺序打开相应文件夹。现在进入你电脑Windows的设置中。]]></description><category></category></item><item><title><![CDATA[Missing-semester-hw shell]]></title><link>https://blog.youkuaiyun.com/flex_university/article/details/141202411</link><guid>https://blog.youkuaiyun.com/flex_university/article/details/141202411</guid><author>flex_university</author><pubDate>Wed, 14 Aug 2024 23:19:37 +0800</pubDate><description><![CDATA[chmod就是用来修改文件访问权限的。这是因为linux为r/w/x分配了各自的数字4/2/1，当组合不同时，数字之和不会重复，故可以用一个三位数来实现便捷权限修改。当然可以用字母参数来实现，是一种强大的文本搜索工具，它能使用正则表达式搜索文本，并把匹配的行打印出来。用于过滤/搜索的特定字符。可使用正则表达式能多种命令配合使用，使用上十分灵活。r/w/x代表读、写和执行。ls -l查询后的10位，分为1/3/3/3。第一个表示文件属性，后面三组每组三个字符代表所有者、群组用户、其他用户对这个文件的权限。]]></description><category></category></item><item><title><![CDATA[VsCode进行html编辑时，！无法唤出html基本框架补全的问题]]></title><link>https://blog.youkuaiyun.com/flex_university/article/details/141182477</link><guid>https://blog.youkuaiyun.com/flex_university/article/details/141182477</guid><author>flex_university</author><pubDate>Wed, 14 Aug 2024 09:50:59 +0800</pubDate><description><![CDATA[新版本vscode中需要输入“html:5”+tab进行补全。]]></description><category></category></item><item><title><![CDATA[jupyter notebook 魔术指令执行报错 No module named ‘ipympl‘]]></title><link>https://blog.youkuaiyun.com/flex_university/article/details/140656799</link><guid>https://blog.youkuaiyun.com/flex_university/article/details/140656799</guid><author>flex_university</author><pubDate>Wed, 24 Jul 2024 10:47:05 +0800</pubDate><description><![CDATA[打开anaconda prompt（右键“以管理员身份运行”）在重启jupyter notebook即可解决。]]></description><category></category></item><item><title><![CDATA[Jupyter notebook 快速入门]]></title><link>https://blog.youkuaiyun.com/flex_university/article/details/140647713</link><guid>https://blog.youkuaiyun.com/flex_university/article/details/140647713</guid><author>flex_university</author><pubDate>Tue, 23 Jul 2024 22:50:55 +0800</pubDate><description><![CDATA[Jupyter Notebook是一个交互式笔记本环境，可以在其中同时编写和运行代码，以及进行数据分析和可视化。它支持多种编程语言（如Python、R、Julia等），并提供了丰富的功能和工具供用户使用。Jupyter Notebook具有可视化界面，用户可以通过浏览器访问，并通过单元格的方式组织代码和文本。用户可以在每个单元格中编写和运行代码，查看代码执行结果，并将代码、文本和图形整合在一起形成一个完整的文档。]]></description><category></category></item><item><title><![CDATA[算法基础——动态规划（3）背包 多重背包（每个物品可重复选，有次数限制）]]></title><link>https://blog.youkuaiyun.com/flex_university/article/details/139291720</link><guid>https://blog.youkuaiyun.com/flex_university/article/details/139291720</guid><author>flex_university</author><pubDate>Thu, 30 May 2024 22:42:18 +0800</pubDate><description><![CDATA[与完全背包不同的点在，首先，其次，空间优化成一个数组时，完全背包只需要当前target的上一组状态，而多重背包需要当前target及其之前的数的上一组状态。本题对于时间优化的要求极为严苛，如果用常规多重背包，是过不了的（尽管下方代码已经做了一个小优化，让时间近乎减半）。依旧是上一轮的旧值，对应原方程中的f[i−1][j−(c[x]+1)∗x]由于是倒序遍历，此时的f[j−(c[x]+1)∗x]还未被更新，优化二有更简单的理解，建立在优化一的基础之上，是本轮的新值，对应原方程中的f[i][j−x]]]></description><category></category></item><item><title><![CDATA[算法基础——动态规划（3）背包 完全背包（每个物品可以重复选）]]></title><link>https://blog.youkuaiyun.com/flex_university/article/details/139288175</link><guid>https://blog.youkuaiyun.com/flex_university/article/details/139288175</guid><author>flex_university</author><pubDate>Wed, 29 May 2024 11:01:15 +0800</pubDate><description><![CDATA[最开始考虑成选几个或不选的情况，这样写超时。只需要考虑选或不选这个数一次，选的话i（当前选择的数）不变，只是改变剩下需要凑的数值。空间优化到一个数组时，可以注意一下不变的位置和变得位置，从会变的位置开始修改可以减少if，else判断语句。Solution1：递归+备忘录。相对于上一题改动递推式为＋即可。Solution3：空间优化。Solution2：递推。]]></description><category></category></item><item><title><![CDATA[算法基础——动态规划（2）网格图DP（基础）]]></title><link>https://blog.youkuaiyun.com/flex_university/article/details/138420934</link><guid>https://blog.youkuaiyun.com/flex_university/article/details/138420934</guid><author>flex_university</author><pubDate>Sat, 18 May 2024 23:19:08 +0800</pubDate><description><![CDATA[它利用了堆数据结构的特性，可以在 O(n log k) 时间复杂度内完成操作，其中 n 是可迭代对象的元素数量，k 是要求的最小元素数量。其中树的层数代表做选择的次数，本题中任意方法选择次数相等，均为m（行数）+n（列数）次，故有m+n层，空间（递归的栈空间）用到m+n。当然注意到数字都是正数，可以直接在原来数字上乘以负一来标记入队，每列遍历本列入队（标记）的可以移动到的元素，可以节省空间O（1）可以用两个数组记录，can记录当前判断行能被移动到的元素，tes在判断中记录下一行可以移动到的元素。]]></description><category></category></item><item><title><![CDATA[算法基础——动态规划（1）（爬楼梯）]]></title><link>https://blog.youkuaiyun.com/flex_university/article/details/138420917</link><guid>https://blog.youkuaiyun.com/flex_university/article/details/138420917</guid><author>flex_university</author><pubDate>Wed, 15 May 2024 11:36:58 +0800</pubDate><description><![CDATA[自顶向下变自底向上：递归边界变为数组初始值；dfs函数状态转移方程变为f数组状态计算方程；递归改为循环。]]></description><category></category></item><item><title><![CDATA[算法基础——回溯（1）]]></title><link>https://blog.youkuaiyun.com/flex_university/article/details/138450247</link><guid>https://blog.youkuaiyun.com/flex_university/article/details/138450247</guid><author>flex_university</author><pubDate>Wed, 08 May 2024 11:30:48 +0800</pubDate><description><![CDATA[回溯算法中的循环，对应遍历树结构一层节点的横向进程，而递归相当于纵向进程明白算法中设计的递归函数，循环结构的不变性很关键（完成什么样的相似的任务）回溯法三部曲1、递归函数的返回值以及参数2、回溯函数终止条件3、单层搜索的过程对于回溯题目，有时可以进行减枝优化。]]></description><category></category></item><item><title><![CDATA[算法基础——哈希表]]></title><link>https://blog.youkuaiyun.com/flex_university/article/details/138162779</link><guid>https://blog.youkuaiyun.com/flex_university/article/details/138162779</guid><author>flex_university</author><pubDate>Mon, 29 Apr 2024 16:16:11 +0800</pubDate><description><![CDATA[在c++中，由于可以用数组、set、map来做哈希表，故要考虑各自特性。而python中，主要使用的就是数组和字典。对于效率而言，一定要熟悉自己使用语言对这些结构的底层实现，才能更好的运用。数组数组是定长的，并且键是隐藏的下标索引，故适用于已经知道长度和对下标映射的，如242.有效的字母异位词和383.赎金信。字典而对于349. 两个数组的交集1.两数之和202.快乐数这种没有限制大小的、数值跨度太大，就不能用数组了（除非你自己设计映射规则和冲突规则，构建hash）而。]]></description><category></category></item><item><title><![CDATA[李沐深度学习预备知识——微积分]]></title><link>https://blog.youkuaiyun.com/flex_university/article/details/138106427</link><guid>https://blog.youkuaiyun.com/flex_university/article/details/138106427</guid><author>flex_university</author><pubDate>Sun, 28 Apr 2024 22:00:00 +0800</pubDate><description><![CDATA[在每个批次中，样本会被送入网络进行前向传播和反向传播，然后使用批次内的样本计算出平均损失值，并利用该损失值来更新网络的参数。批次大小（即每个批次中包含的样本数量）是一个超参数，可以根据数据集的大小和计算资源的限制进行调整。加入矩阵变换的微分，n*m矩阵，相当于多个方程求微分，故得到1xm的结果，每列为对应方程微分。上图最后一行，对于矩阵求偏导，实际上是对矩阵每个位置分别求偏导再放到原位上构成新的偏导矩阵。多元函数视作是输入向量得到标量的函数，而对所有输入的元的梯度，可以简化写法如上。]]></description><category></category></item></channel></rss>