I've been trying to create a 7 columns (features) model with Keras functional API and map it to the a 6 classes output.
import tensorflow as tf
from tensorflow.keras import Model
from tensorflow.keras.layers import Input, Dense, Concatenate
input_message = Input(shape=(128,))
x = Dense(64, activation="relu")(input_message)
x = Dense(32, activation="relu")(x)
x = Dense(4, activation="relu")(x)
model_message = Model(inputs=input_message, outputs=x)
input_description = Input(shape=(128,))
x = Dense(64, activation="relu")(input_description)
x = Dense(32, activation="relu")(x)
x = Dense(4, activation="relu")(x)
model_description = Model(inputs=input_description, outputs=x)
input_errors = Input(shape=(2,))
x = Dense(1, activation="relu")(input_errors)
model_errors = Model(inputs=input_errors, outputs=x)
input_panics = Input(shape=(2,))
x = Dense(1, activation="relu")(input_panics)
model_panics = Model(inputs=input_panics, outputs=x)
input_images = Input(shape=(2,))
x = Dense(1, activation="relu")(input_images)
model_images = Model(inputs=input_images, outputs=x)
input_committer = Input(shape=(16,))
x = Dense(4, activation="relu")(input_description)
model_committer = Model(inputs=input_committer, outputs=x)
input_reporter = Input(shape=(6,))
x = Dense(1, activation="relu")(input_reporter)
model_reporter = Model(inputs=input_reporter, outputs=x)
combined = Concatenate()([model_message.output, model_description.output, model_errors.output,
model_panics.output, model_images.output, model_committer.output, model_reporter.output])
z = Dense(6, activation='softmax')(combined)
model = Model(inputs=[model_message.input, model_description.input, model_errors.input,
model_panics.input, model_images.input, model_committer.input, model_reporter.input],
outputs=z)
Sadly it was resulted in the below error:
ValueError: Graph disconnected: cannot obtain value for tensor KerasTensor(type_spec=TensorSpec(shape=(None, 128), dtype=tf.float32, name='input_23'), name='input_23', description="created by layer 'input_23'") at layer "dense_74". The following previous layers were accessed without issue: []
My feature list is as follows:
- message - text
- description - text
- has_errors - int represents a bool value
- has_panics - int represents a bool value
- has_images - int represents a bool value
- committer groups - categorical inputs
- reporter group - categorical inputs - 6 possible values overall
I've been trying to follow the below link: https://www.pyimagesearch.com/2019/02/04/keras-multiple-inputs-and-mixed-data/
so 2 questions:
- what yields the above error?
- Shouldn't I apply some kind of embedding for the text?
Thanks in advance