色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Apache Ignite上的TensorFlow!分布式內存數據源

Tensorflowers ? 來源:lp ? 2019-03-28 16:09 ? 次閱讀

任何深度學習都是從數據開始。這是非常關鍵的一點。沒有數據,我們就無法訓練模型,也無法評估模型質量,更無法做出預測。因此,數據源非常重要。在做研究、構建新的神經網絡架構,以及做實驗時,我們習慣使用最簡單的本地數據源,通常是不同格式的文件。這種方法確實非常有效。但在某種情況下,我們需要更加接近生產環境。這時,簡化和加速生產數據饋送,以及能夠處理大數據就變得非常重要。這也正是 Apache Ignite 大展身手的時候。

Apache Ignite是以內存為中心的分布式數據庫,也是事務性、分析性和流式工作負載的緩存和處理平臺,可以實現 PB 級的內存速度。借助 Apache Ignite 和 TensorFlow 之間的現有集成,您可以將 Apache Ignite 用作神經網絡訓練和推理的數據源,也可以將其用作分布式訓練的檢查點存儲空間和集群管理器。

分布式內存數據源

作為以內存為中心的分布式數據庫,Apache Ignite可以提供快速數據訪問。讓您能夠擺脫硬盤限制,在分布式集群中存儲和處理您需要的所有數據。您可以通過使用 Ignite Dataset 來利用 Apache Ignite 的這些優勢。

請注意,Apache Ignite 不只是數據庫或數據倉庫與 TensorFlow 之間 ETL 管道的一個步驟,它還是一個HTAP(混合事務 / 分析處理)系統。通過選擇 Apache Ignite 和 TensorFlow,您會獲得一個用于事務和分析處理的單一系統,同時還可以使用操作和歷史數據進行神經網絡訓練和推理。

以下基準測試結果表明,Apache Ignite 非常適合用于單節點數據存儲用例。如果存儲空間和客戶端位于同一節點,則通過使用 Apache Ignite,您可以實現每秒超過 850 MB 的吞吐量。如果存儲空間位于與客戶端相關的遠程節點,則吞吐量約為每秒 800 MB。

當存在一個本地 Apache Ignite 節點時 Ignite Dataset 的吞吐量。執行該基準測試時使用的是 2 個 Xeon E5–2609 v4 1.7GHz 處理器,配備 16Gb 內存和每秒 10 Gb 的網絡(1MB 的行和 20MB 的頁面大小)

另一個基準測試表明 Ignite Dataset 如何與分布式 Apache Ignite 集群協作。這是 Apache Ignite 作為 HTAP 系統的默認用例,它使您能夠在每秒 10 Gb 的網絡集群上為單個客戶端實現每秒超過 1 GB 的讀取吞吐量。

分布式 Apache Ignite 集群具備不同數量的節點(從 1 到 9)時 Ignite Dataset 的吞吐量。執行該基準測試時使用的是 2 個 Xeon E5–2609 v4 1.7GHz 處理器,配備 16Gb 內存和每秒 10 Gb 的網絡(1MB 的行和 20MB 的頁面大小)

測試后的用例如下:Apache Ignite 緩存(以及第一組測試中數量不同的分區和第二組測試中的 2048 個分區)由 10000 個大小為 1MB 的行填充,然后 TensorFlow 客戶端使用 Ignite Dataset 讀取所有數據。所有節點均以 2 個 Xeon E5–2609 v4 1.7GHz 處理器表示,配備 16Gb 內存和每秒 10Gb 的網絡連接。每個節點使用默認 配置運行 Apache Ignite。

注:配置 鏈接

https://github.com/apache/ignite/blob/master/examples/config/example-default.xml

您可以很輕松地將 Apache Ignite 同時用作帶有結構化查詢語言 (SQL) 界面的傳統數據庫和 TensorFlow 數據源。

apache-ignite/bin/ignite.shapache-ignite/bin/sqlline.sh -u "jdbc:ignite:thin://localhost:10800/"

CREATE TABLE KITTEN_CACHE (ID LONG PRIMARY KEY, NAME VARCHAR);INSERT INTO KITTEN_CACHE VALUES (1, 'WARM KITTY');INSERT INTO KITTEN_CACHE VALUES (2, 'SOFT KITTY');INSERT INTO KITTEN_CACHE VALUES (3, 'LITTLE BALL OF FUR');

import tensorflow as tffrom tensorflow.contrib.ignite import IgniteDatasettf.enable_eager_execution()dataset = IgniteDataset(cache_name="SQL_PUBLIC_KITTEN_CACHE")for element in dataset: print(element)

{'key': 1, 'val': {'NAME': b'WARM KITTY'}}{'key': 2, 'val': {'NAME': b'SOFT KITTY'}}{'key': 3, 'val': {'NAME': b'LITTLE BALL OF FUR'}}

結構化對象

使用Apache Ignite,您可以存儲任何類型的對象。這些對象可以具備任何層次結構。Ignite Dataset 能夠處理此類對象。

import tensorflow as tffrom tensorflow.contrib.ignite import IgniteDatasettf.enable_eager_execution()dataset = IgniteDataset(cache_name="IMAGES")for element in dataset.take(1): print(element)

{ 'key': 'kitten.png', 'val': { 'metadata': { 'file_name': b'kitten.png', 'label': b'little ball of fur', width: 800, height: 600 }, 'pixels': [0, 0, 0, 0, ..., 0] }}

如果您使用 Ignite Dataset,則神經網絡訓練和其他計算所需的轉換都可以作為tf.data管道的一部分來完成。

import tensorflow as tffrom tensorflow.contrib.ignite import IgniteDatasettf.enable_eager_execution()dataset = IgniteDataset(cache_name="IMAGES").map(lambda obj: obj['val']['pixels'])for element in dataset: print(element)

[0, 0, 0, 0, ..., 0]

分布式訓練

作為機器學習框架,TensorFlow 可以為分布式神經網絡訓練、推理及其他計算提供原生支持。分布式神經網絡訓練的主要理念是能夠在每個數據分區(根據水平分區)上計算損失函數的梯度(例如,誤差的平方),然后對梯度求和,以得出整個數據集的損失函數梯度。借助這種能力,我們可以在數據存儲位置的節點上計算梯度,減少梯度,最后更新模型參數。這樣,您就無需在節點間傳輸數據,從而避免了網絡瓶頸。

Apache Ignite 在分布式集群中使用水平分區存儲數據。在創建 Apache Ignite 緩存(或基于 SQL 的表格)時,我們可以指定將要在此對數據進行分區的分區數量。例如,如果一個 Apache Ignite 集群由 100 臺機器組成,我們創建了一個有 1000 個分區的緩存,則每臺機器將要維護 10 個數據分區。

Ignite Dataset 允許使用分布式神經網絡訓練(使用 TensorFlow)和 Apache Ignite 分區的這兩個方面。Ignite Dataset 是一個可以在遠程工作器上執行的計算圖操作。遠程工作器可以通過為工作器進程(例如 IGNITE_DATASET_HOST、IGNITE_DATASET_PORT 或 IGNITE_DATASET_PART)設置相應的環境變量來替換 Ignite Dataset 的參數(例如主機、端口或分區)。使用這種替換方法,我們可以為每個工作器分配一個特定分區,這樣一個工作器處理一個分區,同時可以與單個數據集透明協作。

import tensorflow as tffrom tensorflow.contrib.ignite import IgniteDatasetdataset = IgniteDataset("IMAGES")# Compute gradients locally on every worker node.gradients = []for i in range(5): with tf.device("/job:WORKER/task:%d" % i): device_iterator = tf.compat.v1.data.make_one_shot_iterator(dataset) device_next_obj = device_iterator.get_next() gradient = compute_gradient(device_next_obj) gradients.append(gradient)# Aggregate them on master node.result_gradient = tf.reduce_sum(gradients)with tf.Session("grpc://localhost:10000") as sess: print(sess.run(result_gradient))

借助 Apache Ignite,您還可以使用 TensorFlow 高級Estimator API來進行分布式訓練。此功能以所謂的 TensorFlow 分布式訓練的 獨立客戶端模式 為基礎,Apache Ignite 在其中發揮數據源和集群管理器的作用。與此相關的內容,我們將在下一篇文章中全面介紹。

注:獨立客戶端模式 鏈接

https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/distribute#standalone-client-mode

檢查點存儲

除數據庫功能外,Apache Ignite 還有一個名為IGFS的分布式文件系統。IGFS 可以提供與 Hadoop HDFS 類似的功能,但僅限于內部存儲。事實上,除自有 API 外,IGFS 還采用了 Hadoop FileSystem API,并且可以透明地插接到 Hadoop 或 Spark 部署中。Apache Ignite 上的 TensorFlow 支持 IGFS 與 TensorFlow 集成。該集成基于 TensorFlow 端的 自定義文件系統插件 和 Apache Ignite 端的IGFS Native API。它有許多用例,例如:

可以將狀態檢查點保存到 IGFS 中,以獲得可靠性和容錯性

訓練過程可以通過將事件文件寫入 TensorBoard 監視的目錄來與 TensorBoard 通信。即使 TensorBoard 在不同的進程或機器中運行,IGFS 也允許進行此通信

注:自定義文件系統插件 鏈接

https://www.tensorflow.org/guide/extend/filesystem

IGFS Native API 鏈接

https://ignite.apache.org/features/igfs.html

此功能于 TensorFlow 1.13 中發布,并將在 TensorFlow 2.0 中作為tensorflow/io的一部分發布。

注:tensorflow/io 鏈接

https://github.com/tensorflow/io

SSL 連接

通過 Apache Ignite,您可以使用SSL和身份驗證來保護數據傳送渠道。Ignite Dataset 支持具備和不具備身份驗證的 SSL 連接。如需更多信息,請參閱Apache Ignite SSL/TLS文檔(https://apacheignite.readme.io/docs/ssltls)。

import tensorflow as tffrom tensorflow.contrib.ignite import IgniteDatasettf.enable_eager_execution()dataset = IgniteDataset(cache_name="IMAGES", certfile="client.pem", cert_password="password", username="ignite", password="ignite")

Windows 支持

Ignite Dataset 完全兼容 Windows 系統。您可以在 Windows 工作站和 Linux/MacOS 系統上將其用作 TensorFlow 的一部分。

試用

以下示例將幫助您輕松開始使用此模塊。

Ignite Dataset

要試用 Ignite Dataset,最簡單的方法是使用 Apache Ignite 和加載好的MNIST數據運行Docker容器,然后使用 Ignite Dataset 與其交互。您可以在 Docker Hub:dmitrievanthony/ignite-with-mnist上找到此容器。您需要在機器上啟動此容器:

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

注:MNIST 鏈接

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

dmitrievanthony/ignite-with-mnist 鏈接

https://hub.docker.com/r/dmitrievanthony/ignite-with-mnist/

然后您可以按照以下方法使用它:

IGFS

TensorFlow 的 IGFS 支持功能于 TensorFlow 1.13 中發布,并將在 TensorFlow 2.0 中作為tensorflow/io的一部分發布。如要通過 TensorFlow 試用 IGFS,最簡單的方法是使用 Apache Ignite 和 IGFS 來運行Docker容器,然后使用 TensorFlowtf.gfile與其交互。您可以在 Docker Hub:dmitrievanthony/ignite-with-igfs上找到此容器。您可以在自己的機器上運行此容器:

docker run -it -p 10500:10500 dmitrievanthony/ignite-with-igfs

然后您可以按照以下方法使用它:

import tensorflow as tfimport tensorflow.contrib.ignite.python.ops.igfs_opswith tf.gfile.Open("igfs:///hello.txt", mode='w') as w: w.write("Hello, world!")with tf.gfile.Open("igfs:///hello.txt", mode='r') as r: print(r.read())

Hello, world!

限制

目前,Ignite Dataset 需要假設緩存中的所有對象都具有相同的結構(同類型對象),并且緩存中至少包含一個檢索架構所需的對象。另一個限制與結構化對象有關,Ignite Dataset 不支持通用唯一識別碼 (UUID)、地圖和可能是對象結構組成部分的對象數組。所有這些限制都是進一步開發的主題。

即將發布的 TensorFlow 2.0

TensorFlow 2.0 中即將發布的新變更會將此功能分離到tensorflow/io模塊。之后,您將可以更加靈活地使用此功能。這些示例將略有改動,我們的文檔和示例也會反映這一點。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 神經網絡
    +關注

    關注

    42

    文章

    4774

    瀏覽量

    100898
  • 大數據
    +關注

    關注

    64

    文章

    8897

    瀏覽量

    137526
  • 深度學習
    +關注

    關注

    73

    文章

    5507

    瀏覽量

    121291
  • tensorflow
    +關注

    關注

    13

    文章

    329

    瀏覽量

    60541

原文標題:Apache Ignite 上的 TensorFlow

文章出處:【微信號:tensorflowers,微信公眾號:Tensorflowers】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    HarmonyOS Next 應用元服務開發-分布式數據對象遷移數據權限與基礎數據

    向用戶申請授權。 二、基礎數據遷移 使用分布式數據對象,與上述開發步驟類似,需要在端onContinue()接口中進行數據保存,并在對端的
    發表于 12-24 09:40

    Apache Kafka簡介(1)#分布式數據

    分布式數據
    未來加油dz
    發布于 :2023年07月03日 22:45:31

    Apache Kafka簡介(2)#分布式數據

    分布式數據
    未來加油dz
    發布于 :2023年07月03日 22:45:56

    分布式軟件系統

    三個特點:分布性、通信性和穩健性。 分布式文件系統具有執行遠程文件存取的能力,并以透明方式對分布在網絡的文件進行管理和存取。 分布式數據
    發表于 07-22 14:53

    分布式數據庫有什么優缺點?

    分布式數據庫系統(DDBS)是數據庫技術和網絡技術兩者相互滲透和有機結合的結果。涉及數據庫基本理論和網絡通信理論。分布式數據庫由一組數據組成
    發表于 09-24 09:13

    HarmonyOS教程—基于分布式數據接口,實現多種設備一致的數據訪問體驗

    相互同步,為用戶提供在多種終端設備一致的數據訪問體驗。有關分布式數據服務更加詳細的介紹可以參考分布式
    發表于 09-26 11:40

    基于Web services的分布式企業信息整合模型

    針對目前電力系統的信息整合需求,設計基于Web services的電力系統多層分布式信息整合模型。該模型可以跨越不同企業數據源、應用體系和開發語言的界限,以服務的形式封裝數據
    發表于 04-21 09:16 ?14次下載

    分布式數據庫,什么是分布式數據

    分布式數據庫,什么是分布式數據分布式數據庫系統是在集中式數據庫系統成熟技術的基礎發展起來的,但不是簡單地把集中式數
    發表于 03-18 15:25 ?3982次閱讀

    基于LDA主題模型進行數據源選擇方法

    基于數據源的樣本文檔集和查詢之間的關鍵詞匹配,通常無法很好地解決少量樣本文檔的信息缺失問題。針對這一問題,提出了基于隱含狄利克雷分布( LDA)主題模型進行數據源選擇的方法。首先,使用LDA主題模型獲得
    發表于 01-04 15:00 ?0次下載
    基于LDA主題模型進行<b class='flag-5'>數據源</b>選擇方法

    Apache RocketMQ 正式開源分布式事務消息

    摘要:?近日,Apache RocketMQ 社區正式發布4.3版本。此次發布不僅包括提升性能,減少內存使用等原有特性增強,還修復了部分社區提出的若干問題,更重要的是該版本開源了社區最為關心的分布式
    發表于 08-20 15:15 ?326次閱讀

    Apache Spark的分布式深度學習框架BigDL的概述

    該視頻概述了Apache Spark *的BigDL分布式深度學習框架。
    的頭像 發表于 10-30 06:41 ?3265次閱讀

    Apache Spark分布式機器學習的介紹

    Apache Spark分布式機器學習
    的頭像 發表于 11-05 06:31 ?2921次閱讀

    歐拉(openEuler)Summit2021:基于分布式內存池的分布式應用數據交換與共享

    歐拉(openEuler)Summit 2021分布式&多樣性計算分論壇,介紹了基于分布式內存池的分布式應用
    的頭像 發表于 11-10 15:48 ?2385次閱讀
    歐拉(openEuler)Summit2021:基于<b class='flag-5'>分布式</b><b class='flag-5'>內存</b>池的<b class='flag-5'>分布式</b>應用<b class='flag-5'>數據</b>交換與共享

    SpringBoot分布式事務的解決方案(JTA+Atomic+多數據源

    首先,到底啥是分布式事務呢,比如我們在執行一個業務邏輯的時候有兩步分別操作A數據源和B數據源,當我們在A數據源執行數據更改后,在B
    的頭像 發表于 04-11 11:05 ?1658次閱讀

    數據源數據轉換和同步的ETL工具推薦

    有許多支持多數據源數據轉換和同步的ETL工具可供選擇。以下是一些常見的ETL工具和它們支持多數據源數據轉換和同步的特點: Apache Ni
    的頭像 發表于 07-28 16:32 ?1122次閱讀
    主站蜘蛛池模板: 亚洲国产在线精品国| 中文字幕人妻无码系列第三区| 最新高清无码专区| 美女全光末满18勿进| 99视频网站| 日本妈妈JMZZZZZ| 国产精品成人观看视频免费| 亚洲爆乳少妇精品无码专区| 灰原哀被啪漫画禁漫| 早乙女由依在线观看| 蜜芽tv在线www| 高H短篇辣肉纯肉| 亚洲国产成人在线视频| 久久久视频2019午夜福利| 99视频免费在线| 王雨纯羞羞| 久久麻豆国产国产AV| swag合集120部| 亚洲国产cao| 蜜芽丅v新网站在线观看| 动漫美女禁区图| 亚洲欧美另类无码专区| 女子叉开腿让男子桶免费软件| 国产 浪潮AV性色四虎| 亚洲中文字幕一二三四区苍井空| 男女性杂交内射妇女BBWXZ| 攻把受做哭边走边肉楼梯PLAY| 亚洲乱码爆乳精品成人毛片| 男人天堂黄色| 国产偷国产偷亚州清高| 91久久线看在观草草青青 | 99视频精品全部 国产| 日本阿v直播在线| 韩国甜性涩爱| 啊…嗯啊好深男男高h文| 亚洲免费福利在线视频| 朋友的娇妻好爽好烫嗯 | 九九电影伦理片| 岛国片在线免费观看| 最近更新2019中文字幕免费 | 国产在线高清视频无码不卡|