标签归档:Python

Flatbuffers-FlatBuffers:内存效率高的串行化库

Flatbuffers

Flatbuffers是一个跨平台的序列化库,旨在实现最高的内存效率。它允许您直接访问序列化数据,而无需先对其进行解析/解包,同时仍具有很好的向前/向后兼容性

请访问我们的landing page浏览我们的文档

支持的操作系统

  • Windows
  • MacOS X
  • Linux操作系统
  • 安卓系统
  • 以及使用最新的C++编译器的任何其他版本

支持的编程语言

  • C++
  • C#
  • C
  • GO
  • Java语言
  • JavaScript
  • PHP
  • python
  • Rust

还有更多的正在进行中

贡献

为这个项目做贡献,看见CONTRIBUTING

安全性

请参阅我们的Security Policy用于报告漏洞

许可

平缓冲器是按照Apache许可证2.0版进行许可的。看见LICENSE有关完整的许可证文本,请参阅

Pytudes-Python程序,通常很短,难度相当大,以完善特定的技能

Pytudes 是一种器乐作品,通常很短,难度很大,旨在为完善某一特定的音乐技能提供练习材料。

这是给谁的?

有些人认为编程就像Spotify:他们想知道如何安装应用程序,找到一个好的播放列表,然后点击“播放”按钮;之后他们就不想去想了。还有很多其他教程将告诉您如何针对各种编程任务执行与此相同的操作–这一篇不会有什么帮助。但是如果你把编程想成像弹钢琴一样–一门需要花费大量时间的手艺years为了完美-那我希望这套藏品能帮上忙

Jupyter(IPython)笔记本索引

编程示例
cdmng 2020年 Advent of Code 2020
cdmng 2018年 Advent of Code 2018
cdmng 2017年 Advent of Code 2017
cdmng 2016年 Advent of Code 2016
cdmng 2018年 Beal’s Conjecture Revisited
cdmng 2020年 Bicycling Statistics
cdmng 2018年 Can’t Stop
cdmng 2019年 Chaos with Triangles
cdmng 2017年 Conway’s Game of Life
cdmng 2020年 Generating and Solving Mazes
cdmng 2020年 Photo Focal Lengths
cdmng 2018年 Pickleball Tournament
cdmng 2017年 Project Euler Utilities
cdmng 2020年 Tracking Trump: Electoral Votes
逻辑与数字之谜
cdmng 2014年 Cryptarithmetic
cdmng 2018年 Euler’s Sum of Powers Conjecture
cdmng 2020年 Four 4s, Five 5s, and Countdowns
cdmng 2019年 Pairing Socks
cdmng 2018年 Sicherman Dice
cdmng 2014年 Sol Golomb’s Rectangle Puzzle
cdmng 2020年 Square Sum Puzzle
cdmng 2020年 When is Cheryl’s Birthday? (new: Mad Cheryl)
cdmng 2015年 When Cheryl Met Eve: A Birthday Story
cdmng 2015年 xkcd 1313: Regex Golf
cdmng 2015年 xkcd 1313: Regex Golf (Part 2: Infinite Problems)
“谜语者”(出自538)
cdmng 2017年 Battle Royale
cdmng 2021年 CrossProduct
cdmng 2020年 Flipping Cards; A Guessing Game
cdmng 2019年 Lottery
cdmng 2019年 How Many Soldiers to Beat the Night King?
cdmng 2017年 Misanthropic Neighbors
cdmng 2018年 Properly Ordered Card Hands
cdmng 2021年 Split the States
cdmng 2020年 Tour de 538
cdmng 2020年 Weighing Twelve Balls
cdmng 2020年 War. What is it Good For?
字谜
cdmng 2020年 Boggle / Inverse Boggle
cdmng 2020年 Chemical Element Spelling
cdmng 2020年 Equilength Numbers: FOUR = 4
cdmng 2017年 Gesture Typing
cdmng 2017年 Ghost: A Word game
cdmng 2018年 How to Do Things with Words: NLP in Python
cdmng 2020年 Jotto: A Word Guessing Game
cdmng 2015年 Let’s Code About Bike Locks
cdmng 2017年 Scrabble: Refactoring a Crossword Game Program
cdmng 2020年 Spelling Bee
cdmng 2017年 Translating English into Propositional Logic
cdmng 2017年 World’s Longest Palindrome
cdmng 2020年 World’s Shortest Portmantout Word
cdmng 2018年 xkcd 1970: Name Dominoes
概率与不确定性
cdmng 2018年 A Concrete Introduction to Probability
cdmng 2016年 Probability, Paradox, and the Reasonable Person Principle
cdmng 2020年 Estimating Probabilities with Simulations
cdmng 2019年 The Devil and the Coin Flip Game
cdmng 2020年 Dice Baseball
cdmng 2018年 Economics Simulation
cdmng 2012年 Poker Hand Ranking
cdmng 2020年 The Unfinished Game …. of Risk
cdmng 2019年 WWW: Who Will Win (NBA Title)?
计算机科学算法与概念
cdmng 2017年 Bad Grade, Good Experience
cdmng 2017年 BASIC Interpreter
cdmng 2017年 Convex Hull Problem
cdmng 2020年 How to Count Things
cdmng 2020年 Stable Matching Problem
cdmng 2017年 Symbolic Algebra, Simplification, and Differentiation
cdmng 2018年 Traveling Salesperson Problem

Python文件索引

文件 描述 文档
beal.py 寻找Beal猜想的反例 documentation
docex.py 用于运行单元测试的过时框架,类似于doctest
ibol.py 物种条形码练习 documentation
lettercount.py 将Google Ngram计数转换为字母计数 documentation
lis.py 用Python编写的LISP解释器 documentation
lispy.py 用Python编写的更好的Lisp解释器 documentation
lispytest.py 关于Lisp口译员的测试
pal.py 查找长回文 documentation
pal2.py 查找较长的回文 documentation
pal3.py 找到更长的回文 documentation
pytudes.py 预处理文本以生成此Readme.md文件
py2html.py Pretty-Printer将Python文件格式化为html
SET.py 分析纸牌游戏套装 documentation
spell.py 拼写校正器 documentation
sudoku.py 解决数独谜题的程序 documentation
testaccum.py 测试我失败的Pythonaccumulation display建议书 documentation
yaptu.py 还有另一个Python模板实用程序

面向程序员的练习课

我有了这个想法“练习曲”这个名字的一部分1978 book通过Charles Wetherell当我第一次学习编程时,这对我产生了很大的影响。我还留着我的那本

Locust-用Python编写的可伸缩用户负载测试工具

Locust是一个易于使用、可编写脚本和可扩展的性能测试工具。您可以使用常规Python代码定义用户的行为,而不是使用笨重的UI或特定于域的语言。这使得Locust具有无限的可扩展性,并且对开发人员非常友好

功能

用普通老式Python编写用户测试场景

如果希望用户循环、执行一些条件行为或进行一些计算,只需使用Python提供的常规编程构造即可。Locust在它自己的greenlet内运行每个用户(一个轻量级进程/协程)。这使您可以像编写普通(阻塞)Python代码一样编写测试,而不必使用回调或其他机制。因为您的场景“仅仅是python”,所以您可以使用常规IDE,并将测试作为常规代码进行版本控制(与使用XML或二进制格式的其他一些工具相反)

from locust import HttpUser, task, between

class QuickstartUser(HttpUser):
    wait_time = between(1, 2)

    def on_start(self):
        self.client.post("/login", json={"username":"foo", "password":"bar"})

    @task
    def hello_world(self):
        self.client.get("/hello")
        self.client.get("/world")

    @task(3)
    def view_item(self):
        for item_id in range(10):
            self.client.get(f"/item?id={item_id}", name="/item")

分布式和可扩展-支持数十万用户

Locust使运行分布在多台机器上的负载测试变得很容易。它是基于事件的(使用gevent),这使得单个进程可以处理数千个并发用户。虽然可能有其他工具能够在给定硬件上每秒执行更多请求,但每个Locust用户的低开销使其非常适合测试高并发工作负载

基于Web的用户界面

Locust有一个用户友好的Web界面,可以实时显示您的测试进度。您甚至可以在测试运行时更改负载。它还可以在没有UI的情况下运行,便于用于CI/CD测试

可以测试任何系统

即使Locust主要与网站/服务一起工作,它也可以用来测试几乎任何系统或协议。只是write a client您想要测试的内容,或者explore some created by the community

可黑客攻击

蝗虫很小,非常灵活,我们打算保持这种状态。如果你想send reporting data to that database & graphing system you like,包装对睡觉api的调用以处理系统的细节或运行totally custom load pattern,没有什么能阻止你!

链接

作者

许可证

根据麻省理工学院许可许可的开放源码(请参阅许可证有关详细信息,请参阅文件)

Ray 一个开放源码框架,为构建分布式应用程序提供简单、通用的API

Ray为构建分布式应用程序提供了简单、通用的API,为构建分布式应用程序提供简单、通用的API。Ray与RLlib(一个可伸缩的强化学习库)和Tune(一个可伸缩的超参数调整库)可以打包在一起。

Ray附带以下库,用于加速机器学习工作负载:

  • Tune:可伸缩的超参数调整
  • RLlib:可扩展强化学习
  • RaySGD:分布式培训包装器
  • Ray Serve:可扩展、可编程的服务

也有很多community integrations和Ray在一起,包括DaskMARSModinHorovodHugging FaceScikit-learn,以及其他。请查看full list of Ray distributed libraries here

使用以下选项安装Ray:pip install ray有关夜间车轮的信息,请参阅Installation page

快速入门

并行执行Python函数

import ray
ray.init()

@ray.remote
def f(x):
    return x * x

futures = [f.remote(i) for i in range(4)]
print(ray.get(futures))

要使用Ray的演员模型,请执行以下操作:

import ray
ray.init()

@ray.remote
class Counter(object):
    def __init__(self):
        self.n = 0

    def increment(self):
        self.n += 1

    def read(self):
        return self.n

counters = [Counter.remote() for i in range(4)]
[c.increment.remote() for c in counters]
futures = [c.read.remote() for c in counters]
print(ray.get(futures))

Ray程序可以在一台计算机上运行,也可以无缝扩展到大型群集。要在云中执行上述Ray脚本,只需下载this configuration file,然后运行:

ray submit [CLUSTER.YAML] example.py --start

阅读有关以下内容的更多信息launching clusters

调整快速入门

Tune是一个用于任何规模的超参数调优的库

要运行此示例,您需要安装以下软件:

$ pip install "ray[tune]"

此示例运行并行格网搜索以优化示例目标函数

from ray import tune


def objective(step, alpha, beta):
    return (0.1 + alpha * step / 100)**(-1) + beta * 0.1


def training_function(config):
    # Hyperparameters
    alpha, beta = config["alpha"], config["beta"]
    for step in range(10):
        # Iterative training function - can be any arbitrary training procedure.
        intermediate_score = objective(step, alpha, beta)
        # Feed the score back back to Tune.
        tune.report(mean_loss=intermediate_score)


analysis = tune.run(
    training_function,
    config={
        "alpha": tune.grid_search([0.001, 0.01, 0.1]),
        "beta": tune.choice([1, 2, 3])
    })

print("Best config: ", analysis.get_best_config(metric="mean_loss", mode="min"))

# Get a dataframe for analyzing trial results.
df = analysis.results_df

如果安装了TensorBoard,则自动可视化所有试验结果:

tensorboard --logdir ~/ray_results

RLlib快速入门

RLlib是构建在Ray之上的用于强化学习的开源库,它为各种应用程序提供了高可伸缩性和统一的API

pip install tensorflow  # or tensorflow-gpu
pip install "ray[rllib]"
import gym
from gym.spaces import Discrete, Box
from ray import tune

class SimpleCorridor(gym.Env):
    def __init__(self, config):
        self.end_pos = config["corridor_length"]
        self.cur_pos = 0
        self.action_space = Discrete(2)
        self.observation_space = Box(0.0, self.end_pos, shape=(1, ))

    def reset(self):
        self.cur_pos = 0
        return [self.cur_pos]

    def step(self, action):
        if action == 0 and self.cur_pos > 0:
            self.cur_pos -= 1
        elif action == 1:
            self.cur_pos += 1
        done = self.cur_pos >= self.end_pos
        return [self.cur_pos], 1 if done else 0, done, {}

tune.run(
    "PPO",
    config={
        "env": SimpleCorridor,
        "num_workers": 4,
        "env_config": {"corridor_length": 5}})

Ray Serve快速入门

Ray Serve是一个构建在Ray之上的可伸缩的模型服务库。它是:

  • 框架不可知性:使用相同的工具包提供各种服务,从使用PyTorch或TensorFlow&Kera等框架构建的深度学习模型到Scikit-Learning模型或任意业务逻辑
  • Python优先:在纯Python中配置声明性服务的模型,不需要YAML或JSON配置
  • 以性能为导向:启用批处理、流水线和GPU加速以提高模型的吞吐量
  • 原生合成:允许您通过将多个模型组合在一起来驱动单个预测来创建“模型管道”
  • 水平可扩展:随着您添加更多的机器,Serve可以线性扩展。使您的ML支持的服务能够处理不断增长的流量

要运行此示例,您需要安装以下软件:

$ pip install scikit-learn
$ pip install "ray[serve]"

此示例Run服务于一个SCRICKIT-LEARN梯度增强分类器

from ray import serve
import pickle
import requests
from sklearn.datasets import load_iris
from sklearn.ensemble import GradientBoostingClassifier

# Train model
iris_dataset = load_iris()
model = GradientBoostingClassifier()
model.fit(iris_dataset["data"], iris_dataset["target"])

# Define Ray Serve model,
class BoostingModel:
    def __init__(self):
        self.model = model
        self.label_list = iris_dataset["target_names"].tolist()

    def __call__(self, flask_request):
        payload = flask_request.json["vector"]
        print("Worker: received flask request with data", payload)

        prediction = self.model.predict([payload])[0]
        human_name = self.label_list[prediction]
        return {"result": human_name}


# Deploy model
client = serve.start()
client.create_backend("iris:v1", BoostingModel)
client.create_endpoint("iris_classifier", backend="iris:v1", route="/iris")

# Query it!
sample_request_input = {"vector": [1.2, 1.0, 1.1, 0.9]}
response = requests.get("http://localhost:8000/iris", json=sample_request_input)
print(response.text)
# Result:
# {
#  "result": "versicolor"
# }

更多信息

较旧的文档:

参与其中

Spleeter-Deezer 源分离库,包括预先训练的模型

关于

SpleeterDeezer编写了预先训练好的模型的源分隔库Python并使用Tensorflow它使训练源分离模型变得很容易(假设您有一个孤立源的数据集),并且提供了已经训练过的用于执行各种风格的分离的最先进的模型:

  • 人声(歌声)/伴奏分离(2 stems)
  • 人声/鼓/低音/其他分离(4 stems)
  • 人声/鼓/低音/钢琴/其他分离(5 stems)

2杆和4杆型号有high performancesmusdb数据集。Spleeter速度也非常快,因为当在GPU上运行时,它可以将音频文件分离到4条主干,速度比实时快100倍

我们设计了Spleeter这样你就可以直接从command line以及直接在您自己的开发管道中作为Python library它可以与安装在一起pip或与以下内容一起使用Docker

项目和软件使用Spleeter

自从发布以来,已经有多个叉子暴露出来了。Spleeter通过引导式用户界面(GUI)或独立的免费或付费网站。请注意,我们不会主办、维护或直接支持任何此类计划

也就是说,很多很酷的项目都建在我们的基础上。值得注意的是,移植到Ableton Live生态系统通过Spleeter 4 Max项目

Spleeter专业音频软件也使用了预先训练好的模型。以下是一个非详尽的列表:

🆕Spleeter是正在进行中的基线Music Demixing Challenge好了!

快速入门

想试一下,但不想安装任何东西吗?我们已经建立了一个Google Colab

准备好加入挖洞了吗?只需几行代码,您就可以安装Spleeter并从示例音频文件中分离声乐和伴奏部分。您需要先安装ffmpeglibsndfile它可以在大多数平台上使用Conda

# install dependencies using conda
conda install -c conda-forge ffmpeg libsndfile
# install spleeter with pip
pip install spleeter
# download an example audio file (if you don't have wget, use another tool for downloading)
wget https://github.com/deezer/spleeter/raw/master/audio_example.mp3
# separate the example audio into two components
spleeter separate -p spleeter:2stems -o output audio_example.mp3

⚠️请注意,我们不再推荐使用conda用于安装喷射器

⚠️苹果M1芯片有一些已知的问题,主要是由于TensorFlow兼容性问题。在这些问题得到解决之前,您可以使用this workaround

您应该会得到两个独立的音频文件(vocals.wavaccompaniment.wav)在output/audio_example文件夹

有关详细文档,请查看repository wiki

开发和测试

此项目使用以下工具进行管理Poetry,要运行测试套件,您可以执行以下命令集:

# Clone spleeter repository
git clone https://github.com/Deezer/spleeter && cd spleeter
# Install poetry
pip install poetry
# Install spleeter dependencies
poetry install
# Run unit test suite
poetry run pytest tests/

参考文献

如果您使用Spleeter在您的工作中,请引用:

@article{spleeter2020,
  doi = {10.21105/joss.02154},
  url = {https://doi.org/10.21105/joss.02154},
  year = {2020},
  publisher = {The Open Journal},
  volume = {5},
  number = {50},
  pages = {2154},
  author = {Romain Hennequin and Anis Khlif and Felix Voituret and Manuel Moussallam},
  title = {Spleeter: a fast and efficient music source separation tool with pre-trained models},
  journal = {Journal of Open Source Software},
  note = {Deezer Research}
}

许可证

的代码SpleeterMIT-licensed

免责声明

如果您计划使用Spleeter对于受版权保护的材料,请确保事先获得版权所有者的适当授权

故障排除

Spleeter是一款复杂的软件,尽管我们不断尝试改进和测试它,但您在运行它时可能会遇到意想不到的问题。如果是这样的话,请查看FAQ page第一个以及currently open issues

Windows用户

似乎有时快捷命令spleeter在Windows上无法正常工作。这是一个已知的问题,我们希望很快就能解决。在此期间,更换spleeter separate通过python -m spleeter separate在命令行中,它应该可以工作

贡献

如果您愿意参与开发Spleeter我们非常欢迎您这样做。请不要犹豫向我们提出拉货要求,我们会尽最大努力快速检查。请查看我们的guidelines第一

注意事项

此存储库包括演示音频文件audio_example.mp3这是史蒂文·M·布莱恩特(Steven M Bryant)“慢动作梦”(Slow Motion Dream)的节选(C)版权所有2011年,版权归知识共享署名(3.0)license英国《金融时报》:CSoul,Alex Beroza&Robert Siekawitch

ZeroNet 使用比特币加密和BitTorrent网络的去中心化网站

ZeroNet

使用比特币加密和BitTorrent网络的分散网站-https://zeronet.io/onion

为什么?

  • 我们相信开放、自由和不受审查的网络和通信
  • 没有单点故障:只要至少有一个对等点在为站点提供服务,站点就会保持在线
  • 无托管费用:网站由访问者提供服务
  • 无法关闭:它无处不在,因为它无处不在
  • 快速且离线工作:即使互联网不可用,您也可以访问网站

功能

  • 实时更新的站点
  • Namecoin.bit域支持
  • 易于设置:解包并运行
  • 只需单击一次即可克隆网站
  • 无密码BIP32基于授权:您的帐户受与您的比特币钱包相同的加密保护
  • 内置支持P2P数据同步的SQL Server:使站点开发更轻松,页面加载速度更快
  • 匿名性:完全支持ToR网络,支持.onion隐藏服务,而不是IPv4地址
  • TLS加密连接
  • 自动打开UPnP端口
  • 支持多用户(Openproxy)的插件
  • 可与任何浏览器/操作系统配合使用

它怎麽工作?

  • 启动后zeronet.py您将能够使用以下工具访问ZERONET站点http://127.0.0.1:43110/{zeronet_address}(例如http://127.0.0.1:43110/1HeLLo4uzjaLetFx6NH3PMwFP3qbRbTf3D)
  • 当您访问新的zeronet站点时,它会尝试使用BitTorrent网络查找对等点,以便可以下载站点文件(html、css、js)。从他们那里
  • 您还将为每个访问过的站点提供服务
  • 每个站点都包含一个content.json包含sha512散列中的所有其他文件和使用站点私钥生成的签名的文件
  • 如果站点所有者(拥有站点地址的私钥)修改站点,则他/她签署新的content.json并将其发布给同行。之后,对等体验证content.json完整性(使用签名),他们下载修改后的文件并将新内容发布给其他对等点

Slideshow about ZeroNet cryptography, site updates, multi-user sites »

Frequently asked questions »

ZeroNet Developer Documentation »

屏幕截图


More screenshots in ZeroNet docs »

如何加入

窗口

MacOS

Linux(x86-64位)

  • wget https://github.com/HelloZeroNet/ZeroNet-linux/archive/dist-linux64/ZeroNet-py3-linux64.tar.gz
  • tar xvpfz ZeroNet-py3-linux64.tar.gz
  • cd ZeroNet-linux-dist-linux64/
  • 从以下内容开始:./ZeroNet.sh
  • 导航到以下位置,在浏览器中打开ZeroHello登录页:http://127.0.0.1:43110/

提示:开始于./ZeroNet.sh --ui_ip '*' --ui_restrict your.ip.address要在Web界面上允许远程连接,请执行以下操作

Android(ARM、ARM 64、x86)

码头工人

有一个官方形象,从源头上构建,地址是:https://hub.docker.com/r/nofish/zeronet/

从源安装

  • wget https://github.com/HelloZeroNet/ZeroNet/archive/py3/ZeroNet-py3.tar.gz
  • tar xvpfz ZeroNet-py3.tar.gz
  • cd ZeroNet-py3
  • sudo apt-get update
  • sudo apt-get install python3-pip
  • sudo python3 -m pip install -r requirements.txt
  • 从以下内容开始:python3 zeronet.py
  • 导航到以下位置,在浏览器中打开ZeroHello登录页:http://127.0.0.1:43110/

当前限制

  • 没有类似激流的文件拆分功能来支持大文件(添加了大文件支持)
  • 不比BitTorrent更匿名(添加了内置完全ToR支持)
  • 未压缩文件事务或尚未加密(添加了TLS加密)
  • 没有私人网站

我如何创建一个ZeroNet站点?

  • 单击>创建新的空站点网站上的菜单项ZeroHello
  • 你会成为重定向一个只能由您修改的全新站点!
  • 您可以在中查找和修改站点内容数据/[您的网站地址]目录
  • 修改打开站点后,向左拖动右上角的“0”按钮,然后按签名发布底部的按钮

下一步:ZeroNet Developer Documentation

帮助保持此项目的活力

赞助商

谢谢!

CNTK-微软认知工具包(CNTK),一个开源的深度学习工具包

CNTK

聊天 Windows生成状态 Linux构建状态

Microsoft认知工具包(https://cntk.ai)是一个统一的深度学习工具包,它通过有向图将神经网络描述为一系列计算步骤。在这个有向图中,叶节点表示输入值或网络参数,而其他节点表示对其输入的矩阵运算。CNTK允许用户轻松地实现和组合流行的模型类型,例如前馈DNN、卷积网络(CNN)和递归网络(RNNs/LSTM)。它通过跨多个GPU和服务器的自动区分和并行化实现随机梯度下降(SGD,误差反向传播)学习。自2015年4月以来,CNTK一直在开源许可证下提供。我们希望社区能够利用CNTK的优势,通过开放源码工作代码的交流,更快地分享想法

安装

安装夜间软件包

如果您更喜欢使用MASTER的最新CNTK位,请使用CNTK夜间软件包之一:

学习CNTK

您可以通过以下资源了解更多关于使用和贡献CNTK的信息:

更多信息

免责声明

亲爱的社区:

随着我们对ONNX和ONNX Runtime的持续贡献,我们已经使AI框架生态系统内的互操作变得更容易,并为传统ML模型和深度神经网络访问高性能的跨平台推理功能。在过去的几年里,我们有幸开发了这样的关键开源机器学习项目,包括Microsoft Cognitive Toolkit,它使其用户能够利用整个行业在大规模深度学习方面的进步

今天的2.7版本将是CNTK的最后一个主要版本。我们可能会有一些后续的小版本来修复错误,但这些版本将根据具体情况进行评估。此版本之后没有开发新功能的计划

CNTK 2.7版本完全支持ONNX 1.4.1,我们鼓励那些寻求将其CNTK模型运行化的用户利用ONNX和ONNX Runtime。展望未来,用户可以通过众多支持ONNX的框架继续利用不断发展的ONNX创新。例如,用户可以从PyTorch本机导出ONNX模型,或使用TensorFlow-ONNX转换器将TensorFlow模型转换为ONNX

我们非常感谢自CNTK最初开放源码发布以来多年来我们从贡献者和用户那里得到的所有支持。CNTK使微软团队和外部用户都能够在各种深度学习应用程序中执行复杂而大规模的工作负载,例如该框架的创始人微软语音研究人员在语音识别方面取得的历史性突破

随着ONNX越来越多地被用于为Bing和Office等微软产品提供服务的模型,我们致力于将研究创新与生产的严格要求相结合,以推动生态系统向前发展

最重要的是,我们的目标是使跨软件和硬件堆栈的深度学习创新尽可能开放和可访问。我们将努力将CNTK的现有优势和最新的最新研究成果应用到其他开源项目中,以真正扩大此类技术的应用范围。

怀着感激之情,

–CNTK团队

Microsoft开放源代码行为准则

本项目采用了Microsoft Open Source Code of Conduct有关更多信息,请参阅Code of Conduct FAQ或联系方式opencode@microsoft.com如有任何其他问题或评论

新闻

您可以在以下网站上找到更多新闻the official project feed

2019-03-29CNTK 2.7.0

此版本的亮点

  • 已迁移到适用于Windows和Linux的CUDA 10
  • 在ONNX导出中支持高级RNN环路
  • 以ONNX格式导出大于2 GB的型号
  • 在大脑脚本训练动作中支持FP16

支持CUDA 10的CNTK

CNTK现在支持CUDA 10。这需要更新到Visual Studio 2017 v15.9 for Windows的构建环境

要在Windows上设置生成和运行时环境,请执行以下操作:

要使用docker在Linux上设置构建和运行时环境,请使用Dockerfiles构建Unbuntu 16.04坞站映像here对于其他Linux系统,请参考Dockerfile来设置CNTK的依赖库

在ONNX导出中支持高级RNN环路

带有递归循环的CNTK模型可以通过扫描操作导出到ONNX模型

以ONNX格式导出大于2 GB的型号

要以ONNX格式导出大于2 GB的模型,可使用cntk.Function API:Save(Self,FileName,Format=ModelFormat.CNTKv2,USE_EXTERNAL_FILES_TO_STORE_PARAMETERS=FALSE),并将‘Format’设置为ModelFormat.ONNX,将Use_External_Files_to_Store_Parameters设置为True。在这种情况下,模型参数保存在外部文件中。使用onnxrun进行模型评估时,导出的模型应与外部参数文件一起使用

2018/11/26
Netron现在支持可视化CNTK v1和CNTK v2.model文件

项目变更日志

2018-09-17CNTK 2.6.0

高效群卷积

对CNTK中的分组卷积实现进行了更新。更新后的实现不再创建分组卷积的子图(使用切片和拼接),而是直接使用cuDNN7和MKL2017API。这在性能和型号大小方面都改善了体验

例如,对于具有以下属性的单个组卷积OP:

  • 输入张量(C,H,W)=(32,128,128)
  • 输出通道数=32(通道倍增为1)
  • 组=32(深度卷积)
  • 内核大小=(5,5)

此单个节点的比较编号如下:

第一个标题 GPU EXEC。时间(单位为毫秒,平均运行1000次) CPU EXEC。时间(单位为毫秒,平均运行1000次) 模型大小(KB,CNTK格式)
旧实施 9.349 41.921 38
新实施 6.581 9.963 5个
加速/节约近似值 30%近似 65-75%近似 87%

顺序卷积

更新了CNTK中序列卷积的实现。更新后的实现创建单独的顺序卷积层。与规则卷积层不同,该操作还在动态轴(序列)上进行卷积,并将过滤_Shape[0]应用于该轴。更新后的实现支持更广泛的情况,例如序列轴的跨度>1

例如,对一批单通道黑白图像进行顺序卷积。这些图像的高度相同,固定为640,但每个图像的宽度都是可变的。然后,宽度由顺序轴表示。启用填充,宽度和高度的步长均为2

操作员

深度到空间和空间到深度

有一个突破性的变化,那就是深度到空间空间到深度操作员。这些已经更新,以符合ONNX规范,特别是深度维度在空间维度中作为块放置的排列方式,反之亦然。请参考这两个操作的更新文档示例以查看更改

谭恩美和阿坦

添加了对三角运算的支持TanAtan

ELU

添加了对以下各项的支持alphaELU操作中的属性

卷积

更新的自动填充算法Convolution在不影响最终卷积输出值的情况下,在CPU上尽最大努力产生对称填充。此更新增加了MKL API可以覆盖的案例范围,并提高了性能,例如ResNet50

默认参数顺序

有一个突破性的变化,那就是论据属性。默认行为已更新,以Python顺序而不是C++顺序返回参数。这样,它将以与输入到操作中相同的顺序返回参数。如果您仍然希望以C++顺序获取参数,只需覆盖全局选项即可。此更改应仅影响以下操作:Times、TransposeTimes和Gemm(内部)

错误修复

  • 已更新卷积图层的文档,以包括组参数和膨胀参数
  • 添加了改进的分组卷积输入验证
  • 已更新LogSoftMax要使用更稳定的数值实现,请执行以下操作
  • 修复了聚集OP的错误渐变值
  • 添加了对python克隆替换中的“None”节点的验证
  • 添加了卷积中填充通道轴的验证
  • 添加了CNTK本机默认lotusIR记录器,以修复加载某些ONNX型号时出现的“尝试使用DefaultLogger”错误
  • 添加了ONNX TypeStrToProtoMap的正确初始化
  • 更新了python doctest,以处理较新版本号(Version>=1.14)的不同打印格式
  • 当内核中心位于填充的输入单元上时,固定池(CPU)可生成正确的输出值

ONNX

更新

  • 更新了CNTK的ONNX导入/导出以使用ONNX 1.2规范
  • 对如何在导出和导入中处理批次和序列轴进行了重大更新。因此,可以准确地处理复杂场景和边缘情况
  • 更新了CNTK的ONNXBatchNormalizationOP导出/导入到最新规范
  • 将模型域添加到ONNX模型导出
  • 改进了ONNX型号导入和导出期间的错误报告
  • 已更新DepthToSpaceSpaceToDepth操作以匹配ONNX关于如何将深度维度放置为挡路维度的排列规范
  • 添加了对导出的支持alpha中的属性ELUONNX操作
  • 大修是为了ConvolutionPooling导出。与以前不同的是,这些操作不会导出显式Pad在任何情况下都可操作
  • 大修是为了ConvolutionTranspose导出和导入。属性,如output_shapeoutput_padding,以及pads完全支持
  • 添加了对CNTK的支持StopGradient作为一个禁区
  • 添加了对TOPK操作的ONNX支持
  • 添加了对序列操作的ONNX支持:Sequence.Slice、Sequence.first、Sequence.last、Sequence.duce_sum、Sequence.Reduce_max、Sequence.softmax。对于这些操作,不需要扩展ONNX规范。CNTK ONNX Exporter仅为这些序列操作构建计算等效图
  • 添加了对Softmax操作的完全支持
  • 使CNTK广播运营与ONNX规范兼容
  • 在CNTK ONNX导出器中处理TO_BATCH、TO_SEQUENCE、UNPACK_BATCH、Sequence.Unpack工序
  • 用于导出ONNX测试用例以供其他工具箱运行和验证的ONNX测试
  • 固定的Hardmax/Softmax/LogSoftmax导入/导出
  • 添加了对以下各项的支持SelectOP导出
  • 添加了对多个三角运算的导入/导出支持
  • 更新了对ONNX的CNTK支持MatMul操作
  • 更新了对ONNX的CNTK支持Gemm操作
  • 更新了CNTK的ONNXMeanVarianceNormalizationOP导出/导入到最新规范
  • 更新了CNTK的ONNXLayerNormalizationOP导出/导入到最新规范
  • 更新了CNTK的ONNXPReluOP导出/导入到最新规范
  • 更新了CNTK的ONNXGatherOP导出/导入到最新规范
  • 更新了CNTK的ONNXImageScalerOP导出/导入到最新规范
  • 更新了CNTK的ONNXReduce操作导出/导入到最新规范
  • 更新了CNTK的ONNXFlattenOP导出/导入到最新规范
  • 添加了对ONNX的CNTK支持Unsqueeze操作

错误或次要修复:

  • 更新了LRN OP以匹配ONNX 1.2规范,其中size属性具有直径的语义,而不是半径的语义。添加了LRN内核大小大于通道大小时的验证
  • 已更新Min/Max导入实现以处理各种输入
  • 修复了在现有ONNX模型文件上重新保存时可能出现的文件损坏

网络支持

Cntk.Core.Managed库已正式转换为.Net标准,并在Windows和Linux上支持.Net Core和.Net Framework应用程序。从这个版本开始,.NET开发人员应该能够使用新的.Net SDK样式项目文件(包管理格式设置为PackageReference)恢复CNTK Nuget包

下面的C#代码现在可以在Windows和Linux上运行:

例如,只需在.Net Core应用程序的.csproj文件中添加ItemGroup子句就足够了:>netcoreapp2.1>x64>

错误或次要修复:

  • 修复了Linux上C#string和char到本机wstring和wchar UTF转换的问题
  • 修复了代码库中的多字节和宽字符转换
  • 修复了针对.Net标准打包的Nuget包机制
  • 修复了C#API中值类中的内存泄漏问题,其中在对象销毁时不调用Dispose

杂项

2018-04-16CNTK 2.5.1

使用捆绑包中包含的第三方库(Python轮包)重新打包CNTK 2.5


2018-03-15CNTK 2.5

将探查器详细信息输出格式更改为chrome://tracing

启用逐节点计时。工作示例here

  • 启用探查器时,按节点计时会在探查器详细信息中创建项目
  • Python中的用法:
import cntk as C C.debugging.debug.set_node_timing(True) C.debugging.start_profiler() # optional C.debugging.enable_profiler() # optional #<trainer|evaluator|function> executions <trainer|evaluator|function>.print_node_timing() C.debugging.stop_profiler()

中的Profiler详细信息视图示例chrome://tracing

使用MKL提高CPU推理性能

  • 加速用于Float32的英特尔CPU推理中的一些常见张量运算,特别是对于完全连接的网络
  • 可以通过以下方式打开/关闭cntk.cntk_py.enable_cpueval_optimization()/cntk.cntk_py.disable_cpueval_optimization()

1BitSGD并入CNTK

  • 1BitSGD源代码现已随CNTK许可证(MIT许可证)一起在以下位置提供Source/1BitSGD/
  • 1bitsgd生成目标已合并到现有GPU目标中

新的损耗函数:分层Softmax

  • 感谢@耀诚记的贡献!

具有多个学习者的分布式培训

操作员

  • 已添加MeanVarianceNormalization操作员

错误修复

  • 修复了教程201b中的收敛问题
  • 固定的合用/解合,以支持序列的自由维度
  • 修复了中的崩溃CNTKBinaryFormat跨越扫描边界时的反序列化程序
  • 修正了RNN阶跃函数在标量广播中的形状推断错误
  • 修复了在以下情况下的构建错误mpi=no
  • 通过提高打包阈值和暴露V2中的旋钮来提高分布式训练聚合速度
  • 修复了MKL布局中的内存泄漏
  • 修复了中的错误cntk.convertAPI Inmisc.converter.py,这样可以防止将复杂的网络

ONNX

  • 更新
    • CNTK导出的ONNX型号现在ONNX.checker合规
    • 添加了对CNTK的ONNX支持OptimizedRNNStack操作员(仅限LSTM)
    • 添加了对LSTM和GRU运算符的支持
    • 添加了对实验性ONNX操作的支持MeanVarianceNormalization
    • 添加了对实验性ONNX操作的支持Identity
    • 添加了对导出CNTK的支持LayerNormalization使用ONNX的图层MeanVarianceNormalization操作
  • 错误或次要修复:
    • 轴属性在CNTK的ONNX中是可选的Concat操作员
    • 修复标量ONNX广播中的错误
    • 修复ONNX ConvTranspose运算符中的错误
    • 修复向后兼容性错误LeakyReLu(参数“alpha”恢复为双精度类型)

杂项

  • 添加了新的接口find_by_uid()在……下面cntk.logging.graph

2018-02-28CNTK支持夜间构建

如果您更喜欢使用MASTER提供的最新CNTK位,请使用CNTK夜间软件包之一

或者,您也可以单击相应的构建标记以登录到夜间构建页面


2018-01-31CNTK 2.4

亮点:

  • 已移至CUDA9、cuDNN 7和Visual Studio 2017
  • 删除了Python 3.4支持
  • 添加了Volta GPU和FP16支持
  • 更好的ONNX支持
  • CPU性能改进
  • 更多运营

运营部

  • top_k操作:在正向传递中,它计算沿指定轴的顶部(最大)k值和相应的索引。在后向传递中,梯度分散到顶部k个元素(不在顶部k中的元素获得零梯度)
  • gather操作现在支持轴参数
  • squeezeexpand_dims轻松移除和添加单一轴的操作
  • zeros_likeones_like运营部。在许多情况下,您可以仅仅依靠CNTK正确地广播一个简单的0或1,但有时您需要实际的张量
  • depth_to_space:将输入张量中的元素从深度维度重新排列到空间块中。此操作的典型用法是实现某些图像超分辨率模型的亚像素卷积
  • space_to_depth:将输入张量中的元素从空间维度重新排列到深度维度。它在很大程度上与DepthToSpace相反
  • sum操作:创建计算输入张量的元素求和的新函数实例
  • softsign操作:创建计算输入张量的元素软符号的新函数实例
  • asinh操作:创建一个新的函数实例,该实例计算输入张量的逐个元素的asinh
  • log_softmax操作:创建计算输入张量的logsoftmax规格化值的新函数实例
  • hard_sigmoid操作:创建计算输入张量的hard_sigmoid归一化值的新函数实例
  • element_andelement_notelement_orelement_xor基于元素的逻辑运算
  • reduce_l1操作:沿提供的轴计算输入张量元素的L1范数
  • reduce_l2操作:沿提供的轴计算输入张量元素的L2范数
  • reduce_sum_square操作:沿提供的轴计算输入张量元素的平方和
  • image_scaler操作:通过缩放图像的各个值来更改图像

ONNX

  • CNTK中对ONNX支持进行了多项改进
  • 更新
    • 更新的ONNXReshape要处理的操作InferredDimension
    • 添加producer_nameproducer_versionONNX模型的字段
    • 在两个都不是的情况下处理案件auto_pad也不是pads属性在ONNX中指定Conv操作
  • 错误修复
    • 修复了ONNX中的错误PoolingOP序列化
    • 修复错误以创建ONNXInputVariable只有一个批次轴
    • 对ONNX实施的错误修复和更新Transpose操作以匹配更新的规范
    • 对ONNX实施的错误修复和更新ConvConvTranspose,以及Pooling操作以匹配更新的规范

操作员

  • 群卷积
    • 修复了组卷积中的错误。CNTK的输出ConvolutionOP将针对>1的组进行更改。预计在下一版本中将对组卷积进行更优化的实施
    • 更好的分组卷积错误报告Convolution图层

卤化物二元卷积

  • CNTK版本现在可以使用可选Halide要构建的库Cntk.BinaryConvolution.so/dll库,该库可以与netopt模块。该库包含优化的二进制卷积操作符,其性能优于基于Python的二进制卷积操作符。要在内部版本中启用Halide,请下载Halide release并将其设置为HALIDE_PATH开始构建之前的环境变量。在Linux中,您可以使用./configure --with-halide[=directory]来启用它。有关如何使用此功能的详细信息,请参阅How_to_use_network_optimization

有关更多信息,请参阅Release NotesCNTK Releases page

Celery-分布式任务队列(开发分支)

版本: 5.1.2(太阳谐波)
网站: https://docs.celeryproject.org/en/stable/index.html
下载: https://pypi.org/project/celery/
来源: https://github.com/celery/celery/
关键词: 任务、队列、作业、异步、rabbitmq、amqp、redis、python、分布式、参与者

捐款

这项工程有赖于你的慷慨捐助。

如果您正在使用celery创建商业产品,请考虑成为我们的backer或者我们的sponsor确保celery的未来

对于企业而言

作为Tidelift订阅的一部分提供

的维护人员celery数以千计的其他软件包正在与Tidelift合作,为您用来构建应用程序的开源依赖项提供商业支持和维护。节省时间、降低风险并提高代码的健全性,同时付钱给您使用的确切依赖项的维护人员。Learn more.

什么是任务队列?

任务队列用作跨线程或计算机分配工作的机制

任务队列的输入是一个工作单元,称为任务,专用的工作进程然后不断地监视队列以查找要执行的新工作

celery通过消息进行通信,通常使用经纪人在客户和工人之间进行调解。为了启动任务,客户端将消息放到队列中,然后代理将消息传递给工作器

celery系统可以由多个工作进程和代理组成,为高可用性和水平扩展让路。

celery是用Python编写的,但是协议可以用任何语言实现。除了Python,还有node-celery对于Node.js,一个PHP clientgocelery对于戈朗,还有rusty-celery对于生锈

语言互操作性也可以通过使用WebHook来实现,其方式是客户端将工作人员请求的URL入队

我需要什么?

celery5.1.2版运行在

  • Python(3.6、3.7、3.8、3.9)
  • Pypy3.6(7.6)

这是下一版本的celery,将支持Python 3.6或更高版本

如果您运行的是较旧版本的Python,则需要运行较旧版本的celery:

  • Python 2.6:celery系列3.1或更早版本
  • Python 2.5:celery系列3.0或更早版本
  • Python 2.4:celery系列2.2或更早版本
  • Python 2.7:celery4.x系列

celery是一个资金最少的项目,所以我们不支持Microsoft Windows。请不要打开任何与该平台相关的问题

celery通常与message broker一起使用来发送和接收消息。RabbitMQ、Redis传输功能齐全,但也有对无数其他解决方案的实验支持,包括使用SQLite进行本地开发

celery可以在单台计算机、多台计算机甚至跨数据中心运行

开始使用

如果这是您第一次尝试使用celery,或者您是以前版本的celery5.0.5或5.1.2的新手,那么您应该阅读我们的入门教程:

您还可以通过使用托管代理传输CloudAMQP开始使用celery。RabbitMQ最大的主机提供商是celery的骄傲赞助商

celery是

  • 简单

    celery很容易使用和维护,而且确实不需要配置文件

    它有一个活跃、友好的社区,您可以与之交谈以寻求支持,例如在我们的mailing-list,或IRC通道

    下面是您可以制作的最简单的应用程序之一:

    from celery import Celery
    
    app = Celery('hello', broker='amqp://guest@localhost//')
    
    @app.task
    def hello():
        return 'hello world'
  • 高可用性

    在连接丢失或故障的情况下,工作人员和客户端将自动重试,一些代理通过以下方式支持HA主要/主要主/复制副本复制

  • 快地

    单个celery进程一分钟可以处理数百万个任务,往返延迟为亚毫秒级(使用RabbitMQ、py-librabbitmq和优化设置)

  • 灵活性

    几乎每一个地方celery可以自己扩展或使用,定制池实现、序列化程序、压缩方案、日志记录、调度程序、使用者、生产者、代理传输等等

它支持

  • 消息传输
  • 并发性
  • 结果商店
    • AMQP,Redis
    • memcached
    • SQL炼金术,Django ORM
    • Apache Cassandra、IronCache、Elasticsearch
  • 序列化
    • 泡菜JSONYAML消息包
    • zlibbzip2压缩
    • 加密消息签名

框架集成

celery很容易与web框架集成,其中一些框架甚至有集成包:

Django 不需要
Pyramid pyramid_celery
Pylons celery-pylons
Flask 不需要
web2py web2py-celery
Tornado tornado-celery

集成包并不是严格必需的,但是它们可以简化开发,有时它们还会添加重要的挂钩,比如在以下位置关闭数据库连接fork

文档

这个latest documentation托管在Read the Docs上,包含用户指南、教程和API参考

最新的中文文档托管在https://www.celerycn.io/中,包含用户指南、教程、接口接口等。

安装

您可以通过Python包索引(PyPI)或从源代码安装celery

要使用安装,请执行以下操作pip

$ pip install -U Celery

捆绑包

celery还定义了一组可用于安装celery的捆绑包以及给定功能的依赖项

您可以在需求中或在pip命令行中使用方括号。可以通过逗号分隔多个捆绑包来指定它们

$ pip install "celery[librabbitmq]"

$ pip install "celery[librabbitmq,redis,auth,msgpack]"

以下捆绑包可用:

序列化程序

celery[auth] 用于使用auth安全序列化程序
celery[msgpack] 用于使用msgpack序列化程序
celery[yaml] 用于使用YAML序列化程序

并发性

celery[eventlet] 用于使用eventlet游泳池
celery[gevent] 用于使用gevent游泳池

传输和后端

celery[librabbitmq] 用于使用librabbitmq C库
celery[redis] 将Redis用作消息传输或作为结果的后端
celery[sqs] 使用Amazon SQS作为消息传输
celery[tblib]: 用于使用task_remote_tracebacks功能
celery[memcache] 用于将memcached用作结果后端(使用pylibmc)
celery[pymemcache] 用于将memcached用作结果后端(纯Python实现)
celery[cassandra] 用于将Apache Cassandra用作DataStAX驱动程序的结果后端
celery[azureblockblob] 使用Azure Storage作为结果后端(使用azure-storage)
celery[s3] 使用S3存储作为结果后端
celery[couchbase] 将Couchbase用作结果后端
celery[arangodb] 使用ArangoDB作为结果后端
celery[elasticsearch] 用于将Elasticsearch用作结果后端
celery[riak] 使用Riak作为结果后端
celery[cosmosdbsql] 使用Azure Cosmos DB作为结果后端(使用pydocumentdb)
celery[zookeeper] 用于将ZooKeeper用作消息传输
celery[sqlalchemy] 使用SQLAlChemy作为结果后端(支持)
celery[pyro] 为了使用Pyro4消息传输(实验性的)
celery[slmq] 为了使用SoftLayer消息队列传输(实验性的)
celery[consul] 用于将Consul.io密钥/值存储用作消息传输或结果后端(实验性的)
celery[django] 指定Django支持的可能最低版本

您可能不应该在您的需求中使用它,它在这里仅供参考

从源下载并安装

从PyPI下载最新版本的celery:

https://pypi.org/project/celery/

您可以通过执行以下操作来安装它:

$ tar xvfz celery-0.0.0.tar.gz
$ cd celery-0.0.0
$ python setup.py build
# python setup.py install

如果您当前未使用虚拟环境,则必须以特权用户身份执行最后一个命令

使用开发版本

带管道

celery开发版本还需要kombuamqpbilliard,以及vine

您可以使用以下pip命令安装这些快照的最新版本:

$ pip install https://github.com/celery/celery/zipball/master#egg=celery
$ pip install https://github.com/celery/billiard/zipball/master#egg=billiard
$ pip install https://github.com/celery/py-amqp/zipball/master#egg=amqp
$ pip install https://github.com/celery/kombu/zipball/master#egg=kombu
$ pip install https://github.com/celery/vine/zipball/master#egg=vine

使用GIT

请参阅投稿部分

获取帮助

邮件列表

有关celery的用途、发展和未来的讨论,请加入celery-users邮件列表

IRC

来和我们在IRC上聊天吧。这个#celery频道位于Freenode网络

漏洞跟踪器

如果您有任何建议、错误报告或烦恼,请将它们报告给我们的问题跟踪器,地址为https://github.com/celery/celery/issues/

维基

https://github.com/celery/celery/wiki

学分

贡献者

这个项目的存在要归功于所有做出贡献的人。celery的开发发生在GitHub:https://github.com/celery/celery

我们非常鼓励您参与celery的开发。如果您不喜欢GitHub(出于某种原因),欢迎您发送常规补丁

请务必同时阅读Contributing to Celery部分,请参阅文档中的

支持者

感谢我们所有的支持者!🙏[Become a backer]

赞助商

通过成为赞助商来支持这个项目。您的徽标将在此处显示,并带有指向您的网站的链接。[Become a sponsor]


许可证

此软件在新的BSD许可证下获得许可。请参阅LICENSE完整许可证文本的顶级分发目录中的文件

Numpy-使用Python进行科学计算的基础软件包

NumPy是使用Python进行科学计算所需的基本软件包

它提供:

  • 功能强大的N维数组对象
  • 复杂的(广播)功能
  • 集成C/C++和Fortran代码的工具
  • 有用的线性代数、傅里叶变换和随机数功能

测试:

NumPy需要pytest然后,可以使用以下命令在安装后运行测试:

python -c 'import numpy; numpy.test()'

呼吁捐款

NumPy项目欢迎您的专业知识和热情!

小的改进或修复总是值得赞赏的;问题被标记为“good
first issue”
可能是一个很好的起点。如果您正在考虑对源代码做出更大的贡献,请通过mailing
list
第一

编写代码并不是为NumPy做贡献的唯一方式。您还可以:

  • 审核拉式请求
  • 分流问题
  • 开发教程、演示文稿和其他教育材料
  • 维护和改进our website
  • 为我们的品牌资产和促销材料开发平面设计
  • 翻译网站内容
  • 帮助推广和接纳新的贡献者
  • 撰写拨款建议书,并协助其他筹款工作。

如果你不确定从哪里开始,或者你的技能如何适用,那就伸出援手吧!您可以在邮件列表上提问,也可以在GitHub上通过打开新问题或对已打开的相关问题发表评论来询问

我们首选的沟通渠道都是公开的,但如果您想先私下与我们交谈,请联系我们的社区协调员,地址为numpy-team@googlegroups.com或在松弛上(写入numpy-team@googlegroups.com以获取邀请)

我们还有一个两周一次的社区电话会议,详情在邮件列表上公布。我们非常欢迎您的加入

如果您刚开始为开源做出贡献,this
guide
帮助解释成功参与的原因、内容和方式

Homemade-machine-learning 流行机器学习算法示例,并解释了交互式🤖演示和数学

有监督的学习

在有监督的学习中,我们有一组训练数据作为输入,有一组标签或每个训练集的“正确答案”作为输出。然后,我们正在训练我们的模型(机器学习算法参数),以正确地将输入映射到输出(以进行正确的预测)。最终目的是找到能够成功继续正确运行的模型参数输入→输出映射(预测),即使对于新的输入示例也是如此

回归

在回归问题中,我们做实值预测。基本上,我们尝试沿着训练示例绘制一条直线/平面/n维平面

使用示例:股价预测、销售分析、任意数字依赖等

🤖线性回归

分类

在分类问题中,我们按一定的特征划分输入样本

使用示例:垃圾邮件过滤器、语言检测、查找相似文档、手写字母识别等

🤖Logistic回归

无监督学习

无监督学习是机器学习的一个分支,它从没有标记、分类或分类的测试数据中学习。无监督学习不是响应反馈,而是识别数据中的共性,并根据每个新数据中是否存在这些共性来做出反应

群集

在聚类问题中,我们根据未知特征对训练样本进行拆分。算法本身决定使用什么特征进行分割

使用示例:市场细分、社交网络分析、组织计算集群、天文数据分析、图像压缩等

🤖K-均值算法

异常检测

异常检测(也称为离群值检测)是通过与大多数数据显著不同来识别引起怀疑的稀有项目、事件或观测

使用示例:入侵检测、欺诈检测、系统健康监控、从数据集中删除异常数据等

🤖基于高斯分布的异常检测

神经网络(NN)

神经网络本身不是一种算法,而是许多不同的机器学习算法协同工作并处理复杂数据输入的框架

使用示例:作为替身所有其他算法的总称,图像识别、语音识别、图像处理(应用特定风格)、语言翻译等

🤖多层感知器(MLP)

机器学习地图

以下机器学习主题地图的来源是this wonderful blog post

必备条件

安装Python

确保你有Python installed在您的机器上

您可能想要使用venv创建虚拟环境的标准Python库,pip以及从本地项目目录安装和提供的所有从属软件包,以避免扰乱系统范围的软件包及其版本

安装依赖项

通过运行以下命令安装项目所需的所有依赖项:

pip install -r requirements.txt

在当地发射木星

项目中的所有演示都可以直接在您的浏览器中运行,而无需在本地安装Jupyter。但如果你想发射Jupyter Notebook在本地,您可以通过从项目的根文件夹运行以下命令来完成此操作:

jupyter notebook

在此之后,Jupyter笔记本将可以通过以下方式访问http://localhost:8888

远程发射木星

每个算法部分都包含指向以下内容的演示链接Jupyter NBViewer这是Jupyter笔记本的快速在线预览器,您可以在浏览器中直接看到演示代码、图表和数据,而无需在本地安装任何东西。如果你想的话变化代码和实验使用演示笔记本时,您需要在中启动笔记本Binder您只需单击“在活页夹上执行”NBViewer右上角的链接

数据集

可在以下位置找到用于Jupyter笔记本演示的数据集列表data folder

支持该项目

您可以通过以下方式支持此项目❤️️GitHub或❤️️Patreon

有趣好用的Python教程