5

私は、機械学習/深層学習の分野に入るために Torch7 の学習を始めていますが、それが魅力的だと感じています (そして非常に複雑です (笑))。ただし、私の主な関心事は、この学習をアプリケーションに変換できるかどうかです。主に、Torch7 Lua スクリプトを、アプリが機械学習計算を実行するために使用できるサーバーに変換できますか? 可能であれば、どのように?

ありがとうございました

4

5 に答える 5

5

ワッフルを使用できます。そのページの Hello World の例を次に示します。

local app = require('waffle')

app.get('/', function(req, res)
   res.send('Hello World!')
end)

app.listen()

あなたのアルゴリズムが単純な顔検出器であるとしましょう。入力は画像で、出力は JSON 形式の顔検出です。次のことができます。

local app = require('waffle')
require 'graphicsmagick'
require 'MyAlgorithm'

app.post('/', function(req, res)
  local img, detections, outputJson
  img = req.form.image_file:toImage()
  detections = MyAlgorithm.detect(img:double())
  outputJson = {}
  if (detections ~= nil) then
    outputJson.faceInPicture = true
    outputJson.faceDetections = detections
  else
    outputJson.faceInPicture = false
    outputJson.faceDetections = nil
  end
  res.json(outputJson)
end)

app.listen()

そうすれば、アルゴリズムを独立したサービスとして使用できます。

于 2016-02-17T21:17:53.940 に答える
3

torch でテストしたasyncパッケージを使用することもできます。

于 2015-03-30T21:06:49.887 に答える
2

Torch をライブラリとして見る必要があります (スタンドアロンの実行可能ファイルとしてアクセスしている場合でも)。このライブラリは、HTTP 経由でアクセスできる一部の Lua コードから使用できます。Lua コードは、すべての HTTP 対話を処理するOpenResty内で実行されている可能性があり、LuaJIT を使用するように OpenResty を構成できるのと同じパフォーマンスが得られます。

もう 1 つのオプションは、luasocket および copas ライブラリ (たとえば、 Xavante )に基づく HTTP 処理を使用するか、 LuaWebserverページにリストされているオプションのいずれかを使用することです。

于 2015-03-30T20:01:59.523 に答える
1

非同期ワッフルの両方が優れたオプションです。別のオプションは、ZeroMQ + Protocol Buffersを使用することです。お好みの Web 開発環境が何であれ、非同期で ZeroMQ を使用してリクエストを Torch に送信し、おそらくプロトコル バッファでメッセージをシリアル化し、Torch で各リクエストを処理して結果を返すことができます。

このようにして、 waffleの 20K fib テストよりもはるかに高いスループットを得ることができました。

于 2016-08-08T20:27:42.667 に答える