我正在实现一个自定义损失函数,如下面的代码所示,用于简单的分类。但是,当我运行代码时,我得到错误ValueError:没有为任何变量提供渐变: import os
os.environ['KERAS_BACKEND'] = "tensorflow"
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from tensorflow import keras
from tensorflow.keras import layers
from sklearn.prep
我正在尝试将LogCosh函数实现为自定义损失函数。当我这样做时,我得到了一个错误,因为拟合阶段将NaN作为损失。更奇怪的是,当我运行它时,它开始给出损失的实际值,然后到达一个点,它再次开始返回NaN。
我的模型:
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
model = tf.keras.Sequential([
tf.keras.layers.Flatten(input_shape=(81,)),
tf.keras.layers.Dens
我正在尝试为我用Keras编写的模型编写一个像素加权损失函数,但在TensorFlow 2.0中似乎不再可能了,即除了y_true和y_pred之外,不可能有其他输入的损失函数
我以前是这样写的:
from tensorflow.keras.layers import Input, Conv2D
from tensorflow.keras.optimizers import Adam
from tensorflow.keras import backend as K
def my_keras_model():
input = Input((256,256,1), name='in
我试图使用自定义损失函数在Keras中实现一个简单的线性回归。假设错误为函数值的1%,我正在计算chi2。我将1%高斯噪声加到线性模型中。当我使用均方误差损失函数('mse')时,我可以添加custom_loss()函数作为度量,并且我看到它收敛到非常接近1 (chi2/ndf)。如果我直接使用custom_loss()作为损失函数,如下面的片段所示,神经元的重量根本不会移动。
我做错了什么?
from keras.models import Sequential
from keras.layers import Dense
from keras import optimize
我将python 3与anaconda结合使用,并尝试使用带有Keras模型的tf.contrib丢失函数。
代码如下
from keras.layers import Dense, Flatten
from keras.optimizers import Adam
from keras.models import Sequential
from tensorflow.contrib.losses import metric_learning
model = Sequential()
model.add(Flatten(input_shape=input_shape))
model.add(D
以下代码工作、收敛,并且神经网络在从0到1的区间上近似于指数:
# code works
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
# fit an exponential
n = 101
x = np.linspace(start=0, stop=1, num=n)
y_e = np.exp(x)
# any odd neural net with sufficient degrees of freedom
model = tf.keras.models.Sequentia
我试图在我的Keras序列模型(TensorFlow 2.6.0)中使用自定义丢失函数。这种自定义损耗(理想情况下)将计算数据损失加上物理方程的残差(例如扩散方程、Navier等)。这个残差是基于模型输出导数wrt,它的输入,我想使用GradientTape。
在这个MWE中,我去掉了数据损失项和其他方程损失,只使用输出wrt的导数作为输入。可以找到数据集。
from numpy import loadtxt
from keras.models import Sequential
from keras.layers import Dense
import tensorflow as tf #t
我使用TF2 (2.3.0) NN逼近函数y,它解决了ODE: y'+3y=0
我定义了剪刀损失类和函数,在这些函数中,我试图将单个输出与单个输入区分开来,因此方程成立,条件是y_true为零:
from tensorflow.keras.losses import Loss
import tensorflow as tf
class CustomLossOde(Loss):
def __init__(self, x, model, name='ode_loss'):
super().__init__(name=name)
se