标签归档:machine-learning

Keras-人类的深度学习

Keras: Deep Learning for humans

此存储库托管Kera库的开发。阅读keras.io上的文档

关于Keras

KERAS是一个用Python编写的深度学习API,运行在机器学习平台TensorFlow之上。它的开发重点是实现快速实验。能够尽快从想法转化为结果是做好研究的关键。

Keras特点是:

  • Simple
  • Flexible
  • Powerful

Kera&TensorFlow 2

TensorFlow 2是一个端到端的开源机器学习平台。您可以将其视为可区分编程的基础架构层。它结合了四项关键功能:

  • Efficiently executing low-level tensor operations on CPU, GPU, or TPU.
  • Computing the gradient of arbitrary differentiable expressions.
  • Scaling computation to many devices, such as clusters of hundreds of GPUs.
  • Exporting programs (“graphs”) to external runtimes such as servers, browsers, mobile and embedded devices.

KERAS是TensorFlow 2的高级API:TensorFlow 2是一个平易近人、高效的界面,用于解决机器学习问题,重点是现代深度学习。它为开发和发布高迭代速度的机器学习解决方案提供了必要的抽象和构建块

Kera使工程师和研究人员能够充分利用TensorFlow 2的可扩展性和跨平台功能:您可以在TPU或大型GPU群集上运行Kera,还可以导出Kera模型以在浏览器或移动设备上运行


与Keras的第一次接触

KERAS的核心数据结构是层和模型。最简单的模型类型是顺序模型,即层的线性堆栈。对于更复杂的体系结构,您应该使用Kera Functional API,它允许构建任意的层图,或者通过子类化完全从头开始编写模型

以下是顺序模型:

from tensorflow.keras.models import Sequential

model = Sequential()

堆叠层与.add()一样简单:

from tensorflow.keras.layers import Dense

model.add(Dense(units=64, activation='relu'))
model.add(Dense(units=10, activation='softmax'))

一旦您的模型看起来不错,就可以使用.Compile()配置其学习过程:

model.compile(loss='categorical_crossentropy',
              optimizer='sgd',
              metrics=['accuracy'])

如果需要,您可以进一步配置优化器。KERAS的理念是让简单的事情变得简单,同时允许用户在需要的时候完全控制(最终的控制是通过子类化实现源代码的轻松可扩展性)

model.compile(loss=tf.keras.losses.categorical_crossentropy,
              optimizer=tf.keras.optimizers.SGD(
                  learning_rate=0.01, momentum=0.9, nesterov=True))

现在,您可以批量迭代您的培训数据:

# x_train and y_train are Numpy arrays.
model.fit(x_train, y_train, epochs=5, batch_size=32)

在一行中评估您的测试损失和指标:

loss_and_metrics = model.evaluate(x_test, y_test, batch_size=128)

或对新数据生成预测:

classes = model.predict(x_test, batch_size=128)

您刚才看到的是使用KERAS的最基本的方式

然而,KERAS也是一个高度灵活的框架,适合重复最先进的研究思想。KERAS遵循逐步披露复杂性的原则:它使入门变得容易,但它使处理任意高级用例成为可能,每一步只需要增量学习

就像您可以用几行代码训练和评估上面的简单神经网络一样,您可以使用KERAS快速开发新的训练过程或奇异的模型体系结构。以下是一个低级培训循环示例,将KERAS功能与TensorFlow GradientTape相结合:

import tensorflow as tf

# Prepare an optimizer.
optimizer = tf.keras.optimizers.Adam()
# Prepare a loss function.
loss_fn = tf.keras.losses.kl_divergence

# Iterate over the batches of a dataset.
for inputs, targets in dataset:
    # Open a GradientTape.
    with tf.GradientTape() as tape:
        # Forward pass.
        predictions = model(inputs)
        # Compute the loss value for this batch.
        loss_value = loss_fn(targets, predictions)

    # Get gradients of loss wrt the weights.
    gradients = tape.gradient(loss_value, model.trainable_weights)
    # Update the weights of the model.
    optimizer.apply_gradients(zip(gradients, model.trainable_weights))

有关KERAS的更多深入教程,您可以查看:


安装

Kera与TensorFlow2一起打包为tensorflow.keras。要开始使用Kera,只需安装TensorFlow 2


支持

您可以提问并加入发展讨论:

您还可以在GitHub问题中发布错误报告和功能请求(仅限)

Tensorflow-一个面向每个人的开源机器学习框架

Documentation

TensorFlow是一个端到端的机器学习开源平台。它有一个由工具、库和社区资源组成的全面、灵活的生态系统,使研究人员能够使用ML推动最先进的技术,开发人员可以轻松地构建和部署基于ML的应用程序

TensorFlow最初是由谷歌机器智能研究组织内谷歌大脑团队的研究人员和工程师开发的,目的是进行机器学习和深度神经网络研究。该系统具有足够的通用性,可以广泛应用于其他领域

TensorFlow提供稳定的Python和C++API,以及不保证向后兼容的其他语言API

订阅untify@tensorflow.org,随时了解最新的版本公告和安全更新。查看所有邮件列表

安装

请参阅PIP包的TensorFlow安装指南,要启用GPU支持,请使用Docker容器,并从源代码构建

要安装当前版本(包括对启用CUDA的GPU卡(Ubuntu和Windows)的支持),请执行以下操作:

$ pip install tensorflow

此外,还提供了一个较小的仅限CPU的软件包:

$ pip install tensorflow-cpu

要将TensorFlow更新到最新版本,请在上述命令中添加–upgrade标志

夜间二进制文件可用于在PyPI上使用tf-nighly和tf-nighly-cpu包进行测试

尝试您的第一个TensorFlow程序

$ python
>>> import tensorflow as tf
>>> tf.add(1, 2).numpy()
3
>>> hello = tf.constant('Hello, TensorFlow!')
>>> hello.numpy()
b'Hello, TensorFlow!'

有关更多示例,请参阅TensorFlow教程

投稿指南

如果您想对TensorFlow做出贡献,请务必查看贡献指南。该项目遵循TensorFlow的行为准则。通过参与,您应该遵守本守则

我们使用GitHub问题来跟踪请求和错误,有关一般问题和讨论,请参阅TensorFlow讨论,并请将具体问题直接指向Stack Overflow

TensorFlow项目致力于遵守开源软件开发中公认的最佳实践:

连续生成状态

您可以在TensorFlow SIG build社区构建表中找到更多社区支持的平台和配置

官方版本

Build Type Status Artifacts
Linux CPU PyPI
Linux GPU PyPI
Linux XLA TBA
macOS PyPI
Windows CPU PyPI
Windows GPU PyPI
Android
Raspberry Pi 0 and 1 Py3
Raspberry Pi 2 and 3 Py3
Libtensorflow MacOS CPU Status Temporarily Unavailable Nightly Binary Official GCS
Libtensorflow Linux CPU Status Temporarily Unavailable Nightly Binary Official GCS
Libtensorflow Linux GPU Status Temporarily Unavailable Nightly Binary Official GCS
Libtensorflow Windows CPU Status Temporarily Unavailable Nightly Binary Official GCS
Libtensorflow Windows GPU Status Temporarily Unavailable Nightly Binary Official GCS

资源

了解有关TensorFlow社区以及如何做出贡献的更多信息

许可证

Apache License 2.0