Win10 下 tensorflow-gpu 2.5 环境搭建
Win10 下 tensorflow-gpu 2.5 环境搭建
简介
机器学习环境搭建,tensorflow_gpu-2.5.0 + CUDA 11.2 + CUDNN 8.1 ;环境必须是这个,具体的可以参考tensorflow官网的说明

电脑配置
当前显卡:NVIDIA GeForce 940MX
查看是否支持 CUDA ,支持的才能安装, 官网查看

文件下载
NVIDIA 最新驱动下载https://www.nvidia.cn/Download/index.aspx?lang=cn
NVIDIA GeForce 940MX 最新驱动
CUDA toolkit 下载 https://developer.nvidia.com/cuda-toolkit-archive
选择的 11.2 里面的
CUDA Toolkit 11.2.1,理论上11.2的任何一个版本都可以CUDNN 下载 https://developer.nvidia.com/zh-cn/cudnn?term=cudnn
需要 NVIDIA 的账户,登录一下没有的注册一个,同意下协议就行;这里下载的 8.1.0 Download cuDNN v8.1.0 (January 26th, 2021), for CUDA 11.0,11.1 and 11.2
安装及配置
按照下载顺序安装,nvidia 显卡在 命令行(cmd) 中输入
nvidia-smi可以查看信息;cuda 可以用输入nvcc --version查看信息。cudnn 无需安装解压后,放到自己想放的位置,然后配置路径即可环境变量配置:
在环境变量PATH添加下面位置的信息C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\bin;
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\extras\CUPTI\lib64;
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\include;
C:\tools\cuda\bin; # 这个是 cudnn 的位置,按照选的配置
不配置可能会报错,
Could not load dynamic library 'cudart64_110.dll'; dlerror: cudart64_110.dll not foundtensorflow_gpu-2.5.0配置,我是安装了 conda 然后直接安装的,很方便;下面给一些命令参考conda create -n [替换成环境名称] python=3.8 # 创建一个 python 3.8 的环境
conda activate [环境名称] # 激活对应 环境名称 的环境
conda install tensorflow-gpu==2.5 # 安装 tensorflow-gpu 2.5
一些镜像源:
-- 北大镜像源
https://mirrors.bfsu.edu.cn/anaconda/pkgs/free
https://mirrors.bfsu.edu.cn/anaconda/pkgs/main
-- 清华镜像源
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
添加channels
conda config --add channels {url}
运行程序
测试的代码来自微软的学习教程
# https://docs.microsoft.com/zh-cn/learn/modules/intro-machine-learning-keras/2-data?source=learn
import gzip
import numpy as np
import tensorflow as tf
from typing import Tuple
import requests
from PIL import Image
class NeuralNetwork(tf.keras.Model):
def __init__(self):
super(NeuralNetwork, self).__init__()
self.sequence = tf.keras.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(20, activation='relu'),
tf.keras.layers.Dense(10)
])
def call(self, x: tf.Tensor) -> tf.Tensor:
y_prime = self.sequence(x)
return y_prime
labels_map = {
0: 'T-Shirt',
1: 'Trouser',
2: 'Pullover',
3: 'Dress',
4: 'Coat',
5: 'Sandal',
6: 'Shirt',
7: 'Sneaker',
8: 'Bag',
9: 'Ankle Boot',
}
def read_images(path: str, image_size: int, num_items: int) -> np.ndarray:
with gzip.open(path, 'rb') as file:
data = np.frombuffer(file.read(), np.uint8, offset=16)
data = data.reshape(num_items, image_size, image_size)
return data
def read_labels(path: str, num_items: int) -> np.ndarray:
with gzip.open(path, 'rb') as file:
data = np.frombuffer(file.read(num_items + 8), np.uint8, offset=8)
data = data.astype(np.int64)
return data
def get_data(batch_size: int) -> Tuple[tf.data.Dataset, tf.data.Dataset]:
image_size = 28
num_train = 60000
num_test = 10000
training_images = read_images('data/FashionMNIST/raw/train-images-idx3-ubyte.gz', image_size, num_train)
test_images = read_images('data/FashionMNIST/raw/t10k-images-idx3-ubyte.gz', image_size, num_test)
training_labels = read_labels('data/FashionMNIST/raw/train-labels-idx1-ubyte.gz', num_train)
test_labels = read_labels('data/FashionMNIST/raw/t10k-labels-idx1-ubyte.gz', num_test)
# (training_images, training_labels), (test_images, test_labels) = tf.keras.datasets.fashion_mnist.load_data()
train_dataset = tf.data.Dataset.from_tensor_slices((training_images, training_labels))
test_dataset = tf.data.Dataset.from_tensor_slices((test_images, test_labels))
train_dataset = train_dataset.map(lambda image, label: (float(image) / 255.0, label))
test_dataset = test_dataset.map(lambda image, label: (float(image) / 255.0, label))
train_dataset = train_dataset.batch(batch_size).shuffle(500)
test_dataset = test_dataset.batch(batch_size).shuffle(500)
return (train_dataset, test_dataset)
def training_phase():
learning_rate = 0.1
batch_size = 64
epochs = 5
(train_dataset, test_dataset) = get_data(batch_size)
model = NeuralNetwork()
loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)
optimizer = tf.keras.optimizers.SGD(learning_rate)
metrics = ['accuracy']
model.compile(optimizer, loss_fn, metrics)
print('\nFitting:')
model.fit(train_dataset, epochs=epochs)
print('\nEvaluating:')
(test_loss, test_accuracy) = model.evaluate(test_dataset)
print(f'\nTest accuracy: {test_accuracy * 100:>0.1f}%, test loss: {test_loss:>8f}')
model.save('outputs/model')
def inference_phase():
print('\nPredicting:')
model = tf.keras.models.load_model('outputs/model/')
url = 'https://raw.githubusercontent.com/MicrosoftDocs/tensorflow-learning-path/main/intro-keras/predict-image.png'
with Image.open(requests.get(url, stream=True).raw) as image:
X = np.asarray(image, dtype=np.float32).reshape((-1, 28, 28)) / 255.0
predicted_vector = model.predict(X)
predicted_index = np.argmax(predicted_vector)
predicted_name = labels_map[predicted_index]
print(f'Predicted class: {predicted_name}')
training_phase()
inference_phase()
测试结果如图:

Win10 下 tensorflow-gpu 2.5 环境搭建的更多相关文章
- win10下VSCode+CMake+Clang+GCC环境搭建
win10下VSCode+CMake+Clang+GCC环境搭建 win10下VSCode+CMake+Clang+GCC环境搭建 安装软件 VSCode插件安装 新建文件夹, 开始撸代码 main. ...
- Win10下Tensorflow+GPU的环境配置
不得不说,想要为深度学习提前打好框架确实需要花费一番功夫.本文主要记录了Win10下,Cuda9.0.Cudnn7.3.1.Tensorflow-gpu1.13.1.python3.6.8.Keras ...
- Win10下 tensorflow gpu版安装
准备: 系统环境: windows10 + Anaconda3 + Pycharm (1)环境配置: 打开Anaconda Prompt,输入清华仓库镜像,这样更新会快一些: 输入: conda co ...
- Win10下Tensorflow的安装
Win10下Tensorflow的安装 1. Tensorflow简介 TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理.Tensor(张 ...
- mac10.9下eclipse的storm开发环境搭建
--------------------------------------- 博文作者:迦壹 博客地址:http://idoall.org/home.php?mod=space&uid=1& ...
- Qt在Windows下的三种编程环境搭建
尊重作者,支持原创,如需转载,请附上原地址:http://blog.csdn.net/libaineu2004/article/details/17363165 从QT官网可以得知其支持的平台.编译器 ...
- Qt4.8在Windows下的三种编程环境搭建
Qt4.8在Windows下的三种编程环境搭建 Qt的版本是按照不同的图形系统来划分的,目前分为四个版本:Win32版,适用于Windows平台:X11版,适合于使用了X系统的各种Linux和Unix ...
- 《Node.js入门》CentOS 6.5下Node.js Web开发环境搭建笔记
近期想尝试一下英特尔的基于WebRTC协同通信开发套件,所以须要在本地搭建Node.js Web的开发測试环境. 这里讲的是CentOS 下的搭建方法.使用Windows的小伙伴请參考: <No ...
- Qt在Windows下的三种编程环境搭建(图文并茂,非常清楚)good
尊重作者,支持原创,如需转载,请附上原地址:http://blog.csdn.net/libaineu2004/article/details/17363165 从QT官网可以得知其支持的平台.编译器 ...
- 【Qt开发】Qt在Windows下的三种编程环境搭建
从QT官网可以得知其支持的平台.编译器和调试器的信息如图所示: http://qt-project.org/doc/qtcreator-3.0/creator-debugger-engines.htm ...
随机推荐
- Nuxt3环境变量配置
Nuxt3 正式发布还不到半年,在投入生产环境使用后,遇到了不少问题,很难找到合适的解决方案,其中环境变量配置就是其中一个,之前一直未能解决,最近要上持续集成,无法绕过这个问题,所以花了点时间研究了一 ...
- [C++核心编程] 4.6、继承
文章目录 4.6 继承 4.6.1 继承的基本语法 4.6.2 继承方式 4.6.3 继承中的对象模型 4.6.4 继承中构造和析构顺序 4.6.5 继承同名成员处理方式 4.6.6 继承同名静态成员 ...
- 极速进化,光速转录,C++版本人工智能实时语音转文字(字幕/语音识别)Whisper.cpp实践
业界良心OpenAI开源的Whisper模型是开源语音转文字领域的执牛耳者,白璧微瑕之处在于无法通过苹果M芯片优化转录效率,Whisper.cpp 则是 Whisper 模型的 C/C++ 移植版本, ...
- Pillow模块——生成随机验证码
urls.py path('get_code/',views.get_code), views.py中 from PIL import Image,ImageFont,ImageDraw " ...
- 2022-08-08:给定一个数组arr,表示从早到晚,依次会出现的导弹的高度。 大炮打导弹的时候,如果一旦大炮定了某个高度去打,那么这个大炮每次打的高度都必须下降一点。 1) 如果只有一个大炮,返回
2022-08-08:给定一个数组arr,表示从早到晚,依次会出现的导弹的高度. 大炮打导弹的时候,如果一旦大炮定了某个高度去打,那么这个大炮每次打的高度都必须下降一点. (1) 如果只有一个大炮,返 ...
- 2021-06-21:贩卖机只支持硬币支付,且收退都只支持10 ,50,100三种面额。一次购买只能出一瓶可乐,且投钱和找零都遵循优先使用大钱的原则,需要购买的可乐数量是m, 其中手头拥有的10、50
2021-06-21:贩卖机只支持硬币支付,且收退都只支持10 ,50,100三种面额.一次购买只能出一瓶可乐,且投钱和找零都遵循优先使用大钱的原则,需要购买的可乐数量是m, 其中手头拥有的10.50 ...
- 2021-10-10:杨辉三角 II。给定一个非负索引 rowIndex,返回「杨辉三角」的第 rowIndex 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。力扣119。
2021-10-10:杨辉三角 II.给定一个非负索引 rowIndex,返回「杨辉三角」的第 rowIndex 行.在「杨辉三角」中,每个数是它左上方和右上方的数的和.力扣119. 福大大 答案20 ...
- MySql的数据存储之B+树(浅谈)
一.MySql的实际存储位置 B+树是MySql数据结构的主流存储方式,包括InnoDB和MYISAM引擎,它们的默认存储结构都是B+树 了解B+树前,我们先要知道MySql 的实际存储位置在哪? 有 ...
- es笔记一之es安装与介绍
本文首发于公众号:Hunter后端 原文链接:es笔记一之es安装与介绍 首先介绍一下 es,全名为 Elasticsearch,它定义上不是一种数据库,是一种搜索引擎. 我们可以把海量数据都放到 e ...
- Error: Cannot find module ‘webpack-cli/bin/config-yargs‘
今配置一个webpack-dev-server进行服务端渲染时老是不正确 npm run dev 就崩了 起初的配置为 "devDependencies": { "web ...