InaccessibleTensorError - जब का उपयोग कर `tf.keras.परतों.परत` में उत्पादन पाश हालत की एक और परत

0

सवाल

जब मैं का उपयोग करने से उत्पादन एक परत (tf.keras.layers.Layerके रूप में ) पाश इटरेटर में एक और परत है, मैं कर रहा हूँ हो रही एक InaccessibleTensorError,

InaccessibleTensorError: The tensor 'Tensor("looper/while/sub:0", shape=(None, 1), dtype=float32)' 
cannot be accessed here: it is defined in another function or code block. Use return values, 
explicit Python locals or TensorFlow collections to access it. Defined in: 
FuncGraph(name=looper_while_body_483, id=2098967820416); accessed from: 
FuncGraph(name=looper_scratch_graph, id=2098808987904).

न्यूनतर कोड के लिए त्रुटि को पुन: पेश,

import tensorflow as tf
import numpy as np

class Looper(tf.keras.layers.Layer):
    # custom layer
    def __init__(self, units, **kwargs):
        super(Looper, self).__init__(**kwargs)
        self.units = units

    def call(self, input):
        output = []
        while input > 0:
            input = input - 0.01
            output.append(input)
        return tf.stack(output, axis=1)

input_label = tf.keras.Input((1, 3))
lstm1 = tf.keras.layers.LSTM(1)
looper = Looper(10)
output = lstm1(input_label)
output = looper(output)

model = tf.keras.Model(input_label, output)
adam = tf.keras.optimizers.Adam(0.01)
model.compile(adam, 'mse')

मैं नहीं होगा पता लगाने के लिए सक्षम किसी भी इसी तरह के मुद्दों या सवाल में ... बदलेगी देश मुद्दे पर नजर रखने और न ही तो है । किसी भी मदद या अंतर्दृष्टि बहुत सराहना की है :)

keras python tensorflow
2021-11-23 10:39:33
1

सबसे अच्छा जवाब

1

मुझे लगता है कि समस्या में झूठ बोल सकती अजगर सूची आप का उपयोग कर रहे हैं में कस्टम परत. आप का उपयोग करना चाहिए एक Tensorflow संग्रह की तरह tf.TensorArray के लिए अपने उपयोग के मामले:

import tensorflow as tf
import numpy as np

class Looper(tf.keras.layers.Layer):
    # custom layer
    def __init__(self, units, **kwargs):
        super(Looper, self).__init__(**kwargs)
        self.units = units

    def call(self, input):
        output = tf.TensorArray(dtype=tf.float32, size=0, dynamic_size=True)
        while input > 0:
            input = input - 0.01
            output = output.write(output.size(), input)
        return output.stack()

input_label = tf.keras.Input((1, 3))
lstm1 = tf.keras.layers.LSTM(1)
looper = Looper(10)
output = lstm1(input_label)
output = looper(output)

model = tf.keras.Model(input_label, output)
adam = tf.keras.optimizers.Adam(0.01)
model.compile(adam, 'mse')

print(model(tf.random.normal((1, 1, 3))))
tf.Tensor(
[[[ 0.01392288]]

 [[ 0.00392288]]

 [[-0.00607712]]], shape=(3, 1, 1), dtype=float32)

निर्भर करता है तुम क्या करने के लिए वान करते हैं, आप करेंगे शायद है नयी आकृति प्रदान करने के उत्पादन से Looper परत.

2021-11-23 12:42:58

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में