TensorFlow 2.4.1
CUDA 11.1
CUDNN 8.05
显卡 RTX 2060
之前使用Yolo3-darknet的时候是可以正常使用的
查了一下有人说是版本不匹配的问题,但据我了解TensorFlow 2.4应该是和CUDA 11,CUDNN 8对应的啊
求大佬们帮忙看看
怎么跑才有那个问题出现?
我按 TensorFlow 教的:
import tensorflow as tf print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU')))
看错误是少安装了cusolver库
https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/
我是在Anaconda下装的,但我按网上的说法,发现没有 tensorflow_core 这个文件夹
是不是这个原因?
网上也没有这个文件夹的下载方式,怎么解决呢?
我的:
网上别人的:
解决方法:
进入C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin的目录中,会发现里面有上图缺失的_100.dll版本,将对应的100.dll文件复制到桌面,修改文件名为10.dll后,在粘贴到此目录下就ok啦
修改后就可以了
bin文件夹下添加的文件如下图,其他类似
我缺少的是整个tensorflow_core文件夹,dll缺失我自己会解决,也没有缺
我今天重新用清华源装了一遍tensorflow,现在返回的是True了,但按道理这里应该会写GPU信息的
而且不管是用PyCharm还是直接在Anaconda Prompt 的tensorflow环境里运行代码,都会提示 ModuleNotFoundError: No module named 'tensorflow.examples'
查了一下都说要下载一个tutorials放在Lib\site-packages\tensorflow_core\examples下,但我tensorflow_core这个文件夹都没有,更不用说里面的东西了网上也找不到整个tensorflow_core的下载链接
用这个测
physical_devices = tf.config.list_physical_devices('GPU')
tf.config.experimental.set_memory_growth(physical_devices[0], True)
你都写 tutorials,放那还不是一样?
还是不行
今天换了tensorflow2.1,可以使用但没有GUP加速,和之前一样的问题,返回Not creating XLA devices, tf_xla_enable_xla_devices not set。
查了说可能是tensorflow和CUDA对不上,又换了CUDA10.1,但测试又返回False了。
又查说可能是显卡驱动和CUDA版本对不上,我的显卡驱动默认是11.1的CUDA,但和CUDA10.1配套的显卡驱动已经找不到官方下载地址了,且似乎不支持我的RTX2060
现在该怎么办?
跑得是哪个例子?Link 在哪里?
TensorFlow 2.4.1 bug 在这个文件夹找东西: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0
我装得最新版本:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2
改成: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0
在 environment 改
CUDA_PATH_V11_2
Path:
重启 PyCharm,一切OK 🙉!
跑这个试 XLA:
import tensorflow as tf
assert (tf.test.gpu_device_name())
def load_data():
(x_train, y_train), (x_test, y_test) = tf.keras.datasets.cifar10.load_data()
x_train = x_train.astype('float32') / 256
x_test = x_test.astype('float32') / 256
# Convert class vectors to binary class matrices.
y_train = tf.keras.utils.to_categorical(y_train, num_classes=10)
y_test = tf.keras.utils.to_categorical(y_test, num_classes=10)
return (x_train, y_train), (x_test, y_test)
def generate_model():
return tf.keras.models.Sequential([
tf.keras.layers.Conv2D(32, (3, 3), padding='same', input_shape=x_train.shape[1:]),
tf.keras.layers.Activation('relu'),
tf.keras.layers.Conv2D(32, (3, 3)),
tf.keras.layers.Activation('relu'),
tf.keras.layers.MaxPooling2D(pool_size=(2, 2)),
tf.keras.layers.Dropout(0.25),
tf.keras.layers.Conv2D(64, (3, 3), padding='same'),
tf.keras.layers.Activation('relu'),
tf.keras.layers.Conv2D(64, (3, 3)),
tf.keras.layers.Activation('relu'),
tf.keras.layers.MaxPooling2D(pool_size=(2, 2)),
tf.keras.layers.Dropout(0.25),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(512),
tf.keras.layers.Activation('relu'),
tf.keras.layers.Dropout(0.5),
tf.keras.layers.Dense(10),
tf.keras.layers.Activation('softmax')
])
def compile_model(model):
opt = tf.keras.optimizers.RMSprop(lr=0.0001, decay=1e-6)
model.compile(loss='categorical_crossentropy',
optimizer=opt,
metrics=['accuracy'])
return model
def train_model(model, x_train, y_train, x_test, y_test, epochs=25):
model.fit(x_train, y_train, batch_size=256, epochs=epochs, validation_data=(x_test, y_test), shuffle=True)
def warmup(model, x_train, y_train, x_test, y_test):
# Warm up the JIT, we do not wish to measure the compilation time.
initial_weights = model.get_weights()
train_model(model, x_train, y_train, x_test, y_test, epochs=1)
model.set_weights(initial_weights)
(x_train, y_train), (x_test, y_test) = load_data()
model = generate_model()
tf.keras.backend.clear_session()
tf.config.optimizer.set_jit(True) # Enable XLA.
model = compile_model(generate_model())
(x_train, y_train), (x_test, y_test) = load_data()
warmup(model, x_train, y_train, x_test, y_test)
train_model(model, x_train, y_train, x_test, y_test)
同理,在 Linux 和 macOS,跑上面的程式,看看 TensorFlow 2.4.1 在哪里找东西,把文件夹改或者搬过去。
你这回答的。。。
最基础的环境变量我肯定会设置的啊,而且我说过了我不缺DLL,缺失tensorflow_core的原因我也找到了,2.4版本就是没有这个模块的,我现在的问题就只有返回Not creating XLA devices, tf_xla_enable_xla_devices not set,正常应该会返回GPU0之类的,你可以试试你返回的是啥
不是跑哪个测试程序,是刚装完测试GPU的时候,tf.test.is_gpu_available()返回的,跑程序时也会出现,但似乎没啥影响
感觉你从头到尾回答的都是牛头不对马嘴,说的都是一些最基本的环境搭设,这些最基础的东西真没必要说这么多。。。。
我现在跑程序只会报错GPU占用过高,用任务栏管理器看独显的GPU占用一直是0,专用内存倒是基本占满了,跑程序应该是没啥问题,我现在就只想知道为啥会返回Not creating XLA devices, tf_xla_enable_xla_devices not set,以及有没有什么解决方法
要不是我的显卡驱动总是卸载不干净,2060好像还不支持太低版本的显卡驱动,我就换一个tensorflow1了。。。。
如果你也装的是最新版本的tf2.4,你看看你的tensorflow2.4\Lib\site-packages有没有tensorflow_core这个文件夹