董付国老师Python系列教材推荐与选用参考

人工智能39

总体说明:1)每本书侧重点不一样;2)基础语法知识本身是类似的,但每本书案例设计与选取的难易程度和适用专业有所不同;3)个人读者不建议买太多,选择2本认认真真地读完,理解书中案例,然后进入公众号菜单"最新资源"==>"历史文章"认真研究几个专栏的文章,结合自己研究发现、工作需要或兴趣爱好再查阅资料。

切记,任何语言和工具都不是学出来的,是用出来的。

===================

1. 董付国编著.Python程序设计(第3版),ISBN:9787302550839,清华大学出版社,2020年6月出版,2021年12月第11次印刷,2020、2021年清华大学出版社畅销教材,山东省一流本科课程"Python应用开发"配套教材

董付国老师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系列教材推荐与选用参考

图书详情:

图书内容:Python基础,正则表达式,文件操作,数据库操作,数据分析与科学计算可视化

配套慕课:中国大学MOOC、智慧树,搜索"董付国"

页数:296

适用专业:非计算机专业(偏理科)、选修课

适用层次:研究生/本科/专科

适用学时:48/64


**
*
*

京东购买链接:https://item.jd.com/12319738.html

3. 董付国著. Python程序设计实验指导书 ,ISBN:9787302525790,清华大学出版社,2019年4月出版,2021年12月第9次印刷

董付国老师Python系列教材推荐与选用参考

图书详情:

图书内容:81个实验,不同专业可以根据需要选做,

页数:210

适用专业:所有专业、自学用书

适用层次:本科/专科

京东购买链接:https://item.jd.com/12592638.html

4. 董付国著. Python可以这样学 ,ISBN:9787302456469,清华大学出版社,2017年2月出版,2020年4月第9次印刷

董付国老师Python系列教材推荐与选用参考

图书详情:

图书内容:Python基础、GUI编程、网络编程、数据库编程、多线程与多进程编程、计算机图形学编程、数字图像处理、数据分析、科学计算可视化。

页数:512

适用专业:所有专业、自学用书

适用层次:研究生/本科/专科/高职

适用学时:48/64/96/128

京东购买链接:https://item.jd.com/12040511.html

5. 董付国著. Python程序设计开发宝典 ,ISBN:9787302472100,清华大学出版社,2017年8月出版,2019年2月第4次印刷

董付国老师Python系列教材推荐与选用参考

图书详情:董付国老师Python系列教材推荐与选用参考

图书内容:Python内置对象、标准库对象高级应用,文件操作,线程、进程、协程、分布式、GPU加速,asyncio网络通信

页数:388

适用专业:计算机、网络工程、自学用书

适用层次:研究生/本科/专科

适用学时:48/64/96

6. 董付国, Python数据分析、挖掘与可视化(慕课版) ,ISBN:9787115523617,人民邮电出版社,2020年1月出版,2021年12月第7次印刷,配套慕课"Python数据分析与数据可视化"被评为2020秋冬学期智慧树网"本科高校专业课程TOP100"

董付国老师Python系列教材推荐与选用参考

图书详情:

图书内容:Python快速入门,numpy数组与矩阵运算,pandas数据分析实战,sklearn机器学习实战,matplotlib数据可视化实战

配套慕课:智慧树网搜索"董付国",书中二维码也可以看微课

页数:264

适用专业:计算机、数据科学、统计、管理

适用层次:研究生/本科/专科

适用学时:48/64

*
*

京东购买链接:https://item.jd.com/12611383.html

7. 董付国著. Python程序设计基础与应用 ,ISBN:9787111606178,机械工业出版社,2018年9月出版,2022年1月第15次印刷

董付国老师Python系列教材推荐与选用参考

图书详情:

图书内容:Python基础,tkinter,网络爬虫入门与应用,pandas数据分析与处理,matplotlib数据可视化

页数:245

适用专业:非计算机专业(偏文科)

适用层次:本科/专科

适用学时:48/64


*
*

京东购买链接:https://item.jd.com/10026499621397.html

8. 董付国著. Python程序设计实例教程 ,ISBN:9787111631989,机械工业出版社,2019年8月出版,2021年12月第8次印刷

董付国老师Python系列教材推荐与选用参考

图书详情:董付国老师Python系列教材推荐与选用参考

图书内容:Python基础,文件操作,网络爬虫入门,numpy数组运算与矩阵运算,pandas数据分析与处理,matplotlib数据可视化

页数:244

适用专业:非计算机专业

适用层次:本科/专科/高职

适用学时:48/64

京东购买链接:https://item.jd.com/12676910.html

9. 董付国编著. 大数据的Python基础 ,ISBN:9787111624554,机械工业出版社,2019年5月出版,2021年9月第5次印刷

董付国老师Python系列教材推荐与选用参考

图书详情:董付国老师Python系列教材推荐与选用参考

图书内容:Python基础,文件操作,numpy与pandas基础

页数:194

适用专业:非计算机专业、数据科学

适用层次:本科/专科/高职

适用学时:32/48

京东购买链接:https://item.jd.com/12621674.html

10. 董付国,应根球著. Python编程基础与案例集锦(中学版) ISBN:9787121355394,电子工业出版社,2019年3月出版,2022年1月第11次印刷

董付国老师Python系列教材推荐与选用参考

图书详情:

图书内容:Python基础以及解析算法、枚举算法、递推算法、递归算法、分治算法、排序算法、查找算法、概率算法的原理与Python实现,海龟画图,科学计算可视化与数据可视化,以及人工智能中的线性回归模型、KNN分类算法、朴素贝叶斯算法的原理与应用。

页数:242

配套视频:书上有微课视频二维码,也可以通过微信公众号"Python小屋"免费观看80节微课, 链接地址:

适用层次:中职/高中/初中

京东购买链接:https://item.jd.com/12571990.html

11. 董付国,应根球著.《中学生可以这样学Python(微课版)》,ISBN:9787302554639,清华大学出版社,2020年6月出版,2021年6月第2次印刷

董付国老师Python系列教材推荐与选用参考

图书详情:

图书内容:Python基础,解析算法、枚举算法、递推算法、递归算法、排序算法、查找算法的Python实现,SQLite数据库操作,大数据处理基础,综合案例

页数:245

配套视频:书上有微课视频,也可以通过微信公众号"Python小屋"免费观看84节视频, 链接地址:

适用层次:中职/高中/初中


*

京东购买链接:https://item.jd.com/12933236.html

12. 董付国编著. 玩转Python轻松过二级 ,ISBN:9787302499169,清华大学出版社,2018年7月第3次印刷

董付国老师Python系列教材推荐与选用参考

图书内容:Python基础,正则表达式,文件操作,SQLite数据库,tkinter编程,730道练习题、62个例题

页数:249

适用专业:非计算机专业、全国计算机等级考试二级Python考生

适用层次:本科/专科

京东购买链接:https://item.jd.com/12361144.html

13. 董付国编著. Python程序设计实用教程(微课版) ,ISBN:9787563560653,北京邮电大学出版社,2020年出版,2022年1月第4次印刷

董付国老师Python系列教材推荐与选用参考

图书内容:Python基础,文本文件、CSV文件、JSON文件、Word、Excel、PowerPoint、PDF文件处理,音频采集与处理,视频采集与处理,图像处理

页数:290

适用专业:办公自动化、管理、数字媒体技术、其他非计算机专业

配套微课:书上扫描二维码观看

适用层次:本科/专科

适用学时:48/64

  • 董付国编著,Python程序设计入门与实践(微课版),ISBN:978-7-5606-5960-2,西安电子科技大学出版社,2021年1月出版,2021年12月第2次印刷

董付国老师Python系列教材推荐与选用参考

页数:319页

例题数量:73例

演示代码:200段(不含例题代码)

习题数量:219道

表格数量:16个

插图数量:68个

微课视频:7小时

适用层次:本科/专科

适用学时:48/64

定价:53.00

教材特色:以Python 3.8/3.9为例进行讲解,代码加灰底方便阅读,注释量大,讲解详细,注重学习方法和开发思维的培养,介绍了大量学习过程中和开发实践中常见的和容易犯的错误以及对应的解决方法,任课教师免费获取教学大纲、PPT、源码、习题答案。

15.董付国著,Python网络程序设计(微课版),ISBN:9787302583127,清华大学出版社,2021年7月出版

董付国老师Python系列教材推荐与选用参考

教材内容:多线程/多进程编程、套接字编程、网络爬虫、网络管理与运维、电子邮件客户端编程

配套资源:教学大纲、课件、源码、20小时微课视频、习题答案、教案

适用层次:研究生/本科/专科

适用专业:计算机、网络工程

定价:59.8元

  • *

16.《Python程序设计基础与应用(第2版)》(微课版)(ISBN:978-7-111-69670-4),机械工业出版社,2022年1月出版。面向新工科高等院校大数据专业系列教材,信息技术新工科产学研联盟数据科学与大数据工作委员会推荐教材

董付国老师Python系列教材推荐与选用参考

教材内容:共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_

相关文章
python高维数组的提取 人工智能

python高维数组的提取

python在TensorFlow搭建的环境下,所有数据的提取和Matlab的形式一致。 由于之前很少研究高维情况,第一次遇到三维数据的提取,出现一些小困惑。 下面是自己对于这方面的理解 import...
文字识别的可视化实现 人工智能

文字识别的可视化实现

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一、前期准备 二、开始操作 总结 前言 有时候办公或者处理事情的时候,我们往往是看图品进行文字识别,就像最近我看我女朋...
autojs之语音识别 人工智能

autojs之语音识别

使用情景 手机实现语音识别 效果展示 原理 使用讯飞webpai调用讯飞的语音转写服务 难点 上传语音文件 你将学到以下知识 给讯飞发送语音文件 分片序号的生成 计算签名 HmacSHA1加密 10位...