总体说明:1)每本书侧重点不一样;2)基础语法知识本身是类似的,但每本书案例设计与选取的难易程度和适用专业有所不同;3)个人读者不建议买太多,选择2本认认真真地读完,理解书中案例,然后进入公众号菜单"最新资源"==>"历史文章"认真研究几个专栏的文章,结合自己研究发现、工作需要或兴趣爱好再查阅资料。
切记,任何语言和工具都不是学出来的,是用出来的。
===================
1. 董付国编著.Python程序设计(第3版),ISBN:9787302550839,清华大学出版社,2020年6月出版,2021年12月第11次印刷,2020、2021年清华大学出版社畅销教材,山东省一流本科课程"Python应用开发"配套教材
图书详情:
图书内容:148个例题、123节微课视频,内容涉及Python基础、Office文件操作、GUI、图像处理、计算机图形学、音视频处理、数据分析与科学计算可视化、密码学、数据库、网络编程、多线程与多进程、逆向工程、Windows系统编程与安卓编程等领域。
页数:381
适用专业:计算机、网络工程、软件工程、数据科学、信息安全以及其他相关专业
适用层次:研究生/本科/专科
适用学时:64/96/128
**
京东购买链接:https://item.jd.com/12668739.html
2.董付国编著.Python程序设计基础(第2版),ISBN:9787302490562,清华大学出版社,2018年1月出版,2021年11月第20次印刷,山东省高等教育优秀教材,山东省普通高等教育一流教材,山东省一流本科课程"Python应用开发"配套教材,山东省一流本科课程"Python程序设计基础"配套教材,清华大学出版社2019、2020、2021年畅销教材
图书详情:
图书内容:Python基础,正则表达式,文件操作,数据库操作,数据分析与科学计算可视化
配套慕课:中国大学MOOC、智慧树,搜索"董付国"
页数:296
适用专业:非计算机专业(偏理科)、选修课
适用层次:研究生/本科/专科
适用学时:48/64
**
*
*
京东购买链接:https://item.jd.com/12319738.html
3. 董付国著. Python程序设计实验指导书 ,ISBN:9787302525790,清华大学出版社,2019年4月出版,2021年12月第9次印刷
图书详情:
图书内容:81个实验,不同专业可以根据需要选做,
页数:210
适用专业:所有专业、自学用书
适用层次:本科/专科
京东购买链接:https://item.jd.com/12592638.html
4. 董付国著. Python可以这样学 ,ISBN:9787302456469,清华大学出版社,2017年2月出版,2020年4月第9次印刷
图书详情:
图书内容:Python基础、GUI编程、网络编程、数据库编程、多线程与多进程编程、计算机图形学编程、数字图像处理、数据分析、科学计算可视化。
页数:512
适用专业:所有专业、自学用书
适用层次:研究生/本科/专科/高职
适用学时:48/64/96/128
京东购买链接:https://item.jd.com/12040511.html
5. 董付国著. Python程序设计开发宝典 ,ISBN:9787302472100,清华大学出版社,2017年8月出版,2019年2月第4次印刷
图书详情:
图书内容:Python内置对象、标准库对象高级应用,文件操作,线程、进程、协程、分布式、GPU加速,asyncio网络通信
页数:388
适用专业:计算机、网络工程、自学用书
适用层次:研究生/本科/专科
适用学时:48/64/96
6. 董付国, Python数据分析、挖掘与可视化(慕课版) ,ISBN:9787115523617,人民邮电出版社,2020年1月出版,2021年12月第7次印刷,配套慕课"Python数据分析与数据可视化"被评为2020秋冬学期智慧树网"本科高校专业课程TOP100"
图书详情:
图书内容:Python快速入门,numpy数组与矩阵运算,pandas数据分析实战,sklearn机器学习实战,matplotlib数据可视化实战
配套慕课:智慧树网搜索"董付国",书中二维码也可以看微课
页数:264
适用专业:计算机、数据科学、统计、管理
适用层次:研究生/本科/专科
适用学时:48/64
*
*
京东购买链接:https://item.jd.com/12611383.html
7. 董付国著. Python程序设计基础与应用 ,ISBN:9787111606178,机械工业出版社,2018年9月出版,2022年1月第15次印刷
图书详情:
图书内容:Python基础,tkinter,网络爬虫入门与应用,pandas数据分析与处理,matplotlib数据可视化
页数:245
适用专业:非计算机专业(偏文科)
适用层次:本科/专科
适用学时:48/64
*
*
京东购买链接:https://item.jd.com/10026499621397.html
8. 董付国著. Python程序设计实例教程 ,ISBN:9787111631989,机械工业出版社,2019年8月出版,2021年12月第8次印刷
图书详情:
图书内容:Python基础,文件操作,网络爬虫入门,numpy数组运算与矩阵运算,pandas数据分析与处理,matplotlib数据可视化
页数:244
适用专业:非计算机专业
适用层次:本科/专科/高职
适用学时:48/64
京东购买链接:https://item.jd.com/12676910.html
9. 董付国编著. 大数据的Python基础 ,ISBN:9787111624554,机械工业出版社,2019年5月出版,2021年9月第5次印刷
图书详情:
图书内容:Python基础,文件操作,numpy与pandas基础
页数:194
适用专业:非计算机专业、数据科学
适用层次:本科/专科/高职
适用学时:32/48
京东购买链接:https://item.jd.com/12621674.html
10. 董付国,应根球著. Python编程基础与案例集锦(中学版) ,ISBN:9787121355394,电子工业出版社,2019年3月出版,2022年1月第11次印刷
图书详情:
图书内容:Python基础以及解析算法、枚举算法、递推算法、递归算法、分治算法、排序算法、查找算法、概率算法的原理与Python实现,海龟画图,科学计算可视化与数据可视化,以及人工智能中的线性回归模型、KNN分类算法、朴素贝叶斯算法的原理与应用。
页数:242
配套视频:书上有微课视频二维码,也可以通过微信公众号"Python小屋"免费观看80节微课, 链接地址:
适用层次:中职/高中/初中
京东购买链接:https://item.jd.com/12571990.html
11. 董付国,应根球著.《中学生可以这样学Python(微课版)》,ISBN:9787302554639,清华大学出版社,2020年6月出版,2021年6月第2次印刷
图书详情:
图书内容:Python基础,解析算法、枚举算法、递推算法、递归算法、排序算法、查找算法的Python实现,SQLite数据库操作,大数据处理基础,综合案例
页数:245
配套视频:书上有微课视频,也可以通过微信公众号"Python小屋"免费观看84节视频, 链接地址:
适用层次:中职/高中/初中
*
京东购买链接:https://item.jd.com/12933236.html
12. 董付国编著. 玩转Python轻松过二级 ,ISBN:9787302499169,清华大学出版社,2018年7月第3次印刷
图书内容:Python基础,正则表达式,文件操作,SQLite数据库,tkinter编程,730道练习题、62个例题
页数:249
适用专业:非计算机专业、全国计算机等级考试二级Python考生
适用层次:本科/专科
京东购买链接:https://item.jd.com/12361144.html
13. 董付国编著. Python程序设计实用教程(微课版) ,ISBN:9787563560653,北京邮电大学出版社,2020年出版,2022年1月第4次印刷
图书内容:Python基础,文本文件、CSV文件、JSON文件、Word、Excel、PowerPoint、PDF文件处理,音频采集与处理,视频采集与处理,图像处理
页数:290
适用专业:办公自动化、管理、数字媒体技术、其他非计算机专业
配套微课:书上扫描二维码观看
适用层次:本科/专科
适用学时:48/64
-
董付国编著,Python程序设计入门与实践(微课版),ISBN:978-7-5606-5960-2,西安电子科技大学出版社,2021年1月出版,2021年12月第2次印刷
页数:319页
例题数量:73例
演示代码:200段(不含例题代码)
习题数量:219道
表格数量:16个
插图数量:68个
微课视频:7小时
适用层次:本科/专科
适用学时:48/64
定价:53.00
教材特色:以Python 3.8/3.9为例进行讲解,代码加灰底方便阅读,注释量大,讲解详细,注重学习方法和开发思维的培养,介绍了大量学习过程中和开发实践中常见的和容易犯的错误以及对应的解决方法,任课教师免费获取教学大纲、PPT、源码、习题答案。
15.董付国著,Python网络程序设计(微课版),ISBN:9787302583127,清华大学出版社,2021年7月出版
教材内容:多线程/多进程编程、套接字编程、网络爬虫、网络管理与运维、电子邮件客户端编程
配套资源:教学大纲、课件、源码、20小时微课视频、习题答案、教案
适用层次:研究生/本科/专科
适用专业:计算机、网络工程
定价:59.8元
- *
16.《Python程序设计基础与应用(第2版)》(微课版)(ISBN:978-7-111-69670-4),机械工业出版社,2022年1月出版。面向新工科高等院校大数据专业系列教材,信息技术新工科产学研联盟数据科学与大数据工作委员会推荐教材
教材内容:共13章, 基础部分10章(Python概述,内置对象、运算符、表达式、关键字,序列结构,选择结构与循环结构,函数,面向对象程序设计,字符串,正则表达式,文件与文件夹操作,异常处理结构); 应用部分3章(网络爬虫入门与应用,pandas数据分析与处理,matplotlib数据可视化)。
页码:214页,每章习题没有放在书上,可以扫码下载电子版
印刷:全书双色印刷,所有插图全彩印刷
配套资源:教学大纲(含课程思政)、课件、教案、源码、27小时微课视频(含课程思政)二维码、216道习题+答案、在线练习软件。
适用层次:研究生/本科/专科
适用专业:非计算机专业(偏文科)
适用学时:48/64
定价:59.9元
17.《Python程序设计基础(第3版)》(微课版),清华大学出版社,预计2022年8月之前出版
Original: https://blog.csdn.net/dongfuguo/article/details/122613355
Author: dongfuguo
Title: 董付国老师Python系列教材推荐与选用参考
相关阅读
Title: RuntimeError: element 0 of tensors does not require grad and does not have a grad_
今天在跑代码的过程中,因为要训练一个模型然后在测试阶段使用PGD来生成相应的adv_image来测试这个模型,结果运行到测试阶段出现下面的问题。
报错如下:
RuntimeError: element 0 of tensors does not require grad and does not have a grad_
我的代码如下:
def validate_roubst(val_loader, model, criterion, epoch, args, log=None, tf_writer=None, flag='roubst_val'):
batch_time = AverageMeter('Time', ':6.3f')
losses = AverageMeter('Loss', ':.4e')
top1 = AverageMeter('Acc@1', ':6.2f')
top5 = AverageMeter('Acc@5', ':6.2f')
model.eval()
all_preds = []
all_targets = []
with torch.no_grad():
end = time.time()
for i, (input, target) in enumerate(val_loader):
if args.gpu is not None:
print('............')
input = input.cuda(args.gpu, non_blocking=True)
target = target.cuda(args.gpu, non_blocking=True)
attack_method = PGD(model, args.device)
adv_example = attack_method.generate(input, target, epsilon = 8/255, num_steps = 20, step_size = 0.01, clip_max = 1.0, clip_min = 0.0, print_process = False, bound = 'linf')
output = model(adv_example)
loss = criterion(output, target)
acc1, acc5 = accuracy(output, target, topk=(1, 5))
losses.update(loss.item(), input.size(0))
top1.update(acc1[0], input.size(0))
top5.update(acc5[0], input.size(0))
batch_time.update(time.time() - end)
end = time.time()
_, pred = torch.max(output, 1)
all_preds.extend(pred.cpu().numpy())
all_targets.extend(target.cpu().numpy())
if i % args.print_freq == 0:
output = ('Test: [{0}/{1}]\t'
'Time {batch_time.val:.3f} ({batch_time.avg:.3f})\t'
'Loss {loss.val:.4f} ({loss.avg:.4f})\t'
'Prec@1 {top1.val:.3f} ({top1.avg:.3f})\t'
'Prec@5 {top5.val:.3f} ({top5.avg:.3f})'.format(
i, len(val_loader), batch_time=batch_time, loss=losses,
top1=top1, top5=top5))
print(output)
cf = confusion_matrix(all_targets, all_preds).astype(float)
cls_cnt = cf.sum(axis=1)
cls_hit = np.diag(cf)
cls_acc = cls_hit / cls_cnt
output = ('{flag} Results: Prec@1 {top1.avg:.3f} Prec@5 {top5.avg:.3f} Loss {loss.avg:.5f}'
.format(flag=flag, top1=top1, top5=top5, loss=losses))
out_cls_acc = '%s Class Accuracy: %s'%(flag,(np.array2string(cls_acc, separator=',', formatter={'float_kind':lambda x: "%.3f" % x})))
print(output)
print(out_cls_acc)
if log is not None:
log.write(output + '\n')
log.write(out_cls_acc + '\n')
log.flush()
tf_writer.add_scalar('loss/test_'+ flag, losses.avg, epoch)
tf_writer.add_scalar('acc/test_' + flag + '_top1', top1.avg, epoch)
tf_writer.add_scalar('acc/test_' + flag + '_top5', top5.avg, epoch)
tf_writer.add_scalars('acc/test_' + flag + '_cls_acc', {str(i):x for i, x in enumerate(cls_acc)}, epoch)
return top1.avg
出了问题当然要找到解决方案:
2.1 方案1
大多数人是说要加这一句:
loss.requires_grad_(True) #加入此句就行了
具体做法就是:
loss = criterion(output, target)
loss.requires_grad_(True) # 加入此句在这个位置
...
loss.backward()
但是经过本人尝试,还是没有什么用,因为我在train阶段不会 出现错误,只有在test阶段就报错。
2.2 方案2
回到本质,或者从错误报告的角度来看,错误提示大致意味着元素不需要渐变。
[En]
To return to the essence, or from the point of view of error reporting, the error hint roughly means that the element does not require a gradient.
然后我仔细瞅了瞅我那段代码,发现了一个可疑之处: with torch.no_grad()
最后仔细查看了这个东西的一些使用规则(参考文献1):
with torch.no_grad()则主要是 用于停止autograd模块的工作,以起到加速和节省显存的作用,具体行为就是停止gradient计算,从而节省了GPU算力和显存,但是并不会影响dropout和batchnorm层的行为。
看到我上面加粗的字体了吧,原来使用with torch.no_grad()就不会自动求梯度了,因为我们使用PGD生成adv_image需要求梯度,所以加上with torch.no_grad()就导致了我们无法求梯度,最终出现了下面的错误。
故解决方案为:
将 with torch.no_grad() 去掉
Original: https://blog.csdn.net/wyf2017/article/details/123156380
Author: 流年若逝
Title: RuntimeError: element 0 of tensors does not require grad and does not have a grad_

OpenCV4.5.4更新了!OpenCV5.0还远吗?

深度学习环境配置:Windows安装TensorFlow并在Jupyter notebook上使用

python高维数组的提取

基于python和深度学习(语音识别、NLP)实现本地离线智能语音控制终端(带聊天功能和家居控制功能)

三维可视化地图在智慧城市中的应用-智慧城市数字孪生

ElasticSearch7集群+Keepalived

语音识别系列1:语音识别Speech recognition综述

《28天玩转TensorFlow2》第13天:TensorFlow2项目实战—基于CNN+RNN和TCN的股票预测

NFC读取卡片ID

干货 | 上百个业务场景,语义匹配技术在携程智能客服中的应用

记录::Opencv调用tensorflow2.x-Keras模型

文字识别的可视化实现

autojs之语音识别

【Anaconda】超简单安装教程 Tensorflow OpenCV
