Python 3.x Keras:没有为任何变量提供梯度

Python 3.x Keras:没有为任何变量提供梯度,python-3.x,tensorflow,keras,generative-adversarial-network,Python 3.x,Tensorflow,Keras,Generative Adversarial Network,我正在研究一个基于GAN的问题,我得到了一个梯度不可见的问题。我希望有人能帮我。我有两个主要的代码可以帮助您识别问题。第一段代码加载变量中的数据 training_image=[] 目标图片=[] 对于图像中的图像: a\u img=cv2.resize(cv2.imread(os.path.join(Augment\u img\u dir,image),0),(128128))/255 lsri\u img=cv2.resize(cv2.imread(os.path.join(lsri\u

我正在研究一个基于GAN的问题,我得到了一个梯度不可见的问题。我希望有人能帮我。我有两个主要的代码可以帮助您识别问题。第一段代码加载变量中的数据

training_image=[]
目标图片=[]
对于图像中的图像:
a\u img=cv2.resize(cv2.imread(os.path.join(Augment\u img\u dir,image),0),(128128))/255
lsri\u img=cv2.resize(cv2.imread(os.path.join(lsri\u img\u dir,image),0),(128128),cv2.INTER\u最近)/255
hsri\u img=cv2.resize(cv2.imread(os.path.join(hsri\u img\u dir,image),0),(128128))/255
img\U列车=[a\U img,lsri\U img]
img\U列车=np.asarray(img\U列车)
img\U列=np.移动轴(img\U列,0,-1)
培训图像。附加(img\U培训)
目标图像。附加(hsri\U img)
训练图像=np.asarray(训练图像)
target\u images=np.asarray(target\u images)
训练图像、测试图像、训练目标、测试目标=训练测试分割(训练图像、目标图像、,
测试大小=0.20,随机状态=42)
批量大小=8
列车img\U批次=[]
目标\u img\u批次=[]
len\u imgs=len(列车imgs)
开始=0
列车温度=[]
温度目标=[]
对于范围内的i(len_imgs+1):
如果i%batch_size==0且i>0:
批量附加(np.asarray(临时列车))
target\u img\u batch.append(np.asarray(temp\u target))
列车温度=[]
温度目标=[]
如果我len_imgs:
临时列车附加(列车imgs[i])
临时目标追加(训练目标[i])
批量生产线=np.asarray(批量生产线)

target\u img\u batch=np.asarray(target\u img\u batch)
您正在
GradientTape
范围内的多个位置使用
numpy
操作,例如在行中

fake_hr_patchs = np.reshape(fake_hr_patchs, (8,128,128))
GradientTape
范围内的所有
numpy
函数替换为其
tensorflow
等效函数。例如,上面的行变为:

fake_hr_patchs = tf.reshape(fake_hr_patchs, (8,128,128))

你好,我刚刚做了,它工作得很好。非常感谢,这真的很快,很有帮助。如果答案有帮助的话,请接受:)它现在很有魅力。谢谢。我有一个后续问题。虽然它可以工作,但处理不是在GPU上进行的,而是在我的CPU上进行的?对此有什么建议吗?是否安装了软件包
tensorflow gpu
,您的机器是否具有所需的CUDA和CuDNN版本?是的,我可以在gpu上运行不同的型号,但当我运行此型号时,它不会将其分配给gpu。