小白带你用ApacheIgniteForTensorFlow使用探秘

小白带你用ApacheIgniteForTensorFlow使用探秘

1.TensorFlow

TensorFlow是一个用于高性能数值计算的开源软件库,主要用于深度学习和其他计算密集型机器学习任务。其灵活的体系结构允许跨多种平台(CPU、GPU、TPU)轻松部署计算。

1.1ApacheIgnite®

ApacheIgnite®可以一起使用,以提供处理操作和历史数据、执行数据分析以及基于神经网络构建复杂数学模型所需的完整工具集

技术上,TensorFlow使用Ignite作为神经网络训练、推理和支持的所有其他计算的数据源,从而获得以下

优点:无限容量、更快的性能、容错

  • 无限容量-Ignite是一个具有无限容量的分布式数据库,它能够存储TensorFlow深度学习任务所需的PB数据。
  • 更快的性能-如果TensorFlow Worker部署在具有Ignite节点的同一台计算机上,则网络上的数据移动将最小或为零。每个TensorFlow工作人员将使用其本地的点火节点。
  • 容错-如果在计算过程中发生故障,Ignite将能够从故障点重新启动过程。

1.2ApacheIgnite

ApacheIgnite是一个以内存为中心的分布式数据库、缓存和处理平台,用于事务性、分析性和流式工作负载,以PB级的速度交付内存。

1.2.1 持久存储器

启用了持久性,Ignite将成为一个分布式的、水平可伸缩的数据库,它保证了完整的数据一致性,并对完整的集群故障具有弹性

1.2.2 点燃持久性

Ignite Native Persistence是一个分布式、ACID和SQL兼容的磁盘存储,它透明地与Ignite的持久内存集成,作为可选磁盘层,在固态硬盘、闪存、3D XPoint和其他类型的非易失性存储上存储数据和索引。

1.2.3 ACID

存储在Ignite中的数据在内存和磁盘上都符合ACID,使Ignite成为一个非常一致的系统。Ignite事务可以跨网络工作,并且可以跨多个服务器。

1.2.4 SQL支持

Ignite完全支持SQL、DDL和DML,允许用户使用纯SQL与Ignite交互,而无需编写任何代码。

1.2.5 支持Key-Value

1.2.6可扩展性和耐用性

1.3 Ignite Dataset

Ignite数据集表示ApacheIgnite和TensorFlow之间的集成,它允许ApacheIgnite用作神经网络训练、推理和TensorFlow支持的所有其他计算的数据源。使用Ignite数据集有许多优点,包括:

TensorFlow可以快速访问分布式数据库,该数据库可以包含训练数据和推理数据。
Ignite数据集提供的对象可以具有任何结构,因此所有预处理都可以在TensorFlow管道中完成。
还支持SSL、Windows和分布式培训。
目前,IgniteDataSet是TensorFlow的一部分,因此不需要安装任何第三方软件包,您可以直接使用它。集成基于TensorFlow端的tf.data和Apache Ignite端的二进制客户端协议。

ApacheIgnite可以用作神经网络训练、推理和TensorFlow支持的所有其他计算的数据源。

要试用Ignite Dataset,最简单的方法是运行装有Ignite和加载好的MNIST数据的Docker容器,然后使用Ignite Dataset与其交互。可以在Docker Hub:dmitrievanthony/ignite-with-mnist上找到此容器,然后执行如下命令启动容器:

$docker run -it -p 10800:10800 dmitrievanthony/ignite-with-mnist

1.4 IGFS插件

除了数据库功能之外,Apache Ignite还提供了一个名为IGFS的分布式文件系统。IGFS提供了与Hadoop HDFS类似的功能,但仅限于内存。

集成基于TensorFlow端的自定义文件系统插件和Apache Ignite端的IGFS本机API。它有很多用途,例如:

状态检查点可以保存到IGFS中,以提高可靠性和容错性。
训练过程通过将事件文件写入TensorBoard监视的目录来与TensorBoard通信。即使TensorBoard在不同的进程或机器中运行,IGFS也允许这种通信工作。

2.前置条件

用pip install pyignite 安装,提示下面成功信息,说明安装成功

Installing collected packages: attrs, pyignite
Successfully installed attrs-18.1.0 pyignite-0.3.4

2.1  编写python链接设置缓存

运行Apache Ignite server. 在目录下运行$IGNITE_HOME 

/bin/ignite.sh

from pyignite import Client

client = Client()
client.connect('127.0.0.1', 10800)

my_cache = client.create_cache('my cache')

my_cache.put('my key', 42)

result = my_cache.get('my key')
print(result)  # 42

result = my_cache.get('non-existent key')
print(result)  # None

result = my_cache.get_all([
    'my key',
    'non-existent key',
    'other-key',
])
print(result)  # {'my key': 42}

my_cache.clear_key('my key')

my_cache.destroy()
client.close()

2.2 错误提示

import tensorflow.contrib.layers as layers ModuleNotFoundError: No module named 'tensorflow.contrib'

重新安装pip install tensorflow==1.14.0

3.感兴趣

感兴趣请你阅读https://apacheignite.readme.io/docs/what-is-ignite#scalability-and-durability

猜你喜欢

转载自blog.csdn.net/keny88888/article/details/105779272