官术网_书友最值得收藏!

Defining the custom loss function

In the previous section, we used the predefined mean absolute error loss function to perform the optimization. In this section, we will learn about defining a custom loss function to perform optimization.

The custom loss function that we shall build is a modified mean squared error value, where the error is the difference between the square root of the actual value and the square root of the predicted value.

The custom loss function is defined as follows:

import keras.backend as K
def loss_function(y_true, y_pred):
return K.square(K.sqrt(y_pred)-K.sqrt(y_true))

Now that we have defined the loss function, we will be reusing the same input and output datasets that we prepared in previous section, and we will also be using the same model that we defined earlier.

Now, let's compile the model:

model.compile(loss=loss_function, optimizer='adam')

In the preceding code, note that we defined the loss value as the custom loss function that we defined earlier—loss_function.

history = model.fit(train_data2, train_targets, validation_data=(test_data2, test_targets), epochs=100, batch_size=32, verbose=1)

Once we fit the model, we will note that the mean absolute error is ~6.5 units, which is slightly less than the previous iteration where we used the mean_absolute_error loss function.

主站蜘蛛池模板: 贡山| 句容市| 中宁县| 靖西县| 句容市| 泾川县| 阳朔县| 海门市| 聂荣县| 辽宁省| 志丹县| 新野县| 罗城| 黄梅县| 旬阳县| 池州市| 汝州市| 博白县| 洛浦县| 南木林县| 宜兰县| 灵寿县| 白山市| 沭阳县| 衢州市| 许昌市| 淮滨县| 佳木斯市| 临海市| 边坝县| 綦江县| 枣阳市| 凤台县| 长治市| 开鲁县| 西宁市| 鲁山县| 巴彦淖尔市| 鸡西市| 疏勒县| 东平县|