0

XlaComputation別の を構築するときに を使用するにはどうすればよいXlaComputationですか? たとえば、次のようAddにしようとしている計算に組み込みたい

xla::XlaBuilder add_builder("Add");
auto one = ConstantR0(&add_builder, 1);
auto two = ConstantR0(&add_builder, 2);
auto sum = Add(one, two);
add_builder.Build();

xla::XlaBuilder mul_builder("Mul");
auto three = ConstantR0(&mul_builder, 3);
auto res = Mul(sum, three);
mul_builder.Build();

しかし、私は得る

エラーを処理する代わりに値をフェッチしようとしています無効な引数: ハンドル 3 の XlaOp はビルダー 'Add' によってビルドされていますが、ビルダー 'Mul' で使用しようとしています:

あるビルダーを別の計算で使用することになっていないことは承知していますが、それがその計算の結果に対応するXlaOp場合にそれを回避する方法がわかりません。XlaOpソースコードの次のコメントを読んだ後

// This represents an instruction that has been enqueued using the XlaBuilder.
// This is used to pass to subsequent computations that depends upon the
// instruction as an operand.
class XlaOp {

XlaOp同じビルダーを使用する sにのみ適用されると思います。

4

0 に答える 0