educoder TensorFlow技术与平台应用

这篇博客介绍了TensorFlow的基础概念,包括数据流图、张量以及tf.constant、tf.Variable和tf.placeholder的区别。通过实例展示了如何创建计算图并执行会话。还提到了常见的错误——矩阵维度不匹配问题,并给出了示例代码。最后提供了两个简单的TensorFlow实战例子,分别是创建常量Tensor并打印其值,以及进行矩阵乘法操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、什么是TensorFlow?

TensorFlow是一个采用数据流图(Data Flow Graphs),用于高性能数值计算的开源软件库。
Tensor(张量):即多维数组,是TensorFlow中数据表现的形式。Flow:基于数据流图(Data Flow Graphs)的计算。
Data Flow Graph用结点和线的有向图来描述数学计算。节点通常代表数学运算,边表示节点之间的某种联系,它负责传输多维数据(Tensors)。
计算图只是定义了这个计算

w = tf.constant(2.)
x = tf.constant(3.)
b = tf.constant(5.)
y = tf.add(tf.multiply(w,x),b,name='y')

会话 让定义后的计算图运行起来

**第一种书写:**
    # 创建一个Session
    sess = tf.Session()
    # 让c这个Tensor动起来,并打印c这个Tensor动起来之后的值
    print(sess.run(c))
    # 关闭Session
    sess.close()
    
 **第二种书写**
    with tf.Session() as sess:
    print(sess.run(y)

二、 相关知识点

1、tf.constant、tf.Variable 和 tf.placeholder的区别

(1)常量节点tf.constant:它的value值可以为一个数值也可以为一个列表
(2)变量节点tf.Variable:它可以用来存储图执行过程中需要更新的量,在神经网络中用来储存权重值
(3)tf.Variable 和 tf.placeholder的区别:两者都可以盛放变量,但在启动会话前,tf.Variable必须先被赋值和初始化,而tf.placeholder是需要在启动会话的时候传入值的;从直观上讲,tf.placeholder更加接近函数的形参。

import tensorflow as tf
w1 = tf.Variable(tf.truncated_normal([2,3],seed=1))
w2 = tf.Variable(tf.truncated_normal([3,1],seed=1))
 
x = tf.placeholder(dtype=tf.float32,shape=[1,2]) #在placeholder中,必须先指定dtype的数据类型。
 
a = tf.matmul(x,w1)
y = tf.matmul(a,w2)
 
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    print (sess.run(y,feed_dict={x:[[1,1]]}))  #由于x的结构为1*2的矩阵,所以应当传入[[1,1]];而不能传入[1,1]
    print (w1) # 这里可以看出,w1的数据类型默认为 tf.float32,因此x的数据类型也应当为float32,若两者数据类型不同,则会有 TypeError报错。

三、代码报错

(1)ValueError: Dimensions must be equal, but are 784 and 10 for ‘add’ (op: ‘Add’) with input shapes: [784,784], [10].

出现这种错误一般就是输入,输出矩阵,和 tf.matmul(weight, x) + bias 计算中矩阵不能相乘所造成的
matmul(weight, x)函数表示行数为weight,列数为x的矩阵
说白了就是矩阵相乘维度不一致导致,

四、educoderTensorFlow技术与平台应用答案

第1关:Hello,Tensorflow

#********* Begin *********#
import tensorflow as tf
#使用tf.constant()函数在图中创建一个常量Tensor
c=tf.constant("Hello World")
# 创建一个Session
sess=tf.Session()
# 让c这个Tensor动起来,并打印c这个Tensor动起来之后的值
print(sess.run(c))
# 关闭Session
#sess.close()

#********* End *********#

第2关:计算图与会话

# -*- coding: utf-8 -*-
import tensorflow as tf
import numpy as np

def matmul(a,b):
    '''
    a(list):矩阵a
    b(list):矩阵b
    result(ndarray):矩阵相乘结果
    '''
    #********* Begin *********#
    #常量节点tf.constant可为列表和常数
    #常量节点tf.ones可为矩阵
    #变量节点tf.Variable:它可以用来存储图执行过程中需要更新的量;在神经网络中用来储存权重值,
    v1=tf.constant(a)
    v2=tf.constant(b)

    ndarray=tf.matmul(v1,v2)

    with tf.Session() as sess:
        result=sess.run(ndarray)
   
    #********* End *********#
    return result
    

### Educoder 平台上的图像数据挖掘教程 Educoder 是一个在线实践教学平台,提供了丰富的编程实验课程和项目实战机会。对于图像数据挖掘领域,该平台上确实存在一系列有助于学习者掌握相技能的教程和资源。 #### Python 图像处理基础 Python 作为一门强大的脚本语言,在图像处理方面有着广泛的应用。通过 NumPy 和 PIL (Pillow) 库可以轻松实现基本操作,例如加载图片、调整大小以及应用滤镜等功能[^1]: ```python from PIL import Image import numpy as np img = Image.open('example.jpg') array = np.array(img) # 显示原始数组形状 print(array.shape) ``` #### 使用 OpenCV 进行计算机视觉任务 OpenCV 是一个开源库,专为实时计算视觉而设计。它不仅支持多种编程语言接口,还拥有庞大的社区支持。在 Educoder 上有于如何利用此工具集来完成特征检测、对象识别等高级功能的教学材料: ```python import cv2 image = cv2.imread('test_image.png',0) edges = cv2.Canny(image,100,200) cv2.imshow("Edges", edges) cv2.waitKey(0) cv2.destroyAllWindows() ``` #### TensorFlow/Keras 实现深度学习模型构建 随着人工智能技术的发展,基于神经网络的方法逐渐成为主流解决方案之一。TensorFlow 及其高层 API Keras 提供了一个简单易用但又不失灵活性的方式来进行机器学习建模工作。这些内容同样可以在 Educoder 中找到详细的指导文档.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值