Home > Enterprise >  Keras Model for Float Input
Keras Model for Float Input

Time:05-23

If I wanted to make a model that would take a single number and then just output a single number (not a linear relationship, not sure what kind), how would I shape the input and output layers, and what kind of loss/optimizer/activation functions should I use? Thanks.

CodePudding user response:

Your question includes many things. What i will highly recommand you to understand

  1. Regression based problem
  2. Classification based problem

Based on that you need to figure out which activation function or loss function or optimizer you need to use because for regression and classification those are different. Try to figure out things one after another.

For input/ouput see THIS

CodePudding user response:

You have only one feature as input then the model based on,

  1. Classification based Problem,

Loss Function - categorical_crossentropy || sparse_categorical_crossentropy

optimizer - Adam

output layer - number of class need to predict

output activation - softmax

    model = tf.keras.Sequential()
    model.add(layers.Dense(8, activation='relu', input_shape = (1, ))) #input shape as 1
    model.add(layers.Dense(3, activation='softmax')) #3 is number of class
    model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=0.001), loss='categorical_crossentropy', metrics=['accuracy'])
  1. Regression based Problem,

Loss Function - mean_square_error

optimizer - Adam

output layer - 1

output activation - default (relu)

   model = tf.keras.Sequential()
   model.add(layers.Dense(8, activation='relu', input_shape = (1, ))) #input shape as 1
   model.add(layers.Dense(1)) #1 is number of output
   model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=0.001), loss='mean_square_error', metrics=['accuracy'])
  1. Binary based Problem (0 or 1),

Loss Function - binary_crossentropy

optimizer - Adam

output activation - sigmoid

output layer - 1

   model = tf.keras.Sequential()
   model.add(layers.Dense(8, activation='relu', input_shape = (1, ))) #input shape as 1
   model.add(layers.Dense(1, activation='sigmoid')) #1 is number of output
   model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=0.001), loss='binary_crossentropy', metrics=['accuracy'])
  • Related