wala/ML

Tensor conversions and tensor generators

オープン

#139 opened on 2024/02/01

 (0 件のコメント) (0 件のリアクション) (0 人の担当者)Java (17 件のフォーク)auto 404
buggood first issuesummaries

Repository metrics

Stars
 (27 個のスター)
PR merge metrics
 (PR metrics pending)

説明

There are situations where a TF API, e.g., tf.nn.relu(), can "generate" a tensor and have one just "pass through." In the summary representation, there isn't a way to express this, and it's dependent on the type of argument passed to the API.

Consider the following example based on the one at https://www.tensorflow.org/versions/r2.9/api_docs/python/tf/nn/relu:

import tensorflow as tf
from tensorflow.python.framework.ops import EagerTensor

a = [-2., 0., 3.]
assert(type(a) == list)

b = tf.nn.relu(a)
assert(type(b) == EagerTensor)

In this case, the API is seemingly converting the given list to a tensor. Such API are typically represented as tensor generators in Ariadne (i.e., the call the sentinel read_data()). But, in another example with the same API, it can accept a tensor without conversion:

import tensorflow as tf
from tensorflow.python.framework.ops import EagerTensor

a = tf.constant([-2., 0., 3.])
assert(type(a) == EagerTensor)

b = tf.nn.relu(a)
assert(type(b) == EagerTensor)

In this case, the API is a "pass through" API; it doesn't create a new tensor but rather modifies an existing one.

My feeling is that such API can't be solely represented in the summaries. I believe that there are other API like this, e.g., reshape().

コントリビューターガイド