TensorFlow_02

MNIST与验证码识别
本文介绍了使用TensorFlow进行MNIST数据集的手写数字识别,并通过Softmax回归模型实现验证码识别。此外,还提供了非线性回归的实例代码,展示了如何构建神经网络并使用梯度下降法进行训练。
部署运行你感兴趣的模型镜像

图片验证码识别

MNIST数据集的官网及资源
Softmax函数
  • 我们知道MNIST的结果是0-9,我们的模型可能推测一张图片的数字9的概率是80%,是数字9的概率是10%,然后其他数字概率更小,总体概率加起来等于1.这是一个使用Softmax回归模型的经典案例。softamx模型可以用来给不同的对象分配概率。
    image
非线性回归
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt

# 使用numpy生成200个随机点(转换成二维U形)
x_data = np.linspace(-0.5, 0.5, 500)[:, np.newaxis]
noise = np.random.normal(0, 0.02, x_data.shape)
y_data = np.square(x_data) + noise

# 定义两个placeholder
x = tf.placeholder(tf.float32, [None, 1])
y = tf.placeholder(tf.float32, [None, 1])

# 定义神经网络中间层
Weights_L1 = tf.Variable(tf.random_normal([1, 10]))
biases_L1 = tf.Variable(tf.zeros([1, 10]))
Wx_plus_b_L1 = tf.matmul(x, Weights_L1) + biases_L1
# 激活函数
L1 = tf.nn.tanh(Wx_plus_b_L1)

# 定义神经网络输出层
Weights_L2 = tf.Variable(tf.random_normal([10, 1]))
biases_L2 = tf.Variable(tf.zeros([1, 1]))
Wx_plus_b_L2 = tf.matmul(L1, Weights_L2) + biases_L2
# 激活函数
prediction = tf.nn.tanh(Wx_plus_b_L2)

# 二次代价函数
loss = tf.reduce_mean(tf.square(y - prediction))
# 使用梯度下降法训练
train_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss)


with tf.Session() as sess:
    # 变量初始化
    sess.run(tf.global_variables_initializer())
    for _ in range(2000):

        sess.run(train_step, feed_dict={x: x_data, y: y_data})

    # 获得预测值
    prediction_value = sess.run(prediction, feed_dict={x: x_data})
    # 画图
    plt.figure()
    plt.scatter(x_data, y_data)
    plt.plot(x_data, prediction_value, 'r-', lw = 5)
    plt.show()

"""
API记录
tf.nn.tanh(Wx_plus_b_L2)  # 双曲激活函数
"""
验证码数据训练
  • 数据 项目目录下新建MNIST_data文件,把MNIST数据集的官网的资源放入其中
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data


#  载入数据集
mnist = input_data.read_data_sets("MNIST_data", one_hot=True)

# 每个批次大小
batch_size = 100  # 可调试
# 计算一共有多少个批次
n_batch = mnist.train.num_examples // batch_size

# 定义两个placeholder
x = tf.placeholder(tf.float32, [None, 784])
y = tf.placeholder(tf.float32, [None, 10])

# 创建一个简单的神经网络(可优化增加隐藏网络)
W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))
# 激活函数 计算概论
prediction = tf.nn.softmax(tf.matmul(x, W) + b)

# 二次代价函数
loss = tf.reduce_mean(tf.square(y - prediction))
# 使用梯度下降法(可优化)
train_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss)

# 初始化变量
init = tf.global_variables_initializer()

# 结果存放在一个布尔类型列表中
# arg_max返回一维张量中最大的值所在的位置
correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(prediction, 1))
# 求准确率
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))

with tf.Session() as sess:
    sess.run(init)
    for epoch in range(21):  # 所有图片训练次数(可优化更多次数)
        for batch in range(n_batch):  # 所有图片训练一次
            batch_xs, batch_ys = mnist.train.next_batch(batch_size)
            sess.run(train_step, feed_dict={x: batch_xs, y: batch_ys})

        acc = sess.run(accuracy, feed_dict={x: mnist.test.images, y: mnist.test.labels})
        print("Iter " + str(epoch) + ",Testing Accuracy " + str(acc))


"""
API记录
tf.nn.softmax(tf.matmul(x, W) + b)  # 激励函数(归一化指数函数)
tf.argmax(y, 1)  # 获取标签内最大值的位置
tf.equal(int, int)  # 比较大小
tf.cast(correct_prediction, tf.float32)  # 类型转换(布尔值转32位浮点)
mnist.train.next_batch(batch_size)  # 每运行一次调到下一个size
"""

您可能感兴趣的与本文相关的镜像

TensorFlow-v2.15

TensorFlow-v2.15

TensorFlow

TensorFlow 是由Google Brain 团队开发的开源机器学习框架,广泛应用于深度学习研究和生产环境。 它提供了一个灵活的平台,用于构建和训练各种机器学习模型

<think>我们正在处理关于tensorflow_gpu-2.10.0的请求。用户希望获取相关信息,包括下载、安装方法、使用指南等。 根据提供的引用,我们可以总结以下几点: 1. 安装tensorflow_gpu版本需要确保CUDA和cuDNN的兼容性(引用[1])。 2. 可以通过运行代码来检测GPU是否可用(引用[1]、[2]、[4])。 3. 使用Anaconda安装可能是一种简便的方法(引用[3]、[5])。 4. 验证安装成功的常用命令包括检查版本和GPU可用性(引用[2]、[4])。 注意:引用中提到的版本有2.10.0(引用1)、2.0.0(引用2)、2.3.0(引用3、4)和1.14.0(引用5),但用户明确要求2.10.0。 由于TensorFlow官方文档是权威来源,我们应该参考其安装指南。根据TensorFlow官网,TensorFlow 2.10.0是最后一个支持原生Windows GPU的版本(此后Windows GPU支持通过TensorFlow-CPU和单独安装的TensorFlow-Plugin)。因此,安装2.10.0的GPU版本需要特别注意。 安装步骤(基于官方推荐): 1. 确保系统满足要求:Windows 10或11,64位。 2. 安装CUDA工具包:TensorFlow 2.10.0需要CUDA 11.2(官方文档指定)。 3. 安装cuDNN:与CUDA 11.2兼容的版本(例如cuDNN 8.1.0)。 4. 安装TensorFlow 2.10.0 GPU版本。 但是,请注意,官网的安装指南可能会更新,因此最好参考官方文档。 由于用户引用中提到了Anaconda,我们也可以提供使用conda安装的方法。但注意,conda可能会自动处理CUDA和cuDNN的依赖,但有时版本可能不完全匹配。 因此,我们提供两种方法:pip安装和conda安装。 步骤概览: 方法1:使用pip安装(推荐) - 步骤1:安装CUDA 11.2和cuDNN 8.1.0(需从NVIDIA官网下载并配置环境变量) - 步骤2:使用pip安装tensorflow-gpu==2.10.0 方法2:使用conda安装(可能更简单,但需验证版本兼容性) - 步骤1:创建conda环境 - 步骤2:使用conda安装tensorflow-gpu=2.10.0(注意:conda可能会自动安装对应的CUDA和cuDNN) 验证安装: - 运行Python,输入以下代码: import tensorflow as tf print(tf.__version__) # 应输出'2.10.0' print(tf.config.list_physical_devices('GPU')) # 应显示GPU设备信息 注意:在引用[1]中提到了使用`device_lib.list_local_devices()`,这也是可行的。 由于用户要求生成相关问题,我们将在回答后生成相关问题。 因此,回答的结构: 1. 介绍TensorFlow 2.10.0 GPU版本安装的关键点(版本兼容性)。 2. 提供详细的安装步骤(两种方法)。 3. 提供验证安装的代码示例。 4. 引用来源(根据提供的参考引用,以及TensorFlow官方文档作为补充)。 5. 生成相关问题。 注意:由于引用中没有直接给出TensorFlow 2.10.0的完整安装指南,我们结合官方知识和引用中的通用方法进行回答。 </think>### TensorFlow GPU 2.10.0 安装与使用指南 #### 1. **版本兼容性要点** TensorFlow 2.10.0 GPU 版本需严格匹配以下组件: - **CUDA**: 11.2(必需)[^1][^3] - **cuDNN**: 8.1.0(必需)[^1][^3] - **Python**: 3.7-3.10(推荐3.8)[^1] > 注:版本不匹配会导致安装失败或无法调用GPU #### 2. **安装步骤** **方法1:原生安装(推荐)** ```bash # 1. 安装CUDA 11.2和cuDNN 8.1.0(需手动配置环境变量) # 2. 创建Python虚拟环境 python -m venv tf_gpu_env source tf_gpu_env/bin/activate # Linux/Mac tf_gpu_env\Scripts\activate # Windows # 3. 安装TensorFlow GPU pip install tensorflow-gpu==2.10.0 ``` **方法2:Anaconda安装** ```bash # 1. 创建conda环境 conda create -n tf_gpu python=3.8 conda activate tf_gpu # 2. 安装TensorFlow(自动处理CUDA依赖) conda install -c conda-forge tensorflow-gpu=2.10.0 ``` #### 3. **安装验证代码** ```python import tensorflow as tf # 验证版本 print(tf.__version__) # 应输出 '2.10.0' # 验证GPU支持 print("GPU可用:", tf.config.list_physical_devices('GPU')) # 或使用传统检测(兼容旧版) print("GPU启用:", tf.test.is_gpu_available()) # 预期输出 True[^1][^2][^4] ``` #### 4. **关键注意事项** 1. **驱动要求**:需提前安装[NVIDIA驱动≥450.80.02](https://www.nvidia.com/drivers) 2. **环境冲突**:避免同时安装`tensorflow`和`tensorflow-gpu` 3. **安装失败处理**:网络问题可重试命令(参考[^5]) 4. **Windows特殊说明**:2.10.0是最后一个原生支持Windows GPU的版本[^1] #### 5. **官方资源** - [TensorFlow 2.10.0 Release Notes](https://github.com/tensorflow/tensorflow/releases/tag/v2.10.0) - [CUDA Toolkit 11.2下载](https://developer.nvidia.com/cuda-11.2.0-download-archive)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值