TensorFlow_01

本教程介绍了TensorFlow的基本安装与使用方法,包括环境搭建、核心概念解析及简单的线性回归实例。详细讲述了如何创建和运行计算图,使用变量、feed和fetch进行数据处理,并通过实例演示了如何利用TensorFlow进行线性模型训练。
部署运行你感兴趣的模型镜像

TensorFlow安装

  • pip install TensorFlow (CPU版本)
  • pip install TensorFlow-gpu (GUP版本,需要一些依赖)
  • pip uninstall TensorFlow (卸载,需要更新的时候只要先卸载再安装就可以)

TensorBoard使用

TensorBoard是TensorFlow的可视化训练工具
在工具内可以操控训练模型
+ python安装路径执行:tensorboard –logdir=path(生成的Tensorboard文件所在路径)
+ 然后会出现链接的网址如:http://10.31.70.249:6006
+ 在谷歌浏览器里输入网址即可打。只输入10.31.70.36:600

TensorFlow基本概念

  • 使用图(graphs)来表示计算任务
  • 在被称之为会话(Session)的上下文(context)中执行图
  • 使用tensor表示数据
  • 通过变量(Variable)维护状态
  • 使用feed和fetch可以为任意的操作赋值或者从中获取数据

  TensorFlow是一个编程系统,使用图(graphs)来表示计算任务,图(graphs)中的节点称之为op(operation),一个op获得0个或多个Tensor,执行计算,产生0个或多个Tensor。Tensor看作是一个n维的数组或列表。图必须在会话(Seeion)里被启动。

创建图,启动图-01

import tensorflow as tf

# 创建一个常量op
m1 = tf.constant([[3, 3]])
# 创建一个常量op
m2 = tf.constant([[2], [3]])
# 创建一个矩阵乘法op,吧m1、m2传入
product = tf.matmul(m1, m2)
# 尝试输出,得到一下结果
print(product)  # Tensor("MatMul:0", shape=(1, 1), dtype=int32)

# 定义一个会话Session,启动默认图
# 普通用法
sess = tf.Session()
result = sess.run(product)
print(result)
sess.close()

# 定义一个会话Session,启动默认图
# 推荐用法 
with tf.Session() as sess:
    # 调用Session的run方法来执行矩阵乘法op
    # run(product)触发了图中的三个op
    result = sess.run(product)
    print(result)  # [[15]]

"""
API记录
tf.constant([[2], [3]])  # 创建一个常量OP
sess = tf.Session()  # 初始化一个会话
sess.run(product)  # 运行常量计算
sess.close()  # 关闭会话
tf.matmul(m1, m2)  # 创建一个矩阵乘法op,吧m1、m2传入
"""

变量-02

import tensorflow as tf

x = tf.Variable([1, 2])
a = tf.constant([3, 3])
# 增加一个减法OP
sub = tf.subtract(x, a)
# 增加一个加法OP
add = tf.add(x, sub)
# 在变量使用前,需要初始化(计算),该方法是全局初始化
init = tf.global_variables_initializer()
# 视图输出
with tf.Session() as sess:
    sess.run(init)
    print(sess.run(sub))  # [-2 -1]
    print(sess.run(add))  # [-1  1]

# name指定赋值到哪个参数(python基础)
# 创建一个变量初始化为0
state = tf.Variable(0, name='counter')
# 创建一个OP,作用是使state+1
new_value = tf.add(state, 1)
# 赋值OP(tensorflow中变量不能直接=,需要掉用赋值函数)
# 第二个参数 赋值给第一个参数
update = tf.assign(state, new_value)
# 变量初始化(全局)
init = tf.global_variables_initializer()

with tf.Session() as sess:
    sess.run(init)
    print(sess.run(state))
    for _ in range(5):
        sess.run(update)
        print(sess.run(state))  # 0 1 2 3 4 5

"""
API记录
tf.Variable([1, 2])  # 定义一个变量
tf.constant([3, 3])  # 定义一个常量
tf.subtract(x, a)   # 一个减法OP
tf.add(x, sub)  # 一个加法OP
tf.global_variables_initializer()  # 变量初始化(全局),变量需要初始化,常量不用
tf.assign(state, new_value)  # 赋值OP(tensorflow中变量不能直接=,需要掉用赋值函数) 第二个参数 赋值给第一个参数
"""

Fetch and Feed -03

import tensorflow as tf

# Fetch 多个参数会话
input1 = tf.constant(3.0)
input2 = tf.constant(2.0)
input3 = tf.constant(5.0)

add = tf.add(input2, input3)
mu1 = tf.multiply(input1, add)

with tf.Session() as sess:
    result = sess.run([mu1, add])
    print(result)  # [21.0, 7.0]

# Feed  动态参数会话
# 创建占位符(32位)
input1 = tf.placeholder(tf.float32)
input2 = tf.placeholder(tf.float32)

output = tf.multiply(input1, input2)

with tf.Session() as sess:
    # feed的数据以字典的形式传入
    print(sess.run(output, feed_dict={input1: [7.0], input2: [2.0]}))  # [14.]


"""
API记录
result = sess.run([mu1, add])  # Fetch传入形式
tf.placeholder(tf.float32)  # 创建占位符(32位)
sess.run(output, feed_dict={input1: [7.0], input2: [2.0]})  # Feed的数据以字典的形式传入
"""

TensorFlow简单示范 -04

import tensorflow as tf
import numpy as np

# 使用numpy生成100个随机点
x_data = np.random.rand(100)
# y_data = 真实值
y_data = x_data * 0.1 + 0.2

# 构造一个线性模型
b = tf.Variable(0.)
k = tf.Variable(0.)
# y = 预测值(上下公式保持一致)
y = k * x_data + b

# 二次代价函数(样本值减去预测值->求平方->平均值)
# 影响loss值的变量是:k,b
loss = tf.reduce_mean(tf.square(y_data - y))
# 定义一个梯度下降法来进行训练的优化器(学习率,值越大越不精确,但不能<=0)
optimizer = tf.train.GradientDescentOptimizer(0.1)
# 最小化代价函数
train = optimizer.minimize(loss)

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

with tf.Session() as sess:
    sess.run(init)
    for step in range(200):
        # 执行顺序:梯度下降法》最小化代价函数》二次代价函数
        sess.run(train)
        if step % 20 == 0:  # 间隔20打印一次
            print(step, sess.run([k, b]))
            # 0[0.027093565, 0.05022619]
            # 20[0.104833506, 0.19686383]
            # 40[0.104043014, 0.19781029]
            # 60[0.103237, 0.19824797]
            # 80[0.10259131, 0.19859748]
            # 100[0.102074385, 0.19887725]
            # 120[0.10166061, 0.19910121]
            # 140[0.10132934, 0.19928049]
            # 160[0.101064175, 0.19942401]
            # 180[0.1008519, 0.19953892]#
            # 预测值慢慢的接近真实值

"""
API记录
tf.square(y_data - y)  # 求平方  
tf.reduce_mean()  # 求平均值
loss = tf.reduce_mean(tf.square(y_data - y))  # 二次代价函数
optimizer = tf.train.GradientDescentOptimizer(0.3)  # 梯度下降法
train = optimizer.minimize(loss)  # 最小化代价函数
"""

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

TensorFlow-v2.15

TensorFlow-v2.15

TensorFlow

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

PS D:\A-PythonCode\UserManagementSystem\app01> python picmodels.py Traceback (most recent call last): File "D:\Python\Lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 73, in <module> from tensorflow.python._pywrap_tensorflow_internal import * ImportError: DLL load failed while importing _pywrap_tensorflow_internal: 动态链接库(DLL)初始化例程失败。 During handling of the above exception, another exception occurred: Traceback (most recent call last): File "D:\A-PythonCode\UserManagementSystem\app01\picmodels.py", line 1, in <module> import tensorflow as tf File "D:\Python\Lib\site-packages\tensorflow\__init__.py", line 40, in <module> from tensorflow.python import pywrap_tensorflow as _pywrap_tensorflow # pylint: disable=unused-import ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\Python\Lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 88, in <module> raise ImportError( ImportError: Traceback (most recent call last): File "D:\Python\Lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 73, in <module> from tensorflow.python._pywrap_tensorflow_internal import * ImportError: DLL load failed while importing _pywrap_tensorflow_internal: 动态链接库(DLL)初始化例程失败。 Failed to load the native TensorFlow runtime. See https://www.tensorflow.org/install/errors for some common causes and solutions. If you need help, create an issue at https://github.com/tensorflow/tensorflow/issues and include the entire stack trace above this error message.
最新发布
10-21
你遇到的错误: ``` ImportError: DLL load failed while importing _pywrap_tensorflow_internal: 动态链接库(DLL)初始化例程失败。 ``` 这是在 **Windows 系统上安装 TensorFlow 后无法导入时最常见的问题之一**,通常不是代码问题,而是 **环境或系统依赖缺失** 导致的。 --- ### ✅ 错误原因分析 这个错误的根本原因是:TensorFlow 的本地 C++ 运行时(即 `_pywrap_tensorflow_internal`)需要一些底层动态链接库(DLL),但你的系统缺少这些组件。常见原因如下: | 原因 | 说明 | |------|------| | ❌ 缺少 Microsoft Visual C++ Redistributable | TensorFlow 依赖 VC++ 2019/2022 运行库 | | ❌ Python 版本不兼容 | 如使用了非官方支持的 Python 3.12 或某些发行版(如 Miniconda 未配置好) | | ❌ CPU 不支持 AVX 指令集 | 老旧 CPU(如 Intel 第三代以前)不支持 AVX,而现代 TF 需要它 | | ❌ 安装了错误架构的包 | 32位 Python 安装了64位包(罕见) | | ❌ 多个 TensorFlow 冲突安装 | pip、conda 混用导致冲突 | --- ### ✅ 解决方案(按优先级排序) #### ✅ 方案一:安装 Microsoft Visual C++ 可再发行组件(必做) > 下载地址: 👉 https://learn.microsoft.com/en-US/cpp/windows/latest-supported-vc-redist?view=msvc-180 选择并安装: - [x] **Microsoft C++ Redistributable for Visual Studio 2022 (x64)** → 文件名类似:`vc_redist.x64.exe` ✅ 安装完成后重启命令行,再运行 `python picmodels.py` 测试。 --- #### ✅ 方案二:确认你的 CPU 支持 AVX 指令集 TensorFlow 从 1.6 开始要求 CPU 支持 **AVX**(Advanced Vector Extensions)。如果你的 CPU 是: - ⛔ 英特尔 i3/i5/i7 第二代或更早 - ⛔ AMD FX 系列或更老型号 - ⛔ 某些虚拟机(如默认 VirtualBox) → 就可能 **不支持 AVX**,导致 DLL 加载失败。 🔧 如何检测? 使用工具:[CPU-Z](https://www.cpuid.com/softwares/cpu-z.html) 查看是否支持 `AVX` 指令。 🟢 如果不支持 AVX,解决方案有: 1. 使用 **Google Colab 免费 GPU 训练模型** 2. 安装 **支持老旧 CPU 的 TensorFlow 构建版本**: ```bash pip uninstall tensorflow -y pip install --upgrade https://github.com/fo40225/tensorflow-windows-wheel/releases/download/tf2.12.0_cuda11_cudnn86_avx_noavx/TensorFlow_cpu_no_avx_py310_2.12.0.whl ``` > 此为社区构建的“no-AVX”版本,适用于老 CPU。 --- #### ✅ 方案三:检查 Python 版本与 TensorFlow 兼容性 | Python | TensorFlow 支持情况 | |--------|---------------------| | 3.9 ~ 3.11 | ✅ 官方完全支持 | | 3.12+ | ❌ 目前(2025 年初)仍部分不支持,需等待官方 wheel | 📌 推荐使用 **Python 3.10 或 3.11**。 查看当前 Python 版本: ```powershell python --version ``` 如果版本过高(如 3.12),建议卸载并安装 [Python 3.11](https://www.python.org/downloads/release/python-31110/)。 --- #### ✅ 方案四:使用 Anaconda 创建干净虚拟环境(推荐做法) 避免依赖混乱的最佳方式是使用 Conda: ```bash # 创建新环境 conda create -n tf-env python=3.10 conda activate tf-env # 安装 TensorFlow pip install tensorflow==2.16.1 ``` 然后运行脚本: ```bash python picmodels.py ``` --- #### ✅ 方案五:强制重装 TensorFlow(清理残留) 有时旧版本损坏会导致此问题: ```powershell pip uninstall tensorflow tensorflow-cpu tensorflow-gpu -y pip cache purge pip install tensorflow --no-cache-dir ``` --- ### ✅ 快速验证是否修复成功 创建一个最小测试文件 `test_tf.py`: ```python import tensorflow as tf print("✅ TensorFlow 导入成功!") print("版本:", tf.__version__) print("GPU 可用:", len(tf.config.list_physical_devices('GPU')) > 0) ``` 运行: ```powershell python test_tf.py ``` --- ### 🔁 总结处理流程(推荐顺序) ```powershell 1. 安装 VC++ 2022 x64 可再发行组件(最重要!) 2. 检查 CPU 是否支持 AVX(否则 no-AVX 版本) 3. 使用 Python 3.10 或 3.11 4. 在干净环境中重新安装 TensorFlow └─ 推荐使用 conda 或 venv 隔离环境 5. 使用镜像源加速安装 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值