Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Keras Graph disconnected cannot obtain value for tensor KerasTensor

Tensorflow: 2.4.0

This is the Full Error Message:

ValueError: Graph disconnected: cannot obtain value for tensor KerasTensor(type_spec=TensorSpec(shape=(None, 64, 64, 3), dtype=tf.float32, name='input_1'), name='input_1', description="created by layer 'input_1'") at layer "flatten". The following previous layers were accessed without issue: []

I have been trying to make a controllable Autoencoder where I have 10 features I can variy to get an image (64x64 RGB)

And i have been having Trouble getting it working. I want to seperate the Neural Network into a full model which i can fit and an Decoder which i can use to later after training parse values into to generate images

btw i know this is not the perfect way to do an autoencoder it's just the simplest i can think of.

def Create_Generator(Image_Shape):
    Input_Layer = Input(shape=Image_Shape)
    Flatten_Layer1 = Flatten()(Input_Layer)
    Dense_Layer1 = Dense(12288,activation="relu")(Flatten_Layer1)
    Dense_Layer2 = Dense(6144,activation="relu")(Dense_Layer1)
    Dense_Layer3 = Dense(1024, activation="relu")(Dense_Layer2)

    Dense_Layer4 = Dense(10,activation="relu")(Dense_Layer3)

    Dense_Layer5 = Dense(1024, activation="relu")(Dense_Layer4)
    Dense_Layer6 = Dense(6144,activation="relu")(Dense_Layer5)
    Dense_Layer7 = Dense(12288,activation="relu")(Dense_Layer6)
    Reshape_Layer = Reshape(Image_Shape)(Dense_Layer7)

    AutoEncoder = Model(Input_Layer,Reshape_Layer)
    AutoEncoder.compile(optimizer='adam', loss ='binary_crossentropy')

    encoded_input = Input(shape=(10,))
    Decoder = Model([encoded_input,Dense_Layer5,Dense_Layer6,Dense_Layer7],Reshape_Layer)

    return AutoEncoder,Decoder
data = np.load("data.npz")
X_train = data['X']

AutoEncoder,Decoder = Create_Generator((64,64,3))

#Just for testing if it works
print(AutoEncoder.predict([X_train[0]]))
print(Decoder([[1,1,1,1,1,1,1,1,1,1]]))
like image 984
Allstreamer_ Avatar asked Oct 27 '25 09:10

Allstreamer_


1 Answers

I think you have an error here:

Decoder = Model([encoded_input,Dense_Layer5,Dense_Layer6,Dense_Layer7],Reshape_Layer)

Dense_Layer5, Dense_Layer6, Dense_Layer7 are not tf.keras.layers.Input. You can not create Decoder this way.

like image 98
Andrey Avatar answered Oct 29 '25 22:10

Andrey