如何解决ValueError:没有为任何变量Tensorflow == 2.3.1提供梯度
我刚开始使用Tensorflow,我需要构建一个用于对餐盘进行分类的神经网络。我仅从3个类开始,但是可以预期的是,此后这个类会增加,因此我正在从生成器创建tf.data.Dataset,以便可以释放计算机中的一些RAM。
问题是,我尝试使用的模型似乎没有从我的数据集中将任何变量视为可训练的变量(都不是有效的梯度),这引起了以下错误:
ValueError: No gradients provided for any variable: ['conv2d_9/kernel:0','conv2d_9/bias:0','conv2d_10/kernel:0','conv2d_10/bias:0','conv2d_11/kernel:0','conv2d_11/bias:0','dense_6/kernel:0','dense_6/bias:0','dense_7/kernel:0','dense_7/bias:0'].
我在下面显示您的代码:
def dataset(label,clases,path="../input/images"):
def genImg():
for im in glob.glob(f"{path}/{label}/*.jpg"):
img = cv2.imread(im)
img2 = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
dim=(32,32)
image=cv2.resize(img2,dim,interpolation=cv2.INTER_AREA)
clase=clases[label]
yield np.array(clase).astype('int32'),np.array(image).astype('float32')/255
return genImg
apple_pies=tf.data.Dataset.from_generator(dataset(clases=clases,label='apple_pie'),(tf.float32),[2,32,3])
baby_ribs=tf.data.Dataset.from_generator(dataset(clases=clases,label='baby_back_ribs'),3])
baklavas=tf.data.Dataset.from_generator(dataset(clases=clases,label='baklava'),3])
foods=apple_pies.concatenate(baby_ribs)
foods=foods.concatenate(baklavas)
X_test= foods.take(600)
X_train= foods.skip(600)
steps=3
n_features=1
batch=256
n_clases=3
epocas=1
input_shape=(2,3)
modelo=Sequential()
modelo.add(Conv2D(32,kernel_size=(3,3),activation='relu',kernel_initializer='he_normal',input_shape=input_shape[1:]))
modelo.add(MaxPooling2D((2,2)))
modelo.add(Dropout(0.25))
modelo.add(Conv2D(64,(3,activation='relu'))
modelo.add(MaxPooling2D((2,2)))
modelo.add(Dropout(0.25))
modelo.add(Conv2D(128,activation='relu'))
modelo.add(Dropout(0.4))
modelo.add(Flatten())
modelo.add(Dense(128,activation='relu'))
modelo.add(Dropout(0.3))
modelo.add(Dense(n_clases,activation='softmax'))
modelo.compile(loss='categorical_crossentropy',optimizer='adam',metrics=['accuracy'])
modelo.summary()
earlystopping = EarlyStopping(
monitor = 'loss',verbose = 1,patience = 20
)
history=modelo.fit(X_train,callbacks = [earlystopping],batch_size=batch,epochs=epocas,verbose=0)
谢谢大家!!!!!!!!!!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。