标签归档:tutorial

Recommenders-推荐系统的最佳实战教程

Recommenders现在在PyPI上,可以使用pip安装!此外,还有大量的错误修复和实用程序改进

您可以在此处找到PyPI页面:https://pypi.org/project/ms-recommenders/

您可以在此处找到软件包文档:https://microsoft-recommenders.readthedocs.io/en/latest/

引言

此存储库包含构建推荐系统的示例和最佳实践,以Jupyter笔记本形式提供。这些示例详细介绍了我们在五项关键任务上的学习:

中提供了几个实用程序reco_utils以支持常见任务,例如以不同算法预期的格式加载数据集、评估模型输出以及拆分训练/测试数据。其中包括几种最先进算法的实现,以便在您自己的应用程序中进行自学和自定义。请参阅reco_utils documentation

有关存储库的更详细概述,请参阅wiki page

快速入门

请参阅setup guide有关在本地设置计算机的更多详细信息,请访问data science virtual machine (DSVM)或打开Azure Databricks

推荐器软件包的安装已经过Python版本3.6和3.7的测试。建议在干净的环境中安装软件包及其依赖项(例如condavenv)

要在本地计算机上进行设置,请执行以下操作:

要安装核心实用程序、基于CPU的算法和相关性,请执行以下操作:

  1. 确保安装了编译所需的软件。在Linux上,可以通过添加构建基本依赖项来支持这一点:
sudo apt-get install -y build-essential

在Windows上,您需要Microsoft C++ Build Tools

  1. 从以下位置安装软件包PyPI
pip install --upgrade pip
pip install ms-recommenders[examples]
  1. 向Jupyter注册您的(CONDA或虚拟)环境:
python -m ipykernel install --user --name my_environment_name --display-name "Python (reco)"
  1. 启动Jupyter笔记本服务器
jupyter notebook
  1. 运行SAR Python CPU MovieLens笔记本在下面00_quick_start文件夹。确保将内核更改为“Python(Reco)”

有关安装软件包的其他选项(支持图形处理器、电光等)看见this guide

注意事项-TheAlternating Least Squares (ALS)笔记本电脑需要PySpark环境才能运行。请按照中的步骤操作setup guide在PySpark环境中运行这些笔记本。对于深度学习算法,建议使用GPU机器,并遵循setup guide要设置NVIDIA库,请执行以下操作

算法

下表列出了存储库中当前可用的推荐算法。当有不同的实施可用时,笔记本将链接在环境列下

算法 环境 类型 描述
交替最小二乘(ALS) PySpark 协同过滤 大数据集中显式或隐式反馈的矩阵分解算法,电光MLLib针对可扩展性和分布式计算能力进行了优化
关注异步奇异值分解(A2SVD)* Python CPU / Python GPU 协同过滤 一种基于顺序的算法,旨在利用注意力机制捕获长期和短期用户偏好
CONAC/贝叶斯个性化排名(BPR) Python CPU 协同过滤 隐式反馈预测项目排序的矩阵分解算法
角/双边变分自动编码器(BiVAE) Python CPU / Python GPU 协同过滤 二元数据的生成模型(例如,用户-项目交互)
卷积序列嵌入推荐(CASER) Python CPU / Python GPU 协同过滤 基于卷积的算法,旨在捕获用户的一般偏好和序列模式
深度知识感知网络(DKN)* Python CPU / Python GPU 基于内容的过滤 包含知识图和文章嵌入的深度学习算法,可提供强大的新闻或文章推荐
极深因式分解机(XDeepFM)* Python CPU / Python GPU 混血儿 基于深度学习的具有用户/项目特征的隐式和显式反馈算法
FastAI嵌入点偏置(FAST) Python CPU / Python GPU 协同过滤 面向用户和项目的带嵌入和偏向的通用算法
LightFM/混合矩阵分解 Python CPU 混血儿 隐式和显式反馈的混合矩阵分解算法
LightGBM/渐变增强树* Python CPU/PySpark 基于内容的过滤 基于内容问题的快速训练和低内存占用的梯度Boosting树算法
LightGCN Python CPU / Python GPU 协同过滤 一种深度学习算法,简化了隐式反馈预测GCN的设计
GeoIMC* Python CPU 混血儿 矩阵补全算法,考虑了用户和项目的特点,使用黎曼共轭梯度优化,遵循几何方法
GRU4Rec Python CPU / Python GPU 协同过滤 基于序列的算法,旨在使用递归神经网络捕获长期和短期用户偏好
多项式VAE Python CPU / Python GPU 协同过滤 预测用户/项目交互的产生式模型
具有长期和短期用户表示的神经推荐(LSTUR)* Python CPU / Python GPU 基于内容的过滤 具有长期和短期用户兴趣建模的神经推荐算法
基于注意力多视图学习(NAML)的神经推荐* Python CPU / Python GPU 基于内容的过滤 具有注意力多视角学习的神经推荐算法
神经协同过滤(NCF) Python CPU / Python GPU 协同过滤 一种性能增强的隐式反馈深度学习算法
具有个性化注意的神经推荐(NPA)* Python CPU / Python GPU 基于内容的过滤 基于个性化注意力网络的神经推荐算法
基于多头自我注意(NRMS)的神经推荐* Python CPU / Python GPU 基于内容的过滤 一种多头自关注的神经推荐算法
下一项推荐(NextItNet) Python CPU / Python GPU 协同过滤 基于扩张卷积和残差网络的序列模式捕获算法
受限Boltzmann机器(RBM) Python CPU / Python GPU 协同过滤 基于神经网络的显式或隐式反馈潜在概率分布学习算法
黎曼低秩矩阵完成(RLRMC)* Python CPU 协同过滤 基于黎曼共轭梯度优化的小内存矩阵分解算法
简单推荐算法(SAR)* Python CPU 协同过滤 基于相似度的隐式反馈数据集算法
短期和长期偏好综合推荐(SLI-REC)* Python CPU / Python GPU 协同过滤 基于顺序的算法,旨在使用注意机制、时间感知控制器和内容感知控制器捕获长期和短期用户偏好
多兴趣感知的序贯用户建模(SUM)* Python CPU / Python GPU 协同过滤 一种旨在捕捉用户多兴趣的增强型记忆网络顺序用户模型
标准VAE Python CPU / Python GPU 协同过滤 预测用户/项目交互的产生式模型
奇异值分解(SVD) Python CPU 协同过滤 预测不是很大数据集中显式评级反馈的矩阵分解算法
术语频率-文档频率反转(TF-IDF) Python CPU 基于内容的过滤 一种简单的基于相似度的文本数据内容推荐算法
Vowpal Wabbit(大众)* Python CPU (online training) 基于内容的过滤 快速在线学习算法,非常适合用户功能/上下文不断变化的场景
宽而深 Python CPU / Python GPU 混血儿 一种可记忆特征交互和泛化用户特征的深度学习算法
xLearch/factorization Machine(FM)&场感知FM(FFM) Python CPU 混血儿 利用用户/项目特征预测标签的快速高效内存算法

注意事项*指示由Microsoft发明/贡献的算法

独立的或正在孵化的算法和实用程序是contrib文件夹。这将包含可能不容易放入核心存储库的贡献,或者需要时间来重构或成熟代码并添加必要的测试

算法 环境 类型 描述
SARplus* PySpark 协同过滤 电光合成孔径雷达的优化实现

初步比较

我们提供一个benchmark notebook以说明如何评估和比较不同的算法。在本笔记本中,使用分层拆分将MovieLens数据集按75/25的比率拆分成训练/测试集。使用下面的每个协同过滤算法来训练推荐模型。我们利用文献中报道的经验参数值。here在对指标进行排名时,我们使用k=10(前十大推荐项目)。我们在标准NC6S_v2上运行比较Azure DSVM(6个vCPU、112 GB内存和1个P100 GPU)。电光肌萎缩侧索硬化症在本地独立模式下运行。在此表中,我们显示了在Movielens 100k上运行15个时期的算法的结果

算法 地图 nDCG@k 精度@k Recall@k RMSE Mae R2个 解释的差异
ALS 0.004732 0.044239 0.048462 0.017796 0.965038 0.753001 0.255647 0.251648
BiVAE 0.146126 0.475077 0.411771 0.219145 不适用 不适用 不适用 不适用
BPR 0.132478 0.441997 0.388229 0.212522 不适用 不适用 不适用 不适用
FastAI 0.025503 0.147866 0.130329 0.053824 0.943084 0.744337 0.285308 0.287671
LightGCN 0.088526 0.419846 0.379626 0.144336 不适用 不适用 不适用 不适用
NCF 0.107720 0.396118 0.347296 0.180775 不适用 不适用 不适用 不适用
SAR 0.110591 0.382461 0.330753 0.176385 1.253805 1.048484 -0.569363 0.030474
SVD 0.012873 0.095930 0.091198 0.032783 0.938681 0.742690 0.291967 0.291971

行为规范

本项目坚持Microsoft’s Open Source Code of Conduct为了给所有人营造一个欢迎和鼓舞人心的社区

贡献

这个项目欢迎大家提供意见和建议。在投稿之前,请查看我们的contribution guidelines

生成状态

这些测试是夜间构建,用于计算冒烟和集成测试。main是我们的主要分支机构staging是我们的发展分部。我们使用pytest中测试python实用程序reco_utilspapermill对于notebooks有关测试管道的更多信息,请参阅test documentation

DSVM构建状态

以下测试每天在Linux DSVM上运行。这些机器全天候运转。

构建类型 分支机构 状态 分支机构 状态
Linux CPU 主干道 试运行
Linux GPU 主干道 试运行
LINUX电光 主干道 试运行

相关项目

参考文献

  • A.Argyriou、M.González-Fierro和L.Zhang,“Microsoft推荐器:可投入生产的推荐系统的最佳实践(Best Practices for Production-Ready Recommendation Systems)”,万维网2020:台北国际万维网大会,2020年。在线提供:https://dl.acm.org/doi/abs/10.1145/3366424.3382692
  • 张立,吴涛,谢,A.Argyriou,M.González-Fierro,J.Lian,“建立规模化的可生产推荐系统”,ACM SIGKDD 2019年知识发现和数据挖掘大会(KDD 2019),2019年
  • S.Graham,J.K.Min,T.Wu,“微软推荐器:加速开发推荐器系统的工具”,RecSys‘19:第13届ACM推荐系统会议论文集,2019年。在线提供:https://dl.acm.org/doi/10.1145/3298689.3346967

Stanford-tensorflow-tutorials-此存储库包含斯坦福课程的代码示例


斯坦福-TensorFlow-教程

此存储库包含课程CS 20:深度学习研究的TensorFlow的代码示例。
它将随着课程的进展而更新。
详细的教学大纲和课堂讲稿可以在这里找到。here
对于本课程,我使用python3.6和TensorFlow 1.4.1

前一年课程的代码和备注请参见文件夹2017和网站https://web.stanford.edu/class/cs20si/2017

有关安装说明和依赖项列表,请参阅此存储库的安装文件夹

Computervision-recipes-计算机视觉的最佳实践、代码示例和文档

计算机视觉

近年来,我们看到了计算机视觉的非同寻常的增长,应用于人脸识别、图像理解、搜索、无人机、地图绘制、半自动和自动驾驶车辆。其中许多应用的关键部分是视觉识别任务,例如图像分类、目标检测和图像相似度

此存储库提供构建计算机视觉系统的示例和最佳实践指南。该存储库的目标是构建一套全面的工具和示例,以利用计算机视觉算法、神经体系结构和实现此类系统的最新进展。我们不是从头开始创建实现,而是利用现有的最先进的库,围绕加载图像数据、优化和评估模型以及向上扩展到云来构建额外的实用程序。此外,在此领域工作多年后,我们的目标是回答常见问题,指出经常观察到的陷阱,并展示如何使用云进行培训和部署

我们希望这些示例和实用程序可以通过按数量级简化从定义业务问题到开发解决方案的过程来显著缩短“上市时间”。此外,示例笔记本将作为指南,并以多种语言展示工具的最佳实践和用法

这些示例提供为Jupyter notebooks也很常见utility functions所有示例都使用PyTorch作为底层深度学习库

目标受众

我们这个存储库的目标受众包括具有不同计算机视觉知识水平的数据科学家和机器学习工程师,因为我们的内容是纯来源的,目标是自定义的机器学习建模。所提供的实用程序和示例旨在作为解决实际视觉问题的加速器

快速入门

要开始,请导航到Setup Guide,其中列出了有关如何设置计算环境和运行此Repo中的笔记本所需的依赖项的说明。设置环境后,请导航到Scenarios文件夹,开始浏览笔记本。我们建议从图像分类笔记本,因为这引入了其他场景也使用的概念(例如关于ImageNet的预培训)

或者,我们支持活页夹只需点击此链接,即可在网络浏览器中轻松试用我们的笔记本电脑。然而,Binder是免费的,因此只提供有限的CPU计算能力,并且没有GPU支持。预计笔记本的运行速度会非常慢(通过将图像分辨率降低到例如60像素,这在一定程度上有所改善,但代价是精确度较低)

场景

以下是此存储库中涵盖的常用计算机视觉场景的摘要。对于每个主要场景(“基础”),我们都会提供工具来有效地构建您自己的模型。这包括在您自己的数据上微调您自己的模型等简单任务,以及硬性否定挖掘甚至模型部署等更复杂的任务

场景 支持 描述
Classification 基地 图像分类是一种有监督的机器学习技术,用于学习和预测给定图像的类别
Similarity 基地 图像相似度是一种计算给定一对图像的相似度分数的方法。在给定图像的情况下,它允许您识别给定数据集中最相似的图像
Detection 基地 对象检测是一种允许您检测图像中对象的边界框的技术
Keypoints 基地 关键点检测可用于检测对象上的特定点。提供了一种预先训练的模型来检测人体关节,以进行人体姿态估计。
Segmentation 基地 图像分割为图像中的每个像素分配类别
Action recognition 基地 动作识别,用于在视频/网络摄像机镜头中识别执行的动作(例如,“运行”、“打开瓶子”)以及各自的开始/结束时间。我们还实现了可以在(Contrib)[contrib]下找到的动作识别的i3D实现
Tracking 基地 跟踪允许随时间检测和跟踪视频序列中的多个对象
Crowd counting Contrrib 统计低人群密度(如10人以下)和高人群密度(如数千人)场景下的人数

我们将支持的CV方案分为两个位置:(I)基地:“utils_cv”和“Scenario”文件夹中的代码和笔记本遵循严格的编码准则,经过良好的测试和维护;(Ii)Contrrib:“contrib”文件夹中的代码和其他资源,主要介绍使用尖端技术的不太常见的CV场景。“contrib”中的代码没有定期测试或维护

计算机视觉在蔚蓝上的应用

请注意,对于某些计算机视觉问题,您可能不需要构建自己的模型。取而代之的是,Azure上存在预先构建的或可轻松定制的解决方案,不需要任何自定义编码或机器学习专业知识。我们强烈建议您评估这些方法是否足以解决您的问题。如果这些解决方案不适用,或者这些解决方案的准确性不够,则可能需要求助于更复杂、更耗时的自定义方法

以下Microsoft服务提供了解决常见计算机视觉任务的简单解决方案:

  • Vision Services是一组经过预先训练的睡觉API,可以调用它们来进行图像标记、人脸识别、光学字符识别、视频分析等。这些API开箱即用,只需要极少的机器学习专业知识,但定制功能有限。查看各种可用的演示以体验该功能(例如Computer Vision)。该服务可通过API调用或通过SDK(以.NET、Python、Java、Node和Go语言提供)使用
  • Custom Vision是一项SaaS服务,用于在给定用户提供的培训集的情况下将模型训练和部署为睡觉应用编程接口。所有步骤,包括图像上传、注释和模型部署,都可以使用直观的UI或通过SDK(.Net、Python、Java、Node和Go语言)执行。训练图像分类或目标检测模型可以用最少的机器学习专业知识来实现。与使用预先培训的认知服务API相比,Custom Vision提供了更大的灵活性,但需要用户自带数据并对其进行注释

如果您需要培训您自己的模型,以下服务和链接提供了可能有用的附加信息

  • Azure Machine Learning service (AzureML)是一项帮助用户加速训练和部署机器学习模型的服务。虽然AzureML Python SDK不特定于计算机视觉工作负载,但它可以用于可伸缩且可靠的培训,并将机器学习解决方案部署到云中。我们在此存储库中的几个笔记本中利用Azure机器学习(例如deployment to Azure Kubernetes Service)
  • Azure AI Reference architectures提供一组示例(由代码支持),说明如何构建利用多个云组件的常见面向AI的工作负载。虽然不是特定于计算机视觉的,但这些参考体系结构涵盖了几个机器学习工作负载,例如模型部署或批处理评分

生成状态

AzureML测试

构建类型 分支机构 状态 分支机构 状态
Linux GPU 师傅 试运行
Linux CPU 师傅 试运行
笔记本电脑单元GPU 师傅 试运行

贡献

这个项目欢迎大家提供意见和建议。请参阅我们的contribution guidelines

DeepLearningZeroToAll-TensorFlow基础教程实验

这是TensorFlow基础教程(韩文)中介绍的实验代码,地址为https://youtu.be/BS6O0zOGX4E(我们还计划用英语录制视频。)

这是正在进行的工作,可能有错误。然而,我们呼吁您的意见和拉请求。请查看我们的风格指南:

实验幻灯片:

我们欢迎您对幻灯片发表意见

文件命名规则:

  • kLab-XX-X-[名称].py:Kera实验室代码
  • Lab-XX-X-[名称].py:TensorFlow实验室代码
  • mxlab-XX-X-[名称].py:MXNet实验室代码

安装要求

pip install -r requirements.txt

运行测试和自动寻呼8

TODO:需要添加更多测试用例

python -m unittest discover -s tests;

# http://stackoverflow.com/questions/14328406/
pip install autopep8 # if you haven't install
autopep8 . --recursive --in-place --pep8-passes 2000 --verbose

自动创建Requirements.txt

pip install pipreqs

pipreqs /path/to/project

http://stackoverflow.com/questions/31684375

投稿/评论

我们始终欢迎您的意见和请求

参考实现

Codeparkshare-python初学者(零基础学习python、python入门)书籍、视频、资料、社区推荐

本文主要针对零基础想学习Python者.本文本文由@史江歌(shijiangge@gmail.comQQ:499065469)根据互联网资料收集整理而成,感谢互联网,感谢各位的分享。鸣谢!本文会不断更新.

一、学会使用搜索引擎,尤其是谷歌。推荐阅读文章

《如何用好Google搜索引擎?》知乎问答@崔凯

《十大高明的Google搜索技巧》By-雪影蓝风

《如何用好Google》By-李笑来

二、学会提问

推荐阅读《提问的智慧》By-啄木鸟社区

《提问的智慧》务必请读完!

三、书籍推荐

零基础

  1. python官方文档点击打开链接英语不好的,暂时就先别看了,以后一定肯定要加强英语学习哦;)。
  2. 推荐《How to think like a computer scientist》,对应中文版本“Python学习笔记–皮大庆”,非常适合零基础入门.
  3. 推荐[“python编程实践”](http://book.douban.com/subject/7059900/)
  4. 推荐《简明Python教程》
  5. 推荐《笨办法学 Python (Learn Python The Hard Way)》

有其他编程语言基础

  1. 推荐《Python基础教程》
  2. 推荐Python入门教程-By廖雪峰
  3. Tutorial – Learn Python in 10 minutes

进阶

  1. 推荐Requests 源码阅读
  2. 《Python进阶》(Intermediate Python 中文版)

更多书籍推荐

  1. 知乎问答关于 Python 的经典入门书籍有哪些?
  2. V2EX问答文科生想学Python
  3. Python快速教程

四、视频推荐

麻省理工公开课“计算机科学及编程导论”,该课程针对零基础者网易公开课那就是。

课程介绍这门课程适用于那些拥有很少或没有编程经验的学生,它致力于使学生理解计算机在解决问题中的作用,并且帮助学生不论其专业、使他们对于能够完成有用的小程序的目标充满信心.

五、学习方法

知乎问答零基础,应当如何开始学习 Python ?–由@黎敏

虽然我不是python高手,但我是零基础,之前会的都是软件ps,ppt之类。

如果目的是想成为程序员,参考教学大纲.

如果只是学程序,理解科技,解决工作问题,我的方式可以参考使用:

  1. (找到合适的入门书籍,大致读一次,循环啊判断啊,常用类啊,搞懂(太难的跳过)
  2. 做些简单习题,字符串比较,读取日期之类《python食谱》不错(太难太无趣的,再次跳过,保持兴趣是最重要的,不会的以后可以再学)
  3. 加入Python讨论群,态度友好笑眯眯(很重要,这样高手才会耐心纠正你错误常识)。很多小问题,纠结许久,对方一句话点播思路,真的节约你很多时间.耐心指教我的好人,超级超级多谢.
  4. 解决自己电脑问题.比如下载美剧,零散下载了2,4,5,8集,而美剧共12集,怎样找出漏下的那几集?然后问题分解,1个读取全部下载文件名,2个提取集的数字,3个数字排序和(1-12)对比,找出漏下的。
  5. 时刻记住目的,不是为了当程序员,是为了解决问题.

比如,想偷懒抓网页内容,用urllib不行,用请求也不行,才发现抓取内容涉及那么多方面(Cookie,Header,ssl,url,javascript等等),当然可以听人家劝,回去好好读书,从头读.

或者,不求效率,只求解决,用ie打开网页再另存为行不行?即已经渲染过全部结果了。

问题变成:1–打开指定的10个网页(一行代码就行)。更复杂的想保存呢?利用已经存在的包,比如PAM30(我的是Python3),直接打开ie,用函数out HTML另存为文本,再用搜索函数(str搜索也行,re正则也行)找到数据.简单吧?而且代码超级短.

  1. 保持兴趣,用最简单的方式解决问题,什么底层驱动,各种交换,留给大牛去写吧.我们利用已经有的包完成.
  2. 耐心读文档,并且练习快速读文档.拿到新包,找到自己所需要的函数,是需要快速读一次的.这个不难,读函数名,大概能猜到是干嘛的,然后看看返回值,能判断是不是自己需要的.
  3. 写帮助文件和学习笔记,并发布共享.教别人的时候,其实你已经自己再次思考一次了.

我觉得学程序就像学英文,把高频率的词(循环,判断,常用包,常用函数)搞懂,就能拼装成自己想要的软件.

然后http://stackoverflow.comhttp://Google.com是很好用的.

然后,坚持下去.

一定要保持兴趣,太复杂的跳过,就像小学数学,小学英语,都是由简入深.

网络很平面,无数国际大牛著作好书,关于Python、算法,电脑,网络,或者程序员思路,或者商业思维(浪潮之巅是本好书)等等,还有国际名校的网络公开课(中英文字幕翻译完毕,观看不是难事),讲计算机,网络,安全,或者安卓系统,什么都有,只要能持续保持兴趣,一点点学习下去、不是难事.

所有天才程序员,都曾是儿童,回到儿童思维来理解和学习.觉得什么有趣,先学,不懂的,先放着,遇到问题再来学,效果更好.

唯一建议是,不要太贪心,耐心学好一门优雅的语言,再学其它.虽然Javascript做特效很炫,或提某问题时,有大牛建议,用Ruby来写更好之类,不要改方向。就像老笑话:“要学习递归,必须首先理解递归。”然后死循环一直下去.坚持学好一门语言,再研究其他.

即使一门语言,跟网络,数据库等等相关的部分,若都能学好,再学其他语言,是很快的事情.

另外就是,用学英文的耐心来学计算机,英文遇到不懂的词,抄下,查询.

Python里,看到http,查查定义,看到outHtml,查查定义,跟初学英语时候一样,不要直接猜意思,因为精确描述性定义,跟含糊自然语有区别的。而新人瞎猜,很容易错误理解,维基,谷歌很有用。

芝麻问答:如何学习python点击打开链接作者:@halida

如何学习python

我们假设你是一个初级程序员,只懂得一点点的基础知识,希望能够用Python来做开发.这篇文档就是为了满足以上目标而写的

大纲

按照这篇文档所指示的任务过一遍,你就能够做到:

熟悉Python语言,以及学会Python的编码方式。熟悉Python库,遇到开发任务的时候知道如何去找对应的模块.知道如何查找和获取第三方的Python库,以应付开发任务.学习步骤

安装开发环境

如果你在Window下,去下载Pythonxy安装起来,然后运行Python,进入Python解释环境

如果你在ubuntu下,执行:sudo apt-Get install python,然后在命令行下运行python,进入python解释环境

学习方法

作为一名成熟的开发人员,我学习新东西(假设是PYQT)的习惯方式是:

直接用google搜索pyqt的官方网站.按照官方网站的说明,下载pyqt.(如果是用ubuntu,看看软件库里面是否有足够新的版本)下载过程中,开始阅读官方网站上面的教程.一边看教程,一遍按照教程使用pyqt.谷歌如果发现教程不够全面,用搜索是否有对应的教学书籍可以看。示例学习完毕,开发一个玩具程序,用来检验自己是否需要用到的功能.开始学习python

我建议你学习的过程也按照上面来,首先过一遍Python官方文档:

http://docs.python.org/tutorial/index.html

然后做http://www.pythonchallenge.com/这个网站上面的题目

如果卡在某一关太久,可以看答案(Google Python质询回答),做完后看看别人的编码方式和自己有什么区别

小项目

做完一遍后,你会发现已经熟悉了基本的Python开发.然后做点小项目吧.这里是一些题目,挑感兴趣的去做

  • 写一个简单的计算器/记账软件/扫雷游戏(用pyqt库做界面)
  • 写一个聊天室网站(用Webpy框架,jQuery刷新新的回复)
  • 写一个爬虫,获取豆瓣上面所有用户的地点,画地点分布的直方图(用lxml解析,保存数据到sqlite里面去,用matplotlib画图)

常见问题解答

问:遇到了问题,到哪里求助?

答:上http://groups.google.com/group/python-cn(需要翻墙)或者)http://stackoverflow.com提问就可以了

问:如何查找Python的某个功能?

答:看官方文档。http://docs.python.org/library/index.html

问:如何用Python完成一个任务(比如写网站)?

答:谷歌:python写网站,或者谷歌:python web开发

知乎问答:你是如何自学Python的?点击打开链接作者:@成增存

阶段一:前辈领进门。第一眼是一个前辈给我看了看Python的代码,因为自己最早学习的是Java语言,第一眼看到Python的时候,前辈说,“Python是面向对象的”,然后就打印了几句代码.可我怎么也看不出到底哪里是“面向对象”的.前辈说“在Python里,一切皆对象”,我才有点领悟的说道:“原来把什么看成对象,就是面向对象”,哈哈.

阶段二:开始看的是“潜入Python”、“倾倒Python”、“Python Doc”。因为有很多语言学习经历,很快就完成了初步语法和使用学习.太复杂的特性还是在使用中逐步掌握的.

阶段三:开始使用Python做自己的一些日常工作.比如python搜索文件,python批量处理等,使用最多的还是re模块和Socket相关模块。写了大量的例子,让自己对Python更加喜爱,也更加熟悉.此时翻阅最多的是“python医生”的指南。不管是语言参考、库参考、演示参考,都有大量可使用的内容,内容质量很高堪比jdk。

阶段四:生产上马。开始使用Django,长颈瓶,龙卷风开发一些Web应用,写一些日常使用的工具包等。逐步提升设计能力,和整体代码的管理能力.

阶段五:更合理的分配好C,JAVA,Python三门语言各自擅长的部分。把合适的语言用到合适的地方.尽管一门语言有时候可以搞定所有的,但用擅长的语言解决合适的问题才是效率最高的.这也是“python的大道至简”的理念带给我的帮助和认识.

PS:其中过程中主要的一些方法

  1. 看书.学习的基础.
  2. 自己本地练习.编程还是要实践出真知.
  3. 资料查询.谷歌,Stackoverflow等多关注。
  4. 交流.各种论坛上的python群,论坛。最早去的CU、JavaEye、不过现在貌似去的少了。谷歌集团必须订阅.

    学习+实践+总结,掌握语言的法宝.

六、就这么做吧

看了这么多资料了,还没动手敲代码?

好吧,最好一篇文章“我在学习编程中犯的两个最大错误点击打开链接

就这么做吧。动手敲代码吧.

注:本文由@史江歌(shijiangge@gmail.com)根据互联网资料收集整理而成.

七、更新

Python技术博客、招聘、开源软件、Python中文网站导航

遇到python问题怎么样解决?python help dir stackoverflow docs google

在线视频教学(英文)codecademy

英文Python for beginners

英文我如何从零开始学习PythonWeb开发?(各种电子书推荐)点击打开链接

Python应用与实践python是什么?谁在用它?相关工具?作者:@吴秦

Python模块学习相当于翻译官网文档

针对有其他语言经验的人,英文:Learn X in Y minutes中文翻译Y分钟学会Python(译)

PyCoder’s Weekly 中文翻译说明:文章质量很高

PEP 20 (Python之禅) 的实例说明:CODE_STYPE

Unicode之痛必读

有关 Python 2 和 Sublime Text 中文 Unicode 编码问题的分析与理解必读

stackoverflow上Python相关回答整理翻译

Python语言总结-初级中级高级教程作者:@Crifan Li

Python Guide Python 最佳实践(英文)

Python 最佳实践指南(中文)关于Python安装、配置、和日常使用的最佳实践手册.

Python 最佳实践指南 2018Python日常使用的最佳实践,高级Python开发者必知必会的知识

《码农周刊》干货精选(Python 篇)精选总结

Python 3 Module of the Weekpython标准库的使用

Python – 100天从新手到大师100天从新手到大师

Python 和 Diango 学习资料,书籍,文章,以及实战项目

What the f*ck Python!

https://github.com/leisurelicht/wtfpython-cn

八、爬虫以及模拟登陆新浪微博

知乎:Python 爬虫如何入门学习

Python爬虫学习系列教程 @崔庆才系列教程,入门、实战、爬虫利器介绍、进阶

Python模拟登录新浪微薄(使用RSA加密方式和Cookies文件)

http://uliweb.clkg.org/tutorial/view_chapter/240

一个简单的分布式新浪微博爬虫

用python爬虫抓站的一些技巧总结

使用python爬虫抓站的一些技巧总结:进阶篇

网络爬虫系列

九、工具

Windows系统下、Python相关包Windows Binaries for Python Extension Packages

100-Days-Of-ML-Code-ML代码的100天中文版

机器学习100天

英文原版请移步Avik-Jain那就是。数据在这里

翻译前请先阅读规范。常见问题解答见FAQ

目录

数据预处理|第1天

数据预处理实现

简单线性回归|第2天

简单线性回归实现

多元线性回归|第3天

多元线性回归实现

逻辑回归|第4天

逻辑回归|第5天

今天我深入研究了逻辑回归到底是什么,以及它背后的数学是什么.学习了如何计算代价函数,以及如何使用梯度下降法来将代价函数降低到最小.
由于时间关系,我将隔天发布信息图.如果有人在机器学习领域有一定经验,并愿意帮我编写代码文档,也了解GitHub的Markdown语法,请在领英联系我。

逻辑回归|第6天

逻辑回归实现

K近邻法(k-NN)|第7天

逻辑回归背后的数学|第8天

为了使我对逻辑回归的见解更加清晰,我在网上搜索了一些资源或文章,然后我就发现了Saishruthi Swminathan的这篇文章

它给出了逻辑回归的详细描述.请务必看一看.

支持向量机(支持向量机)|第9天

直观了解支持向量机是什么以及如何使用它来解决分类问题.

支持向量机和K近邻法|第10天

了解更多关于支持向量机如何工作和实现KNN算法的知识.

K近邻法(k-NN)|第11天

K近邻法(k-NN)实现

支持向量机(支持向量机)|第12天

支持向量机(支持向量机)|第13天

SVM实现

支持向量机(支持向量机)的实现|第14天

今天我在线性相关数据上实现了支持向量机。使用SCHKIT-学习库。在科学套件-了解中我们有服务分类器,我们用它来完成这个任务。将在下一次实现时使用内核技巧。python代码见此处,jupyter笔记本见此处那就是。

朴素贝叶斯分类器(朴素贝叶斯分类器)和黑盒机器学习(黑盒机器学习)|第15天

学习不同类型的朴素贝叶斯分类器同时开始Bloomberg的课程.课程列表中的第一个是黑盒机器学习.它给出了预测函数,特征提取,学习算法,性能评估,交叉验证,样本偏差,非平稳性,过度拟合和超参数调整的整体观点.

通过内核技巧实现支持向量机|第16天

使用科学工具包-学习库实现了支持向量机算法以及内核函数,该函数将我们的数据点映射到更高维度以找到最佳超平面。

在Coursera开始深度学习的专业课程|第17天

在1天内完成第1周和第2周内容以及学习课程中的逻辑回归神经网络。

继续Coursera上的深度学习专业课程|第18天

完成课程1.用Python自己实现一个神经网络.

学习问题和Yaser Abu-Mostafa教授|第19天

开始Yaser Abu-Mostafa教授的加州理工学院机器学习课程-CS156中的课程1.这基本上是对即将到来的课程的一种介绍.他也介绍了感知算法.

深度学习专业课程2|第20天

完成改进深度神经网络第1周内容:参数调整,正则化和优化.

网页搜罗|第21天

观看了一些关于如何使用美汤进行网络爬虫的教程,以便收集用于构建模型的数据。

学习还可行吗?|第22天

完成Yaser Abu-Mostafa教授的加州理工学院机器学习课程-CS156中的课程2.学习Hoeffding不等式.

决策树|第23天

统计学习理论的介绍|第24天

彭博ML课程的第3课介绍了一些核心概念,如输入空间,动作空间,结果空间,预测函数,损失函数和假设空间。

决策树|第25天

决策树实现

跳到复习线性代数|第26天

发现Youtube一个神奇的频道3Blue1Brown,它有一个播放列表“线性代数的本质”。看完了4个视频,包括了向量,线性组合,跨度,基向量,线性变换和矩阵乘法.

B站播放列表在这里那就是。

跳到复习线性代数|第27天

继续观看了4个视频,内容包括三维变换、行列式、逆矩阵、列空间、零空间和非方矩阵.

B站播放列表在这里那就是。

跳到复习线性代数|第28天

继续观看了3个视频,内容包括点积和叉积.

B站播放列表在这里那就是。

跳到复习线性代数|第29天

观看了剩余的视频12到14,内容包括特征向量和特征值,以及抽象向量空间.

B站播放列表在这里那就是。

微积分的本质|第30天

完成上一播放列表后,Youtube推荐了新内容“微积分的本质”,今天看完了其中的3个视频,包括导数、链式法则、乘积法则和指数导数。

B站播放列表在这里那就是。

微积分的本质|第31天

观看了2个视频,内容包括隐分化与极限.

B站播放列表在这里那就是。

微积分的本质|第32天

观看了剩余的4个视频,内容包括积分与高阶导数.

B站播放列表在这里那就是。

随机森林|第33天

随机森林|第34天

随机森林实现

什么是神经网络?|深度学习,第1章|第35天

Youtube频道3Blue1Brown中有精彩的视频介绍神经网络。这个视频提供了很好的解释,并使用手写数字数据集演示基本概念.

B站视频在这里那就是。

梯度下降法,神经网络如何学习|深度学习,第2章|第36天

Youtube频道3Blue1Brown关于神经网络的第2部分,这个视频用有趣的方式解释了梯度下降法。推荐必须观看169

B站视频在这里那就是。

反向传播法究竟做什么?|深度学习,第3章|第37天

Youtube频道3Blue1Brown关于神经网络的第3部分,这个视频主要介绍了偏导数和反向传播法。

B站视频在这里那就是。

反向传播法演算|深度学习,第4章|第38天

Youtube频道3Blue1Brown关于神经网络的第3部分,这个视频主要介绍了偏导数和反向传播法。

B站视频在这里那就是。

第1部分|深度学习基础Python,TensorFlow和Kera|第39天

视频地址在这里那就是。
中文文字版notebook那就是。

第2部分|深度学习基础Python,TensorFlow和Kera|第40天

视频地址在这里那就是。
中文文字版notebook那就是。

第3部分|深度学习基础Python,TensorFlow和Kera|第41天

视频地址在这里那就是。
中文文字版notebook那就是。

第4部分|深度学习基础Python,TensorFlow和Kera|第42天

视频地址在这里那就是。
中文文字版notebook那就是。

K-均值聚类|第43天

转到无监督学习,并研究了聚类.可在作者网站查询.发现一个奇妙的动画有助于理解K-均值聚类

K-均值聚类|第44天

(实现(待添加代码)

深入研究|数字|第45天

得到JK Vanderplas写的书“Python数据科学手册(Python数据科学手册)”,Jupyter Notebook在这里那就是。
高清中文版pdf

第2章:Numpy介绍,包括数据类型、数组和数组计算。
代码如下:
2 NumPy入门

2.1 理解Python中的数据类型

2.2 NumPy数组基础

2.3 NumPy数组的计算:通用函数

深入研究|数字|第46天

第2章:聚合,比较运算符和广播.
代码如下:
2.4 聚合:最小值、最大值和其他值

2.5 数组的计算:广播

2.6 比较、掩码和布尔运算

深入研究|数字|第47天

第2章:花哨的索引,数组排序,结构化数据.
代码如下:
2.7 花哨的索引

2.8 数组的排序

2.9 结构化数据:NumPy的结构化数组

深入研究|熊猫|第48天

第3章:熊猫数据处理
包含Pandas对象,数据取值与选择,数值运算方法,处理缺失值,层级索引,合并数据集.
代码如下:
3 Pandas数据处理

3.1 Pandas对象简介

3.2 数据取值与选择

3.3 Pandas数值运算方法

3.4 处理缺失值

3.5 层级索引

3.6 合并数据集:ConCat和Append方法

深入研究|熊猫|第49天

第3章:完成剩余内容-合并与连接,累计与分组,数据透视表.
代码如下:
3.7 合并数据集:合并与连接

3.8 累计与分组

3.9 数据透视表

深入研究|熊猫|第50天

第3章:向量化字符串操作,处理时间序列.
代码如下:
3.10 向量化字符串操作

3.11 处理时间序列

3.12 高性能Pandas:eval()与query()

深入研究|MATPLOTLIB|第51天

第4章:Matplotlib数据可视化
学习简易线形图,简易散点图,密度图与等高线图
代码如下:
4 Matplotlib数据可视化

4.1 简易线形图

4.2 简易散点图

4.3 可视化异常处理

4.4 密度图与等高线图

深入研究|MATPLOTLIB|第52天

第4章:Matplotlib数据可视化
学习直方图,配置图例,配置颜色条,多子图.
代码如下:
4.5 直方图

4.6 配置图例

4.7 配置颜色条

4.8 多子图

4.9 文字与注释

深入研究|MATPLOTLIB|第53天

第4章:Matplotlib数据可视化
学习三维绘图.
4.12 画三维图

层次聚类|第54天

动画演示

100-Days-Of-ML-Code-100天的ML编码

ML-100天代码

100天机器学习 Siraj Raval

获取数据集: here

数据预处理|第1天

从以下位置签出代码: here

简单线性回归|第2天

从以下位置签出代码here

多元线性回归|第3天

从以下位置签出代码here

Logistic回归|第4天

Logistic回归|第5天

今天进入#100DaysOfMLCode,我更深入地研究了Logistic回归到底是什么,以及它背后涉及的数学知识是什么。学习了成本函数的计算方法,以及如何将梯度下降算法应用于成本函数,使预测误差最小化
由于时间不多,我现在会隔天贴一张信息图。此外,如果有人想要帮助我编写代码文档,并且已经在该领域有一些经验,并且知道GitHub的Markdown,请在LinkedIn上与我联系:)

实施Logistic回归|第6天

查看代码here

K个最近的邻居|第7天

Logistic回归背后的数学|第8天

#100DaysOfMLCode为了阐明我对逻辑回归的见解我在互联网上搜索了一些资源或文章,我偶然看到了这篇文章(https://towardsdatascience.com/logistic-regression-detailed-overview-46c4da4303bc)Saishruthi Swminathan著

对Logistic回归进行了详细的描述。一定要检查一下

支持向量机|第9天

对支持向量机是什么以及如何使用它来解决分类问题有了一个直观的了解

支持向量机和KNN|第10天

了解有关支持向量机的工作原理和实现K-NN算法的详细信息

K-NN实施|第11天

实现了K-NN分类算法。#100DaysOfMLCode支持向量机信息图已完成一半。明天会更新的

支持向量机|第12天

朴素贝叶斯分类器|第13天

今天继续讨论#100DaysOfMLCode,我介绍了朴素贝叶斯分类器。我还使用SCISKIT-LEARN在python中实现了支持向量机。将很快更新代码

支持向量机实施|第14天

今天我在线性相关的数据上实现了支持向量机。二手Scikit学习图书馆。在Scikit-Learning中,我们使用SVC分类器来完成这项任务。将在下一次实现中使用内核技巧。检查代码here

朴素贝叶斯分类器和黑盒机器学习|第15天

学习了不同类型的朴素贝叶斯分类器。也是通过以下方式开始讲课的Bloomberg播放列表中的第一个是黑盒机器学习。对预测函数、特征提取、学习算法、性能评估、交叉验证、样本偏差、非平稳性、过拟合和超参数调整等方面进行了全面的综述

使用内核技巧实现支持向量机|第16天

利用Scikit-Learning库实现了支持向量机算法,并利用核函数将数据点映射到更高的维来寻找最优超平面

在Coursera|第17天开始深度学习专业化认证

在一天内完成整个第一周和第二周。学习Logistic回归作为神经网络

Coursera上的深度学习专业化认证|第18天

完成深度学习专业化课程1。用python实现了一个神经网络。

“学习问题”,亚瑟·阿布-穆斯塔法教授(Yaser Abu-Mostafa)|第19天

开始了加州理工学院机器学习课程(CS156)第18讲中的第1讲,由Yaser Abu-Mostafa教授主讲。这基本上是对即将到来的讲座的介绍。他还解释了感知器算法

开始深度学习专业化认证课程2|第20天

完成了改进深度神经网络的第一周:超参数调整、正则化和优化

Web抓取|第21天

观看了有关如何使用美丽汤进行Web抓取的教程,以便为构建模型收集数据

学习可行吗?|第22天

加州理工学院机器学习课程(CS156)第18讲第2讲,亚瑟·阿布-穆斯塔法教授主讲。了解Hoeffding不等式

诊断树|第23天

统计学习理论简介|第24天

Bloomberg ML课程的LEC3介绍了一些核心概念,如输入空间、动作空间、结果空间、预测函数、损失函数和假设空间

实施决策树|第25天

检查代码here.

跳过复习线性代数|第26天

发现了一个令人惊叹的channel在YouTube3Blue1Brown上。它有一个名为“线性代数精髓”的播放列表。从完成4个视频开始,这些视频完整地概述了向量、线性组合、跨度、基向量、线性变换和矩阵乘法

链接到播放列表here.

跳过复习线性代数|第27天

继续播放已完成的4个视频,讨论主题3D变换、行列式、逆矩阵、列空间、零空间和非平方矩阵

链接到播放列表here.

跳过复习线性代数|第28天

在3Blue1Brown的播放列表中,完成了另外3个来自线性代数本质的视频。涵盖的主题是点积和交积

链接到播放列表here.

跳过复习线性代数|第29天

今天完成了整个播放列表,视频12-14。这真是一个令人惊叹的播放列表,可以刷新线性代数的概念。主题包括基数、特征向量和特征值的变化,以及抽象向量空间

链接到播放列表here.

微积分精髓|第30天

由3Blue1Brown完成播放列表-线性代数的精髓,这是YouTube针对同一频道3Blue1Brown再次出现的一系列视频提出的建议。上一个线性代数系列已经给我留下了深刻的印象,我直接投入其中。完成了关于导数、链式规则、乘积规则和指数导数等主题的约5个视频

链接到播放列表here.

微积分精髓|第31天

观看了2个关于微积分播放列表实质的主题隐含区分和限制的视频

链接到播放列表here.

微积分精髓|第32天

观看了剩余的4个视频,涵盖了积分和高阶导数等主题

链接到播放列表here.

随机森林|第33天

实施随机林|第34天

检查代码here.

但是什么呢?神经网络?|深度学习,第1章|第35天

由3Blue1Brown YouTube频道在神经网络上发布的令人惊叹的视频。本视频对神经网络有很好的理解,并使用手写数字数据集来解释概念。链接到video.

梯度下降,神经网络如何学习|深度学习,第2章|第36天

第二部分神经网络由3Blue1Brown YouTube频道提供。这个视频以一种有趣的方式解释了渐变下降的概念。169必看,强烈推荐。链接到video.

反向传播到底在做什么?|深度学习,第3章|第37天

第三部分神经网络由3Blue1Brown YouTube频道提供。这个视频主要讨论偏导数和反向传播。链接到video.

反向传播演算|深度学习,第4章|第38天

第四部分神经网络由3Blue1Brown YouTube频道提供。这里的目标是用一些更正式的术语来表示反向传播如何工作的直觉,以及视频中讨论偏导数和反向传播的视频。链接到video.

使用Python、TensorFlow和Kera进行深度学习教程|第39天

链接到video.

加载您自己的数据-使用Python、TensorFlow和Kera的深度学习基础知识p2|第40天

链接到video.

卷积神经网络-使用Python、TensorFlow和Kera的深度学习基础第3页|第41天

链接到video.

使用TensorBoard分析模型-使用Python、TensorFlow和Kera进行深度学习第4页|第42天

链接到video.

K表示群集|第43天

转向无监督学习,研究了聚类问题。在我的网站上工作,检查一下avikjain.me我还发现了一个很棒的动画,可以帮助您轻松理解K-Means聚类Link

K表示群集实施|第44天

实现了K均值聚类。检查代码here.

深入挖掘|NUMPY|第45天

我买了一本JK Vanderplas的新书《Python数据科学手册》Check the Jupyter Notebookhere.

从第2章:Numpy简介开始。介绍了数据类型、Numpy数组和Numpy数组上的计算等主题
检查代码-
Introduction to NumPy

Understanding Data Types in Python

The Basics of NumPy Arrays

Computation on NumPy Arrays: Universal Functions

深入挖掘|NUMPY|第46天

第二章:汇总、比较和广播
链接到笔记本电脑:
Aggregations: Min, Max, and Everything In Between

Computation on Arrays: Broadcasting

Comparisons, Masks, and Boolean Logic

深入挖掘|NUMPY|第47天

第2章:奇特索引、排序数组、结构化数据
链接到笔记本电脑:
Fancy Indexing

Sorting Arrays

Structured Data: NumPy’s Structured Arrays

更深入地挖掘|熊猫|第48天

第3章:使用熊猫进行数据操作
涵盖了各种主题,如Pandas对象、数据索引和选择、对数据的操作、处理丢失的数据、分层索引、合并和追加
指向笔记本的链接:
Data Manipulation with Pandas

Introducing Pandas Objects

Data Indexing and Selection

Operating on Data in Pandas

Handling Missing Data

Hierarchical Indexing

Combining Datasets: Concat and Append

更深地挖掘|熊猫|第49天

第3章:完成以下主题-合并和联接、聚合和分组以及透视表
Combining Datasets: Merge and Join

Aggregation and Grouping

Pivot Tables

更深入地挖掘|熊猫|第50天

第3章:矢量化字符串运算,使用时间序列
指向笔记本的链接:
Vectorized String Operations

Working with Time Series

High-Performance Pandas: eval() and query()

深挖|MATPLOTLIB|第51天

第4章:使用Matplotlib实现可视化学习简单线图、简单散点图、密度图和等高线图
指向笔记本的链接:
Visualization with Matplotlib

Simple Line Plots

Simple Scatter Plots

Visualizing Errors

Density and Contour Plots

深入挖掘|MATPLOTLIB|第52天

第4章:使用Matplotlib实现可视化学习了直方图、如何自定义绘图图例、颜色条和构建多个子图表
指向笔记本的链接:
Histograms, Binnings, and Density

Customizing Plot Legends

Customizing Colorbars

Multiple Subplots

Text and Annotation

深挖|MATPLOTLIB|第53天

第四章介绍了Mathplotlib中的三维绘图
指向笔记本的链接:
Three-Dimensional Plotting in Matplotlib

分层群集|第54天

对层次聚类进行了研究。看看这个令人惊叹的Visualization.

TensorFlow-Examples-TensorFlow初学者教程和示例(支持TF v1和v2)

TensorFlow示例

本教程旨在通过示例轻松深入TensorFlow。为了可读性,它包括笔记本和带有说明的源代码,适用于TFv1和v2

它适合那些想要找到关于TensorFlow的清晰简明示例的初学者。除了传统的“原始”TensorFlow实现之外,您还可以找到最新的TensorFlow API实践(例如layersestimatordataset、.)

更新(05/16/2020):将所有默认示例移动到TF2。对于TF v1示例:check here

教程索引

0-必备条件

1-简介

  • 你好,世界(notebook)。非常简单的示例,学习如何使用TensorFlow2.0+打印“hello world”
  • 基本操作(notebook)。一个涵盖TensorFlow 2.0+基本操作的简单示例

2-基本型号

  • 线性回归(notebook)。用TensorFlow 2.0+实现线性回归
  • Logistic回归(notebook)。用TensorFlow 2.0+实现Logistic回归
  • word2vec(单词嵌入)(notebook)。使用TensorFlow 2.0+从维基百科数据构建单词嵌入模型(Word2vec)
  • GBDT(梯度增强决策树)(notebooks)。使用TensorFlow 2.0+实现梯度增强决策树,以使用波士顿住房数据集预测房价

3-神经网络

受监督
  • 简单神经网络(notebook)。使用TensorFlow 2.0‘Layers’和‘Model’API构建一个简单的神经网络来对MNIST数字数据集进行分类
  • 简单神经网络(低级)(notebook)。MNIST数字数据集分类的简单神经网络RAW实现
  • 卷积神经网络(notebook)。使用TensorFlow 2.0+“Layers”和“model”API构建卷积神经网络对MNIST数字数据集进行分类
  • 卷积神经网络(低级)(notebook)。卷积神经网络对MNIST数字数据集分类的原始实现
  • 递归神经网络(LSTM)(notebook)。利用TensorFlow 2.0‘Layers’和‘Model’API构建递归神经网络(LSTM)对MNIST数字数据集进行分类
  • 双向递归神经网络(LSTM)(notebook)。利用TensorFlow 2.0+‘Layers’和‘Model’API构建双向递归神经网络(LSTM)对MNIST数字数据集进行分类
  • 动态递归神经网络(LSTM)(notebook)。使用TensorFlow 2.0+‘Layers’和‘Model’API构建一个执行动态计算的递归神经网络(LSTM),对可变长度的序列进行分类
无人监督
  • 自动编码器(notebook)。构建一个自动编码器,将图像编码到较低的维度并重建它
  • DCGAN(深度卷积生成对抗网络)(notebook)。构建深度卷积生成对抗网络(DCGAN)从噪声中生成图像

4-实用程序

  • 保存和恢复模型(notebook)。使用TensorFlow 2.0+保存和恢复模型
  • 构建自定义图层和模块(notebook)。了解如何构建自己的层/模块并将其集成到TensorFlow 2.0+模型中
  • 电路板(notebook)。使用TensorFlow 2.0+Ttensorboard跟踪和可视化神经网络计算图形、指标、权重等

5-数据管理

  • 加载和解析数据(notebook)。使用TensorFlow 2.0(Numpy阵列、图像、CSV文件、自定义数据)构建高效的数据管道。
  • 生成并加载TFRecords(notebook)。将数据转换为TFRecords格式,并使用TensorFlow 2.0+进行加载
  • 图像变换(即图像放大)(notebook)。使用TensorFlow 2.0+应用各种图像增强技术,生成用于训练的失真图像

6-硬件

  • 多GPU培训(notebook)。在CIFAR-10数据集上用多GPU训练卷积神经网络

TensorFlow v1

此处提供了TF v1的教程索引:TensorFlow v1.15 Examples或参见下面的示例列表

数据集

某些示例需要MNIST数据集来进行训练和测试。别担心,运行示例时会自动下载此数据集。MNIST是一个手写数字数据库,要快速描述该数据集,您可以查看this notebook

官网:http://yann.lecun.com/exdb/mnist/

安装

要下载所有示例,只需克隆此存储库:

git clone https://github.com/aymericdamien/TensorFlow-Examples

要运行它们,您还需要最新版本的TensorFlow。要安装它,请执行以下操作:

pip install tensorflow

或者(有GPU支持):

pip install tensorflow_gpu

有关TensorFlow安装的更多详细信息,可以查看TensorFlow Installation Guide

TensorFlow v1示例-索引

此处提供了TF v1的教程索引:TensorFlow v1.15 Examples

0-必备条件

1-简介

  • 你好,世界(notebook)(code)。学习如何使用TensorFlow打印“hello world”的非常简单的示例
  • 基本操作(notebook)(code)。介绍TensorFlow基本操作的简单示例
  • TensorFlow急切API基础知识(notebook)(code)。开始使用TensorFlow急切的API

2-基本型号

  • 线性回归(notebook)(code)。用TensorFlow实现线性回归
  • 线性回归(EAGER API)(notebook)(code)。使用TensorFlow的Eager API实现线性回归
  • Logistic回归(notebook)(code)。用TensorFlow实现Logistic回归
  • Logistic回归(EAGER API)(notebook)(code)。使用TensorFlow的Eager API实现Logistic回归
  • 最近邻居(notebook)(code)。用TensorFlow实现最近邻算法
  • K-均值(notebook)(code)。用TensorFlow构建K-Means分类器
  • 随机森林(notebook)(code)。用TensorFlow构建随机森林分类器
  • 梯度增强决策树(GBDT)(notebook)(code)。用TensorFlow构建梯度增强决策树(GBDT)
  • word2vec(单词嵌入)(notebook)(code)。使用TensorFlow从维基百科数据构建单词嵌入模型(word2vec

3-神经网络

受监督
  • 简单神经网络(notebook)(code)。建立一个简单的神经网络(也称为多层感知器)来对MNIST数字数据集进行分类。原始TensorFlow实现
  • 简单神经网络(tf.layer/估计器API)(notebook)(code)。使用TensorFlow‘Layers’和‘Estiator’API构建一个简单的神经网络(也称为多层感知器)来对MNIST数字数据集进行分类
  • 简单神经网络(EAGER API)(notebook)(code)。使用TensorFlow EAGER API构建简单的神经网络(也称为多层感知器)对MNIST数字数据集进行分类
  • 卷积神经网络(notebook)(code)。构建卷积神经网络对MNIST数字数据集进行分类。原始TensorFlow实现
  • 卷积神经网络(tf.layer/估计器API)(notebook)(code)。使用TensorFlow‘Layers’和‘Estiator’API构建卷积神经网络对MNIST数字数据集进行分类
  • 递归神经网络(LSTM)(notebook)(code)。构建递归神经网络(LSTM)对MNIST数字数据集进行分类
  • 双向递归神经网络(LSTM)(notebook)(code)。构建双向递归神经网络(LSTM)对MNIST数字数据集进行分类
  • 动态递归神经网络(LSTM)(notebook)(code)。建立递归神经网络(LSTM)进行动态计算,对不同长度的序列进行分类
无人监督
  • 自动编码器(notebook)(code)。构建一个自动编码器,将图像编码到较低的维度并重建它
  • 变分自动编码器(notebook)(code)。构建一个变分自动编码器(VAE),对噪声进行编码并生成图像
  • 生成性对抗性网络(GAN)(notebook)(code)。构建生成性对抗网络(GAN),从噪声中生成图像
  • DCGAN(深度卷积生成对抗网络)(notebook)(code)。构建深度卷积生成对抗网络(DCGAN)从噪声中生成图像

4-实用程序

  • 保存和恢复模型(notebook)(code)。使用TensorFlow保存和恢复模型
  • Tensorboard-图形和损耗可视化(notebook)(code)。使用Tensorboard可视化计算图形并绘制损耗
  • 触摸板-高级可视化(notebook)(code)。深入Tensorboard;可视化变量、渐变等

5-数据管理

  • 构建图像数据集(notebook)(code)。使用TensorFlow数据队列从图像文件夹或数据集文件构建您自己的图像数据集
  • TensorFlow数据集API(notebook)(code)。引入TensorFlow数据集API优化输入数据管道
  • 加载和解析数据(notebook)。构建高效的数据管道(Numpy数组、图像、CSV文件、自定义数据等)
  • 生成并加载TFRecords(notebook)。将数据转换为TFRecords格式,并加载
  • 图像变换(即图像放大)(notebook)。应用各种图像增强技术,生成用于训练的失真图像

6-多GPU

  • 多GPU上的基本操作(notebook)(code)。在TensorFlow中引入多GPU的一个简单示例
  • 在多GPU上训练神经网络(notebook)(code)。一种简单明了的TensorFlow在多GPU上训练卷积神经网络的实现

更多例子

以下示例来自TFLearn,一个为TensorFlow提供简化接口的库。你可以看看,有很多examplespre-built operations and layers

教程

  • TFLearn Quickstart通过一个具体的机器学习任务学习TFLearn的基础知识。构建和训练深度神经网络分类器

示例

Project-based-learning-基于项目的教程的精选列表

Project Based Learning

编程教程列表,学员可以在这些教程中从头开始构建应用程序。这些教程分为不同的主要编程语言。有些拥有混合的技术和语言

要开始,只需fork此仓库即可。有关投稿指南,请参阅CONTRIBUTING.md

目录:

C/C++:

网络编程

OpenGL:

C#:

闭合:

灵丹妙药

二郎

F编号:

Java:

JavaScript:

HTML和CSS:

移动应用:

Web应用程序:

节点:

VUE

其他(Hapi,Express.):

D3.js

Others (Hapi, Express…):

D3.js

游戏开发:

桌面应用程序:

其他:

科特林:

Lua:

L?VE:

巨蟒:

网络抓取:

机器人:

数据科学:

机器学习:

OpenCV:

深度学习:

Ruby on Rails:

反应:

开始:

PHP:

OCaml:

红宝石:

角度:

哈斯克尔:

R:

Rust:

Scala:

Swift:

其他资源