- 博客(384)
- 收藏
- 关注
原创 人工智能教程 - 前言
很多人都想学人工智能,它比黑客技术更加神秘更加吸引人。但是很多人都不敢学,因为传统教材的门槛都很高——需要编程,高数,统计学等等知识。所以我才编写了这一系列教程,使它通俗易懂,接地气,无需高数,只要你上过高中,就可以学!而且,传统教材都很枯燥,即使作者花时间写得很易懂但依然很少人能坚持学下去,因为太枯燥了。所以我主张快乐学习,尽量加入搞笑的成分在教程里面,其实我生活中就很乐观幽默,歌手李健就是我性格的一个写照吧,只不过我能说荤段子他不能。金杯银杯不如口碑,读者的留言让我的努力得到了认可!
2020-07-28 10:33:50
1034006
70
原创 【AI绘画系列教程】如何写好提示词
本文分享了使用Stable Diffusion(SD)生成高质量图片的提示词写作技巧。主要内容包括:1)推荐使用词组而非整句,便于修改调整;2)从人物、服饰、表情等6个方面系统描述画面;3)利用提示词合集扩展词汇量;4)通过AI辅助学习专业描述;5)使用权重调整关键元素;6)提供真实系、2.5D系和二次元系三类起手式模板。文章强调提示词需具体明确,避免AI过度自由发挥,并提供了实用工具和模板帮助提升图片质量。(149字)
2025-12-22 13:46:19
736
2
原创 【AI绘画系列教程】提示词
AI绘画的出现大大降低了绘画的门槛,但要创作出优秀的作品就需要很高的提示词写作能力。而且提示词写作能力是一项不过时的技能,因为不管技术如何发展,SD的版本如何升级,提示词的精准描述总是被需要的,因为你必须要把你脑中想要的画面用语言精准表述出来,除非脑机接口普及了,否则我们就不得不写好提示词。
2025-12-13 11:55:34
547
5
原创 【AI绘画系列教程】模型很重要
使用SD创作的第一步就是选择模型。虽然只是点一下鼠标而已,但这一步却至关重要。因为如果选错了模型,那么后面再怎么折腾,也无法创作出你想要的作品。
2025-12-05 13:10:40
861
1
原创 【AI绘画系列教程】教你用AI生成以假乱真的图
如果不使用SD,最省事的办法是请个真人美女模特和一个专业摄影师。这也要花不少时间成本和金钱。而用SD来生成,只需要零成本而且几分钟就可以搞定。
2025-12-03 23:59:33
309
原创 【AI绘画系列教程】目录
AI使生产力实现了飞跃,而且是“核爆式”的飞跃。就像别人还在扔手榴弹,你已经可以投原子弹了。就像过去是用马车拉货,后来出现了汽车,两者的生产力不是一个等级,汽车迅速取代了马车。试想一下,在马车时代,如果你能开汽车拉货,那就有压倒性的优势,自然能轻松赚到钱。如果你不懂汽车,那么你就会被淘汰。掌握了AI就掌握了飞跃的生产力,就能创造财富,至于是几万几十万还是几百万,那就要看你的能力和运气。
2025-12-01 23:18:49
178
6
原创 【AI绘画系列教程】程序员用AI绘画做副业真的能赚几百万吗?
为什么要学习stable diffusion(简称SD)?最直白的原因——它能带来新收入。至于是几万几十万还是几百万,那就要看你的能力和运气。
2025-11-30 23:50:49
747
3
原创 python系列教程248——运算符重载
什么是运算符重载?这可能也是一个使不少程序员感到迷茫的知识点。今天,我试试来给大家慢慢讲解一下,看能不能讲清楚,有点啰嗦的话你不要烦躁哦!
2025-07-10 16:55:11
1217
原创 python系列教程247——变态
上一篇文章我们学习了多态,在一些编程语言中,多态必须通过继承来实现。但是,Python的多态却很“变态”,它可以随便实现!具体怎么个随便法,下面我就通过简单代码来给大家讲述。
2025-07-05 09:36:17
673
原创 python系列教程246——多态
多态很重要也很玄妙!什么是多态呢?先给大家来一段传统的官方的解释。大概率你是看不懂的,要有心理准备。“多态(Polymorphism)是面向对象编程的核心特性之一,指同一接口或方法在不同对象中表现出不同行为的能力。其核心思想是通过统一的抽象层屏蔽具体实现差异,从而提升代码的灵活性和可扩展性 。”
2025-06-30 11:07:34
581
原创 python系列教程245——为什么需要继承
上篇文章我们学习了什么是类的继承。那为什么我们需要继承呢?这个问题我们必须要搞懂,否则上篇文章就白学了。就像我们学习了什么是刀,明白了刀就是一块边缘很锋利的铁,但是却不知道为什么我们需要刀一样。即使拿着刀也不知道用它来干什么。当我们有一个萝卜,如果直接整个萝卜下锅煮,很难煮熟煮透,这个时候我们就需要刀这个工具来把萝卜切成一小块一小块,这样煮出的萝卜才好吃。明白了我们为什么需要刀,那么以后才能在合适的场合用刀来帮我们解决问题。同理,只有明白了为什么需要继承,那么以后才能在合适的场合用继承来帮我们解决问题。
2025-06-23 11:54:04
1174
原创 AI如何重塑百度
在CSDN上14年了,粉丝也2万多了,期间也写出了不少精美的博文,但是从来没有参加过CSDN平台的征文活动。前些天偶然看到平台正在举办一个“AI先锋杯”活动。AI正是我的领域,所以打算试一试。征文要求围绕“AI技术如何重塑你的工作与行业?”展开,那我就写点“AI技术如何重塑百度”吧。虽然说的是百度的事,但是对你来说可能也很有价值的。你可以借鉴百度的模式来使用AI提升你自己的工作效率,甚至可以向你们公司领导提议使用百度的方式来使用AI重塑自己的公司,为公司节约成本,提升效率,增加收益。
2025-06-21 10:13:57
1027
原创 python系列教程244——继承
上一篇文章让大家轻松地正确地理解了“类”。本文,我们学习“继承”。继承是类的一大特性,非常非常有用。其实,继承是很好理解的。但是,很多新手甚至是一些老程序员其实都没有正确地理解继承。下面,我继续以通俗易懂的方式来让大家深入地理解继承。
2025-06-18 12:01:17
1174
原创 python系列教程243——类
依然开门见山。类,是个好东西,大家一定一定要学会用它。类是什么东西呢?要怎么学它呢?其实已经有无数的人对它做出了解释,用了各种各样的方式来讲解它。但是,基本上都很抽象难懂。今天,我也想试试,不知道我是否能让你明白。
2025-06-13 11:27:22
338
原创 Python系列教程242——from与reload合不来
本文总结了Python中from语句与import语句的区别及潜在陷阱。from语句是变量名拷贝而非别名机制,修改本地变量不会影响原模块中的值。文章通过相亲系统、前任回忆等通俗例子说明,使用from导入的变量在reload后不会更新,而import配合点号运算能获取模块重载后的新值。建议优先使用import确保代码可靠性,避免from带来的变量绑定问题。文中还穿插幽默比喻帮助理解技术概念,最后以"湿人云"的趣味总结收尾。
2025-05-24 15:21:18
401
原创 Python系列教程241——不要使用from *
使用from module import * 语句时,由于你不会列出想要的变量,所以可能会意外覆盖了作用域内已使用的变量名。
2025-03-14 17:08:42
461
原创 Python系列教程240——as语法
先来个栗子解答上面的问题,假设你有个朋友叫尼古拉斯·赵四·亚历山大·夫斯基,每次喊他都得念全名,舌头都会打结的。另外as也经常被用来避免变量名冲突。就像班里两个人都叫"李华",老师只能给他们起个别名,例如喊"第一排李华"和"戴眼镜李华"。此外,当使用前面我们学过的包导入功能时,也可为整个目录路径提供简短、简单的名称,十分方便。
2025-03-14 17:01:53
609
原创 Python系列教程239——动态修改模块搜索路径
保存在操作系统中,不是执行中的Python程序,因此这两种配置方法更全局一些:机器上的每个程序都会去查找PATHONPATH和.pth,而且在程序结束后,它们还存在着。例如,上一个例子中,我们从路径中删除了Python的源代码库目录的话,我们就再也无法使用string模块了。
2025-03-12 17:14:56
388
原创 Python系列教程238——__name__
这种写法非常的方便简洁,但是有一个问题,那就是无论是我们自己单独运行这个脚本,还是每次这个文件被另一个文件导入时,都会出现调用自我测试所得到的输出。我们修改一下前面的代码,改成在__name__检查区块内封装自我测试的代码,使其在文件作为顶层脚本执行时才会启动,而导入时则不会。
2025-03-12 17:01:15
544
原创 python系列教程237——启动扩展功能
这个语句一般应该出现在模块文件的顶端,因为遇到这一句代码后,就会对这个文件开启特殊的代码编译。此外,在交互模式提示符下提交这个语句也是可以的,从而能够实验新版本的语言变化。一般来说,新版本的功能会以扩展功能的形式出现在旧版本里面。万事万物都在不断地升级,编程语言也一样,例如Python 3.0就是Python 2.6的升级。
2024-12-30 15:13:22
445
原创 python系列教程236——隐藏变量
注意,注意,上面的“隐藏”只对from *语句有效,对import语句是无效的。就是说,我们还是可以使用import语句来导入那些带下划线的变量,也可以导入那些不在__all__列表中的变量。这句代码的意思是,只有名为Error,encode,decode的变量会被from *语句导出,其它变量都对from *语句免疫。
2024-12-30 15:02:33
488
原创 Python系列教程235——相对导入
在Python 3.0版本后,它只搜索当前的包,如果当前包中没有名为spam的模块,导入就失败了。如果没有相对导入这么一个技术,那么我们将永远无法导入标准库里的string模块,因为上面的代码首先会找到当前包mypkg中的string。有了相对导入这么一个规定,上面的语句就不会搜索mypkg包,那么就会找到标准库里的string。例如你要导入其它包中的模块,那就不是相对导入,而是绝对导入。上面代码的意思是,从当前包中找到一个名为spam的模块,然后导入里面名为name的变量。这就是为什么要使用相对导入!
2024-11-18 16:18:53
747
原创 Python系列教程234——为什么要使用包导入技术?
如果没有套套,你可能就会因为一个不小心而想起那个经典的广告“不是我不小心,只是真情难以抗拒,某某某医院,无痛人流,留住你的产权”。声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好地理解AI技术,我让助理负责分享这套python系列教程,希望能帮到大家!不应该像上面那样在目录内把文件安装成单纯的文件列表,而是应该将它们进行打包,也就是多加个__init__.py文件
2024-11-18 16:07:37
806
原创 Python系列教程233——包导入时使用import还是from
此时,有老粉丝可能会骂我“瞎JB扯蛋,之前在《Python系列教程227——使用import还是from》的文章中还说推荐使用import,现在怎么又说推荐使用from了呢”。例如,在前面文章的例子中,如果我们使用import语句,在每次要得到z时,就得从dir1开始重新输入完整路径,并且每次都要重新执行整个路径。
2024-11-12 11:04:58
636
原创 Python系列教程232——包导入实例
此外,就像模块文件一样,任何已导入的目录也可以传递给reload,来强制该目录重新被执行。下列给出了三个包含简单代码的文件,它们分别位于目录dir1和dir2中——这些文件的路径名会在注释中给出(老铁!这里,dir1要么是我们工作目录的子目录(工作目录就是程序代码所在的目录),要么就是位于模块搜索路径中的一个目录的子目录。
2024-11-12 10:55:08
289
原创 python系列教程231——__init__.py
如果选择使用包导入,就必须多遵循一条约束:包导入语句的路径中的每个目录内都必须有__init__.py这个文件,否则导入包会失败。它会只加载该目录的__init__.py文件中赋值语句定义的变量名,包括该文件中程序代码明确导入的任何子模块。例如,导入后,表达式dir1.dir2会返回一个模块对象,而此对象的命名空间包含了dir2的__init__.py文件内所赋值的所有变量名。作为一个高级功能,你可以在__init__.py文件内使用__all__列表来定义目录以from* 语句形式导入时,需要导出什么。
2024-09-02 17:37:42
1075
原创 python系列教程230——包导入
这个目录就称为包,因此,这类导入就称为包导入。这些语句中的“点号”路径是对应于机器上目录层次的路径,通过这个语句可以导入文件mod.py。也就是说,上面的语句是表明了机器上有个目录dir1,而dir1里有子目录dir2,而dir2内包含有一个名为mod.py的模块文件。此外,这个导入意味着,dir1位在某个容器目录dir0中,这个目录可以在Python模块搜索路径中找到。容器目录dir0需要添加在模块搜索路径中(除非这是顶层文件的主目录,就是放启动文件的那个目录,也就是程序的当前目录)。
2024-09-02 17:37:15
784
原创 python系列教程229——reload重载
例如,必须在启动时通过网络连接服务器的系统,就是动态重载的一个非常重要的应用场景。当然,并非所有系统都需要这种动态的实现,但对那些需要的系统而言,模块重载就提供了一种易于使用的动态定制工具。声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好地理解AI技术,我让助理负责分享这套python系列教程,希望能帮到大家!在下面这个例子中,我们要修改并重载一个模块文件,但是不会中止交互模式的Python会话。我们得调用reload,才能够获取新的版本。
2024-08-19 15:54:25
751
原创 python系列教程228——模块是什么鬼?
例如,假设模块文件M.py的顶层有一个像X = 1这样的赋值语句,而变量名X会变成M的属性,我们可在模块外以M.X的方式对它进行引用。在导入时,文件顶层(不在def或class之内)赋值变量的语句(例如,=和def),会建立模块对象的属性,赋值的变量名会存储在模块的命名空间内。系统中,文件在第一次导入时无论在什么地方,Python都会建立空的模块对象,并逐一执行该文件内的语句,依照文件从头到尾的顺序。在一个代码文件的顶层(也就是不在函数或类的主体内)每一个赋值了的变量名都会变成该模块的属性。
2024-08-11 11:55:35
366
原创 python系列教程227——使用import还是from
就像在夜场里,你跟你女朋友去玩,碰巧有另外一个女的跟你女朋友穿了同样的衣服,你以为他是你女朋友,你上去就摸了一把,结果却不是你女朋友,摸错人了。但是无论如何,我觉得在一个大型的多人协作的系统中,尽量使用inport语句,这样会避免很多潜在问题的发生,也有利于系统代码后期的维护。另外一个潜在的威胁就是,当使用reload的时候。
2024-08-06 11:50:14
469
原创 python系列教程226——如何改变其它文件中的变量
使用import是导入了整个文件,也就是把整个文件当成了一个可变对象,所以改变这个可变对象内的变量就会影响到原始文件。就像函数的参数,对已取出的变量名重新赋值,对于其复制之处的模块并没有影响”,那么我们如果想要改变其它文件中的变量的值要怎么操作呢?PS:看不懂本篇文章的同学请先看前面的文章,循序渐进每天学一点就不会觉得难了!
2024-07-28 08:00:10
418
原创 python系列教程225——import和from居然是赋值语句
就像def一样,import和from是可执行的语句,而不是编译期间的声明,而且它们可以嵌套在if测试中,出现在函数def之中等,直到执行程序时,Python执行到这些语句,才会进行解析。赋值语句方面的知识都适用于模块的读取。就像函数的参数,对已取出的变量名重新赋值,对于其复制之处的模块并没有影响,但是修改一个已取出的可变对象,则会影响导入的模块内的对象。此处,x并不是一个共享的可变对象,但y是的。导入者中的变量名y和被导入者都引用了相同的列表对象,所以在其中一个地方的修改,也会影响另一个地方的这个对象。
2024-06-06 17:44:16
583
原创 python系列教程224——导入只发生一次
在默认的情况下,Python只对每个文件的每个进程做一次操作。第二次和其后的导入并不会重新执行此模块的代码,只是从Python内部模块表中取出已创建的模块对象。PS:看不懂本篇文章的同学请先看前面的文章,循序渐进每天学一点就不会觉得难了!
2024-05-24 11:24:08
628
原创 python系列教程223——模块的创建与使用
创建一个Python模块非常非常简单,只需要使用文本编辑器,把一些Python代码输入至文本文件中,然后以“.py”为后缀名进行保存,就会被自动认为是Python模块。上面两个例子有着相同的效果,但是from语句出现时,导入的变量名会复制到作用域内,在脚本中使用该变量名就可少输入一些:我们可直接使用变量名,而无须在嵌套模块名称之后。当我们使用*时,会取得模块顶层所有赋了值的变量名的拷贝。因为from会把变量名复制到另一个作用域,所以它就可以让我们直接在脚本中使用复制后的变量名,而不需要通过模块名称。
2024-05-08 15:41:16
503
原创 python系列教程222——模块导入
此外,如果Python在搜索路径上只发现了字节码文件,而没有源代码,就会直接加载字节码(这意味着你可以把一个程序只作为字节码文件发布,而避免发送源代码)。在这之后,导入相同模块时,会跳过这三个步骤,而只提取内存中已加载的模块对象。因此,通常不会看见程序顶层文件的.pyc字节码文件,除非这个文件也被其他文件导入:只有被导入的文件才会在机器上留下.pyc。因为最后的导入步骤实际上是执行文件的程序代码,如果模块文件中任何顶层代码确实做了什么实际的工作,你就会在导入时看见其结果。2.编译成位码(需要时)。
2024-04-22 12:32:08
749
原创 python系列教程221——模块
这份手册在Python安装后就可以看到(通过Windows上的IDLE或“Python Start”按钮),或者也可以使用http://www.python.org的在线版本。文件b.py和c.py是模块,a会导入b和c。a.py中的第二行语句调用了模块b中所定义的函数spam,使用了对象属性语法。有下面几种导入方式。
2024-04-12 16:22:19
393
原创 python系列教程219——生成器是单迭代器对象
对于生成器函数来说,也是如此,如下的基于语句的def等价形式只支持一个生成器并且在一次迭代之后用尽。这与某些内置类型的行为不同,它们支持多个迭代器并且在一个迭代器中反映它们的原处修改。此外,一旦任何迭代器运行到完成,所有的迭代器都将用尽。
2024-02-26 16:16:05
485
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅