私はTensorRT 2.1
を使用しており、シンプルなカスタムレイヤーを実装したいと考えています。 (目標は埋め込みシステム上3210を使用してSingle Shot Detector
を実行することです。)カスタムレイヤAPI(TensorRT 2.1)の簡単な例?
実施するために、私はInc
層(単に入力テンソル値に1.0を追加し、同じ次元を維持)を作りたかったです。
に続いてInc
クラスを実装します。sampleFasterRNN.cpp
の例です。同じ次元を保つためにgetOutputDimensions()
を除いて私はすべてをほぼ同じに保った。 (これは問題ありません)
「1.0追加」の部分はどこに実装すればよいですか?私はそれが "enqueue()"にあるはずだと思います。だから、試しました
int enqueue(int batchSize, const void*const *inputs, void** outputs, void*, cudaStream_t stream) override
{
# the below is from the Reshape class. seems to copy from input to output
CHECK(cudaMemcpyAsync(outputs[0], inputs[0], mCopySize * batchSize, cudaMemcpyDeviceToDevice, stream));
# add 1.0 to first ten values
float* foutputs = (float*) outputs[0];
int i; for (i = 0; i < 10; i++) foutputs[i] += 1.0;
return 0;
}
しかし、この部分は「セグメンテーションフォールト」エラーになります。
私の質問は以下のとおりです。
- とは、どのように私は、入力と出力の間にいくつかの計算を実行することができますか?
- 誰も簡単な例を提供できますか?