Search code examples
pythontensorflowkerasmodelartificial-intelligence

AI - Keras building model


Input X = [[1,1,1,1,1], [1,2,1,3,7], [3,1,5,7,8]] etc.. Output Y = [[0.77],[0.63],[0.77],[1.26]] etc..

input x mean some combination example

["car", "black", "sport", "xenon", "5dor"] 
["car", "red", "sport", "noxenon", "3dor"] etc...

output mean some score of combination.

What i need? i need to predict is combination good or bad....

Dataset size 10k..

Model:

model.add(Dense(20, input_dim = 5, activation = 'relu'))
model.add(Dense(20, activation = 'relu'))
model.add(Dense(1, activation = 'linear'))

optimizer = adam, loss = mse, validation split 0.2, epoch 30

Tr:

Epoch 1/30
238/238 [==============================] - 0s 783us/step - loss: 29.8973 - val_loss: 19.0270
Epoch 2/30
238/238 [==============================] - 0s 599us/step - loss: 29.6696 - val_loss: 19.0100
Epoch 3/30
238/238 [==============================] - 0s 579us/step - loss: 29.6606 - val_loss: 19.0066
Epoch 4/30
238/238 [==============================] - 0s 583us/step - loss: 29.6579 - val_loss: 19.0050
Epoch 5/30

not good no sens...

i need some good documentation how to proper setup or build model...


Solution

  • Just tried to reproduce. My results differ from yours. Please check:

    import tensorflow as tf
    from tensorflow.keras.layers import Input, Dense
    from tensorflow.keras import Model
    inputA = Input(shape=(5, ))
    x = Dense(20, activation='relu')(inputA)
    x = Dense(20, activation='relu')(x)
    x = Dense(1, activation='linear')(x)
    model = Model(inputs=inputA, outputs=x)
    model.compile(optimizer = 'adam', loss = 'mse')
    input = tf.random.uniform([10000, 5], 0, 10, dtype=tf.int32)
    labels = tf.random.uniform([10000, 1])
    model.fit(input, labels, epochs=30, validation_split=0.2)
    

    Results:

    Epoch 1/30 250/250 [==============================] - 1s 3ms/step - loss: 0.1980 - val_loss: 0.1082

    Epoch 2/30 250/250 [==============================] - 1s 2ms/step - loss: 0.0988 - val_loss: 0.0951

    Epoch 3/30 250/250 [==============================] - 1s 2ms/step - loss: 0.0918 - val_loss: 0.0916

    Epoch 4/30 250/250 [==============================] - 1s 2ms/step - loss: 0.0892 - val_loss: 0.0872

    Epoch 5/30 250/250 [==============================] - 0s 2ms/step - loss: 0.0886 - val_loss: 0.0859

    Epoch 6/30 250/250 [==============================] - 1s 2ms/step - loss: 0.0864 - val_loss: 0.0860

    Epoch 7/30 250/250 [==============================] - 1s 3ms/step - loss: 0.0873 - val_loss: 0.0863

    Epoch 8/30 250/250 [==============================] - 1s 2ms/step - loss: 0.0863 - val_loss: 0.0992

    Epoch 9/30 250/250 [==============================] - 0s 2ms/step - loss: 0.0876 - val_loss: 0.0865

    The model should work on real figures.