Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 简单封闭的自定义损失函数不起作用_Python_Tensorflow_Machine Learning_Keras - Fatal编程技术网

Python 简单封闭的自定义损失函数不起作用

Python 简单封闭的自定义损失函数不起作用,python,tensorflow,machine-learning,keras,Python,Tensorflow,Machine Learning,Keras,我试图实现一个自定义的丢失函数。因此,我首先尝试通过直接封闭一个默认keras损失函数来创建一个自定义函数tf.keras.Loss.Category_crossentrophy 但它不起作用。 这怎么可能呢???我过去曾使用过自定义函数,就在今天,这让我感到震惊。 为什么不起作用?如何使这个简单的函数工作 @tf.function def sameloss(y_true, y_pred): output = tf.keras.losses.categorical_crossentrop

我试图实现一个自定义的丢失函数。因此,我首先尝试通过直接封闭一个默认keras损失函数来创建一个自定义函数<代码>tf.keras.Loss.Category_crossentrophy

但它不起作用。 这怎么可能呢???我过去曾使用过自定义函数,就在今天,这让我感到震惊。 为什么不起作用?如何使这个简单的函数工作

@tf.function
def sameloss(y_true, y_pred):
    output = tf.keras.losses.categorical_crossentropy(y_true, y_pred)
    return output
我使用
model.compile(optimizer=tf.keras.optimizers.RMSprop(),loss=sameloss)

在训练中,损失只是停留在10点,没有移动。
但是,当我在编译过程中将损失直接设置为
loss=tf.keras.loss.categorical\u crossentropy
时,它运行良好,损失为零。但是,当我将其设置为自定义
sameloss
函数中包含的与
loss=sameloss

相同的丢失函数时,它将停止工作。我能够在TF 2.4中执行自定义丢失函数,请参考如下所示的工作代码

import numpy as np
import tensorflow as tf
print(tf.__version__)

@tf.function
def sameloss(y_true, y_pred):
    output = tf.keras.losses.categorical_crossentropy(y_true, y_pred)
    return output

input = np.random.rand(1000,15)
labels = np.random.rand(1000,15)

model = tf.keras.models.Sequential()
model.add(tf.keras.layers.Dense(5))
model.add(tf.keras.layers.Dense(15))
model.compile(optimizer='RMSprop', loss=sameloss)

model.fit(input, labels, epochs=5)
输出:

2.4.1
Epoch 1/5
32/32 [==============================] - 0s 1ms/step - loss: 48.8549
Epoch 2/5
32/32 [==============================] - 0s 976us/step - loss: 43.7030
Epoch 3/5
32/32 [==============================] - 0s 1ms/step - loss: 39.2598
Epoch 4/5
32/32 [==============================] - 0s 1ms/step - loss: 37.5566
Epoch 5/5
32/32 [==============================] - 0s 1ms/step - loss: 34.7458
<tensorflow.python.keras.callbacks.History at 0x7f11f03b3fd0>
2.4.1
纪元1/5
32/32[====================================]-0s 1ms/步-损耗:48.8549
纪元2/5
32/32[=================================]-0s 976us/步-损耗:43.7030
纪元3/5
32/32[====================================]-0s 1ms/步-损耗:39.2598
纪元4/5
32/32[====================================]-0s 1ms/步-损耗:37.5566
纪元5/5
32/32[====================================]-0s 1ms/步-损耗:34.7458

你能分享你用来编译模型的语句吗?@SusmitAgrawal我已经编辑过了