a = Image.open('Data1' + '\\'+ imlist[0]) # open one image to get size
Вы должны читать по пути2. не так ли?
Чтобы подвести итог нашего разговора в соответствии с комментариями, я не верю, что вы можете выделить память GPU или память рабочего стола для GPU - не так, как вы пытаетесь. Когда у вас один графический процессор, в большинстве случаев Tensorflow-GPU выделяет около 95% доступной памяти для выполняемой задачи. В вашем случае, что-то уже использует всю доступную память GPU, что является основной причиной, по которой ваша программа не запускается. Вам необходимо проанализировать использование памяти вашего графического процессора и освободить часть памяти (я не могу не думать, что у вас уже есть другой экземпляр Python, использующий графический процессор Tensorflow, работающий в фоновом режиме или какую-то другую интенсивную программу графического процессора). В Linux команда nvidia-smi
в командной строке скажет вам, что использует ваш графический процессор, вот пример
Sun Jan 20 18:23:35 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 384.130 Driver Version: 384.130 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 970 Off | 00000000:01:00.0 Off | N/A |
| 32% 63C P2 69W / 163W | 3823MiB / 4035MiB | 40% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 3019 C ...e/scarter/anaconda3/envs/tf1/bin/python 3812MiB |
+-----------------------------------------------------------------------------+
В моем случае вы можете видеть, что моя карта на моем сервере имеет 4035 МБ или ОЗУ, 3823 МБ используется. Более того, просмотрите процесс графического процессора в нижней части. Процесс PID 3019 потребляет 3812 МБ из доступных 4035 МБ на карте. Если мы хотели запустить другой скрипт на python с использованием tenorflow, у меня есть два основных варианта: я могу либо установить второй GPU и запустить на втором GPU, либо, если GPU не доступен, затем запустить на CPU. Кто-то более опытный, чем я, может сказать, что вы могли бы выделить только половину памяти для каждой задачи, но 2 гигабайта памяти уже достаточно мало для тренировки тензорного потока. Обычно для этой задачи рекомендуется использовать карты с большим количеством памяти (6 гигабайт +).
В заключение выясните, что потребляет всю память вашей видеокарты, и завершите эту задачу. Я верю, что это решит вашу проблему.