Python 未知错误:使用Tensorflow gpu运行LSTM时无法获取卷积算法
我正在尝试使用tensorflow gpu运行RNN,因为使用CPU处理1个历元(列车中8000个图像/测试中2000个图像)花费了我大约13分钟的时间。然而,我尝试了几次在我的Windows 10上安装tensorflow gpu,但都未能成功运行。我有以下配置: GPU 1:NVIDIA GeForce GTX 1650 GPU 0:Intel(R)UHG图形630 CPU:Intel(R)Core(TM)i7-9750H CPU@2.60GHz 我在pip中的virtualenv Tensorflow中安装了以下组件: 我遵循了以下教程:Python 未知错误:使用Tensorflow gpu运行LSTM时无法获取卷积算法,python,tensorflow,keras,deep-learning,gpu,Python,Tensorflow,Keras,Deep Learning,Gpu,我正在尝试使用tensorflow gpu运行RNN,因为使用CPU处理1个历元(列车中8000个图像/测试中2000个图像)花费了我大约13分钟的时间。然而,我尝试了几次在我的Windows 10上安装tensorflow gpu,但都未能成功运行。我有以下配置: GPU 1:NVIDIA GeForce GTX 1650 GPU 0:Intel(R)UHG图形630 CPU:Intel(R)Core(TM)i7-9750H CPU@2.60GHz 我在pip中的virtualenv Tens
- tensorflow gpu/CUDA/Cudnn之间的兼容性(我尝试了不同的组合CUDA 9.0/…)
- 我将我的tensoflow gpu降级到1.8.0,但没有工作
from tensorflow.keras import backend
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D
from tensorflow.keras.layers import MaxPooling2D
from tensorflow.keras.layers import Flatten
from tensorflow.keras.layers import Dense
classifier = Sequential()
classifier.add(Conv2D(32, (3, 3), input_shape = (64, 64, 3), activation = 'relu'))
classifier.add(MaxPooling2D(pool_size = (2, 2)))
classifier.add(Conv2D(32, (3, 3), activation = 'relu'))
classifier.add(MaxPooling2D(pool_size = (2, 2)))
classifier.add(Flatten())
classifier.add(Dense(units = 128, activation = 'relu'))
classifier.add(Dense(units = 1, activation = 'sigmoid'))
classifier.compile(optimizer = 'adam', loss = 'binary_crossentropy', metrics = ['accuracy'])
from tensorflow.keras.preprocessing.image import ImageDataGenerator
train_datagen = ImageDataGenerator(rescale = 1./255,
shear_range = 0.2,
zoom_range = 0.2,
horizontal_flip = True)
test_datagen = ImageDataGenerator(rescale = 1./255)
training_set = train_datagen.flow_from_directory('dataset/training_set',
target_size = (64, 64),
batch_size = 32,
class_mode = 'binary')
test_set = test_datagen.flow_from_directory('dataset/test_set',
target_size = (64, 64),
batch_size = 32,
class_mode = 'binary')
classifier.fit_generator(training_set,
steps_per_epoch = 8000,
epochs = 25,
validation_data = test_set,
validation_steps = 2000)
你的图片都是RGB吗?我得到这个错误是因为模型和数据之间的维度错误
- 如果图像为灰度,则它们将有一个通道:
,并且与模型的输入形状(64,64,1)
不兼容李>(64,64,3)
- 如果您的图像是RGBA,它们将有4个通道,这也是不兼容的李>
print('training data shapes:')
for i in range(len(training_set)):
print(training_set[i][0].shape)
print('\ntest data shapes:')
for i in range(len(test_set)):
print(test_set[i][0].shape)
还需要一些时间来绘制生成器及其类中的一些图像。这些图像是基于RGB的。我没想到问题来自代码,因为它来自课程教程本身(Udemy的A-Z深度学习)。我得到以下结果:(32,64,64,3)没有让它运行所有图像,因为我有10000个。也许你可以让它运行所有图像,以防万一。。。检查循环中的
断言img.shape[-1]==3
。您的代码似乎完全正常。也许你的问题确实和我的不一样。所以我的训练数据形状:(32,64,64,3)和测试数据形状:(32,64,64,3)以及明显的1例形状(16,64,64,3)。在何处添加断言img.shape[-1]==3?在放入循环时,它给出了错误“img”未找到。img=training\u set[i][0]
。但根据你的描述,似乎一切正常。