Я новичок в Tensorflow / Keras, и я хотел бы настроить мою функцию потери, мой код здесь:
model = tf.keras.models.Sequential([
tf.keras.layers.Conv2D(32, kernel_size=(3, 3),
activation='relu',
input_shape=input_shape),
tf.keras.layers.Conv2D(64, kernel_size=(3, 3),
activation='relu'),
tf.keras.layers.MaxPooling2D(pool_size=(2, 2)),
tf.keras.layers.Dropout(0.25),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(512, activation=tf.nn.relu),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(4, activation=tf.nn.softmax)
])
def lossFunction(y_true, y_pred):
y_true = tf.placeholder(shape=[330,28,28,3], dtype=tf.float32)
y_pred = tf.placeholder(shape=[1,28,28,3], dtype=tf.float32)
y_true = tf.convert_to_tensor(y_true, dtype=tf.float32)
y_pred = tf.convert_to_tensor(y_pred, dtype=tf.float32)
loss=(1/1568)*(K.abs(K.pow((y_true - y_pred),2)))
return loss
lossFunction(x_train,arrTest)
with tf.device('/gpu:0'):
model.compile(optimizer = 'adam',loss=lossFunction, metrics=['accuracy'])
model_log = model.fit(x_train, arrTest, batch_size=x_train.shape[0], epochs=x_train.shape[0],verbose=1)
score = model.evaluate(x_test, y_test, verbose=1)
Я получаю эти ошибки:
File "Classification.py", line 184, in <module>
model_log = model.fit(x_train, arrTest, batch_size=x_train.shape[0], epochs=x_train.shape[0],verbose=1)
File "/home/sabrinamehlal/.local/lib/python2.7/site-packages/tensorflow/python/keras/engine/training.py", line 776, in fit
shuffle=shuffle)
File "/home/sabrinamehlal/.local/lib/python2.7/site-packages/tensorflow/python/keras/engine/training.py", line 2436, in _standardize_user_data
training_utils.check_array_lengths(x, y, sample_weights)
File "/home/sabrinamehlal/.local/lib/python2.7/site-packages/tensorflow/python/keras/engine/training_utils.py", line 456, in check_array_lengths
'and ' + str(list(set_y)[0]) + ' target samples.')
ValueError: Input arrays should have the same number of samples as target arrays. Found 330 input samples and 1 target samples.
Форма моего x_train = [330,28,28,3] и Форма моего arrTest = [1,28,28,3]
Не могли бы вы мне помочь, пожалуйста?