我认为这些消息在最初的几次非常重要,但它只是无用的.它实际上使阅读和调试变得更糟.
我的tensorflow/stream_executor/dso_loader.cc:128]在本地成功打开了CUDA库libcublas.so.8.0我的tensorflow/stream_executor/dso_loader.cc:119]无法打开CUDA库libcudnn.so.LD_LIBRARY_PATH:I tensorflow/stream_executor/cuda/cuda_dnn.cc:3459]无法加载cuDNN DSO I tensorflow/stream_executor/dso_loader.cc:128]在本地成功打开了CUDA库libcufft.so.8.0 I tensorflow/stream_executor/dso_loader.cc: 128]在本地成功打开CUDA库libcuda.so.1我的tensorflow/stream_executor/dso_loader.cc:128]在本地成功打开了CUDA库libcurand.so.8.0
有没有办法压制那些只说它成功的?
在训练我的网络时,我偶尔会遇到警告:
W0722 11:47:35.101842 140641577297728 optimizer_v2.py:928] Gradients does not exist for variables ['model/conv1d_x/Variable:0'] when minimizing the loss.
这种情况偶尔会发生(可能每 20 步成功一次)。我的模型基本上有两条路径,它们在网络的不同位置连接在一起。为了说明这一点,这里有一个简单的例子来说明我的意思。
class myModel(tf.keras.Model):
def __init__(self):
self.conv1 = Conv2D(32)
self.conv2 = Conv2D(32)
self.conv3 = Conv2D(16)
def call(self, inputs):
net1 = self.conv1(inputs)
net2 = self.conv2(inputs)
net = tf.concat([net1, net2], axis=2)
net = self.conv3(net)
end_points = tf.nn.softmax(net)
model = myModel()
with tf.GradientTape() as tape:
predicition = model(image)
loss = myloss(labels, prediction)
gradients = tape.gradient(loss, model.trainable_variables)
optimizer.apply_gradients(zip(gradients, model.trainable_variables))
Run Code Online (Sandbox Code Playgroud)
实际上,我的网络要大得多,但通常没有梯度的变量往往是网络顶部的变量。在每Conv2D一层之前,我还有一个自定义渐变。有时当我出现错误时,我会注意到该层的梯度函数尚未被调用。
我的问题是梯度磁带如何在通过我的网络向后传播时有时会采用看起来不同的路径。我的第二个问题,这是由于我的网络有两条独立的路由(即 conv1 和 conv2)造成的。这种网络架构是否存在根本性缺陷?
理想情况下,我可以定义 …