如果你也是看准了Python,想自学Python,在这里为大家准备了丰厚的免费学习大礼包,带大家一起学习,给大家剖析Python兼职、就业行情前景的这些事儿。

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、全套PDF电子书

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

四、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

成为一个Python程序员专家或许需要花费数年时间,但是打下坚实的基础只要几周就可以,如果你按照我提供的学习路线以及资料有意识地去实践,你就有很大可能成功!
最后祝你好运!!!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

%% 生成图片

def makeImage(label_dict, font_path, width=24, height=24, rotate = 0):

# 从字典中取出键值对
for value,char in label_dict.items():
    # 创建一个黑色背景的图片,大小是24\*24
    img = Image.new("RGB", (width, height), "black") 
    draw = ImageDraw.Draw(img)
    # 加载一种字体,字体大小是图片宽度的90%
    font = ImageFont.truetype(font_path, int(width\*0.9))
    # 获取字体的宽高
    font_width, font_height = draw.textsize(char, font)
    # 计算字体绘制的x,y坐标,主要是让文字画在图标中心
    x = (width - font_width-font.getoffset(char)[0]) / 2
    y = (height - font_height-font.getoffset(char)[1]) / 2
    # 绘制图片,在那里画,画啥,什么颜色,什么字体
    draw.text((x,y), char, (255, 255, 255), font)
    # 设置图片倾斜角度
    img = img.rotate(rotate)
    # 命名文件保存,命名规则:dataset/编号/img-编号\_r-选择角度\_时间戳.png
    time_value = int(round(time.time() \* 1000))
    img_path = "dataset/{}/img-{}\_r-{}\_{}.png".format(value,value,rotate,time_value)
    img.save(img_path)

%% 存放字体的路径

font_dir = “./fonts”
for font_name in os.listdir(font_dir):
# 把每种字体都取出来,每种字体都生成一批图片
path_font_file = os.path.join(font_dir, font_name)
# 倾斜角度从-10到10度,每个角度都生成一批图片
for k in range(-10, 10, 1):
# 每个字符都生成图片
makeImage(label_dict, path_font_file, rotate = k)


上面纯代码不到30行,相信大家应该能看懂!看不懂不是我的读者。


核心代码就是画文字。



draw.text((x,y), char, (255, 255, 255), font)


翻译一下就是:使用某字体在黑底图片的(x,y)位置写白色的char符号。


核心逻辑就是三层循环。  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/854b68031a1c417dbdb955ef020ea2c8.png)


如果代码你运行的没有问题,最终会生成如下结果:  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/5002092e39514058b11e1a37e6012abd.png)  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/b63d6746dd2d42fd9e6be4d035bd23b0.png)


好了,数据准备好了。总共15个文件夹,每个文件夹下对应的各种字体各种倾斜角的字符图片3900个(字符15类×字体13种×角


度20个),图片的大小是24×24像素。


有了数据,我们就可以再进行下一步了,下一步是训练和使用数据。


### 2.2 训练数据


### 2.2.1 构建模型


你先看代码,外行感觉好深奥,内行偷偷地笑。



%% 导入必要的包

import tensorflow as tf
import numpy as np
from tensorflow.keras import layers
from tensorflow.keras.models import Sequential
import pathlib
import cv2

%% 构建模型

def create_model():
model = Sequential([
layers.experimental.preprocessing.Rescaling(1./255, input_shape=(24, 24, 1)),
layers.Conv2D(24,3,activation=‘relu’),
layers.MaxPooling2D((2,2)),
layers.Conv2D(64,3, activation=‘relu’),
layers.MaxPooling2D((2,2)),
layers.Flatten(),
layers.Dense(128, activation=‘relu’),
layers.Dense(15)]
)

model.compile(optimizer='adam',
            loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
            metrics=['accuracy'])

return model

这个模型的序列是下面这样的,作用是输入一个图片数据,经过各个层揉搓,最终预测出这个图片属于哪个分类。  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/b8ad2b6ddfc54bc28bf652c800c046ea.png)


这么多层都是干什么的,有什么用?和衣服一样,肯定是有用的,内衣、衬衣、毛衣、棉衣各有各的用处。


### 2.2.2 卷积层 Conv2D


各个职能部门的调查员,搜集和整理某单位区域内的特定数据。我们输入的是一个图像,它是由像素组成的,这就是R e s c a l i


n g ( 1. / 255 , i n p u t s h a p e = ( 24 , 24 , 1 ) ) Rescaling(1./255, input\_shape=(24, 24, 1))Rescaling(1./255,input shape=


(24,24,1))中,input\_shape输入形状是24\*24像素1个通道(彩色是RGB 3个通道)的图像。  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/f2ff3da7bbeb4384a53e24ffd9df6a4f.png)


卷积层代码中的定义是Conv2D(24,3),意思是用3\*3像素的卷积核,去提取24个特征。


我把图转到地图上来,你就能理解了。以我大济南的市中区为例子。  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/0ad4c1a9eafd42c5a0949e26300277e1.png)


卷积的作用就相当于从地图的某级单位区域中收集多组特定信息。比如以小区为单位去提取住宅数量、车位数量、学校数量、人


口数、年收入、学历、年龄等等24个维度的信息。小区相当于卷积核。


提取完成之后是这样的。  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/9e0abbacd76545aaad34f346f0e8dd42.png)


第一次卷积之后,我们从市中区得到N个小区的数据。


卷积是可以进行多次的。


比如在小区卷积之后,我们还可在小区的基础上再来一次卷积,在卷积就是街道了。  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/161dc3db33424e1f80f3cbfafb211fa3.png)


通过再次以街道为单位卷积小区,我们就从市中区得到了N个街道的数据。


这就是卷积的作用。


通过一次次卷积,就把一张大图,通过特定的方法卷起来,最终留下来的是固定几组有目的数据,以此方便后续的评选决策。这


是评选一个区的数据,要是评选济南市,甚至山东省,也是这么卷积。这和现实生活中评选文明城市、经济强省也是一个道理。


### 2.2.3 池化层 MaxPooling2D


说白了就是四舍五入。


计算机的计算能力是强大的,比你我快,但也不是不用考虑成本。我们当然希望它越快越好,如果一个方法能省一半的时间,我


们肯定愿意用这种方法。


池化层干的就是这个事情。池化的代码定义是这样的M a x P o o l i n g 2 D ( ( 2 , 2 ) )


MaxPooling2D((2,2))MaxPooling2D((2,2)),这里是最大值池化。其中(2,2)是池化层的大小,其实就是在2\*2的区域内,我们认


为这一片可以合成一个单位。


再以地图举个例子,比如下面的16个格子里的数据,是16个街道的学校数量。  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/ef57e5b841e84d528905f20c529ebeea.png)


为了进一步提高计算效率,少计算一些数据,我们用2\*2的池化层进行池化。  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/ca3edcbb02a8459b9af43d90f1002331.png)


池化的方格是4个街道合成1个,新单位学校数量取成员中学校数量最大(也有取最小,取平均多种池化)的那一个。池化之后,


16个格子就变为了4个格子,从而减少了数据。


这就是池化层的作用。


### 2.2.4 全连接层 Dense


弱水三千,只取一瓢。


在这里,它其实是一个分类器。


我们构建它时,代码是这样的D e n s e ( 15 ) Dense(15)Dense(15)。


它所做的事情,不管你前面是怎么样,有多少维度,到我这里我要强行转化为固定的通道。


比如识别字母a~z,我有500个神经元参与判断,但是最终输出结果就是26个通道(a,b,c,……,y,z)。


我们这里总共有15类字符,所以是15个通道。给定一个输入后,输出为每个分类的概率。  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/f7f0b21f32334e0c8ea0315dbdee3bda.png)


注意:上面都是二维的输入,比如24×24,但是全连接层是一维的,所以代码中使用了l a y e r s . F l a t t e n ( )


layers.Flatten()layers.Flatten()将二维数据拉平为一维数据([[11,12],[21,22]]->[11,12,21,22])。


对于总体的模型,调用m o d e l . s u m m a r y ( ) model.summary()model.summary()打印序列的网络结构如下:




Layer (type) Output Shape Param #

文末有福利领取哦~

👉一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。img

👉二、Python必备开发工具

img
👉三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
img

👉 四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(文末领读者福利)
img

👉五、Python练习题

检查学习结果。
img

👉六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
img

img

👉因篇幅有限,仅展示部分资料,这份完整版的Python全套学习资料已经上传

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐