我想使用 DSSIM 損失函數(shù),我把這個(gè)損失函數(shù)的代碼放在我的代碼中,但它產(chǎn)生了這個(gè)錯(cuò)誤回溯(最近一次調(diào)用最后一次):文件“”,第 218 行,在 w_extraction.compile(optimizer=opt, loss={'decoder_output':'DSSIMObjective','wprim':'binary_crossentropy'}, loss_weights={'decoder_output': 1.0, 'wprim': 1.0 },metrics=['mae'])文件“D:\software\Anaconda3\envs\py36\lib\site-packages\keras\engine\training.py”,第 129 行,編譯 loss_functions.append(losses.get(loss.get(name)))文件“D:\software\Anaconda3\envs\py36\lib\site-packages\keras\losses.py”,第 133 行,在 get 中返回反序列化(標(biāo)識(shí)符)文件“D:\software\Anaconda3\envs\py36\lib\site-packages\keras\losses.py”,第114行,反序列化printable_module_name='loss function')文件 "D:\software\Anaconda3\envs\py36\lib\site-packages\keras\utils\generic_utils.py",第 165 行,在 deserialize_keras_object ':' + function_name)ValueError:未知損失函數(shù):DSSIMObjective我不知道我應(yīng)該把這個(gè)損失函數(shù)的定義放在哪里?我把這段代碼放在我的網(wǎng)絡(luò)結(jié)構(gòu)之上。import keras_contrib.backend as KCclass DSSIMObjective: """Difference of Structural Similarity (DSSIM loss function). Clipped between 0 and 0.5 Note : You should add a regularization term like a l2 loss in addition to this one. Note : In theano, the `kernel_size` must be a factor of the output size. So 3 could not be the `kernel_size` for an output of 32. # Arguments k1: Parameter of the SSIM (default 0.01) k2: Parameter of the SSIM (default 0.03) kernel_size: Size of the sliding window (default 3) max_value: Max value of the output (default 1.0) """ def __init__(self, k1=0.01, k2=0.03, kernel_size=3, max_value=1.0): self.__name__ = 'DSSIMObjective' self.kernel_size = kernel_size self.k1 = k1 self.k2 = k2 self.max_value = max_value self.c1 = (self.k1 * self.max_value) ** 2 self.c2 = (self.k2 * self.max_value) ** 2 self.dim_ordering = K.image_data_format() self.backend = K.backend() def __int_shape(self, x): return K.int_shape(x) if self.backend == 'tensorflow' else K.shape(x)
1 回答

呼如林
TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超3個(gè)贊
您應(yīng)該通過(guò)提供對(duì)象實(shí)例而不是字符串名稱來(lái)調(diào)用此損失:
w_extraction.compile(optimizer=opt, loss={'decoder_output': DSSIMObjective(),'wprim':'binary_crossentropy'}, loss_weights={'decoder_output': 1.0, 'wprim': 1.0},metrics=['mae'])
添加回答
舉報(bào)
0/150
提交
取消