@。Tensorflow,纯新手入门笔记->矩阵、神经网络

第六节:关于矩阵的相关问题

import tensorflow as tf
import os

os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

# 开启一个交互式会话
sess = tf.InteractiveSession()

# 定义一个5*5的矩阵
I_matrix = tf.eye(5)
print(I_matrix.eval())

# 定义一个5*5的矩阵变量
X = tf.Variable(tf.eye(5)) # 这矩阵!是!单位矩阵?
X.initializer.run()  # 初始化变量
print(X.eval())

# 矩阵相乘
A = tf.Variable(tf.random_normal([5, 10]))
A.initializer.run()

product = tf.matmul(X, A)
print(product.eval())

# 创建一个5*10 ,0-2范围内的伽马分布随机数组变量
b = tf.Variable(tf.random_uniform([5, 10], 0, 2, dtype=tf.int32))
b.initializer.run()
print(b.eval())

# 将b转化成一个浮点数类型
b_new = tf.cast(b, dtype=tf.float32)
print(b_new.eval())

# 矩阵相加
t_sum = tf.add(product, b_new)
t_sub = product - b_new
print("A+X \n", t_sum.eval())
print("A*X - b_new \n", t_sub.eval())

一些其他有用的矩阵操作,如按元素相乘、乘以一个标量、按元素相除、按元素余数相除等,可以执行如下语句:

# 创建两个随机矩阵
a = tf.Variable(tf.range(5))
b = tf.Variable(tf.range(5, 10))
A = a * b  # 相乘
B = tf.scalar_mul(2, A)  # 2倍
C = tf.div(a, b)  # 相除
D = tf.mod(a, b)  # 取余
init_op = tf.global_variables_initializer()
with tf.Session() as sess:
    sess.run(init_op)
    writer = tf.summary.FileWriter('graphs', sess.graph)
    a, b, A_R, B_R, C_R, D_R = sess.run([a, b, A, B, C, D])
    print("a\n", a, "\nb\n", b, "\na*b\n", A_R, "\n2*a*b\n", B_R, "\na/b\n", C_R, "\na%b\n", D_R)
writer.close()

结果:

a
 [0 1 2 3 4] 
b
 [5 6 7 8 9] 
a*b
 [ 0  6 14 24 36] 
2*a*b
 [ 0 12 28 48 72] 
a/b
 [0 0 0 0 0] 
a%b
 [0 1 2 3 4]

解读分析
所有加法、减、除、乘(按元素相乘)、取余等矩阵的算术运算都要求两个张量矩阵是相同的数据类型,否则就会产生错误。可以使用 tf.cast() 将张量从一种数据类型转换为另一种数据类型。
拓展阅读
如果在整数张量之间进行除法,最好使用 tf.truediv(a,b),因为它首先将整数张量转换为浮点类,然后再执行按位相除。

第七节:
Tensorflow与深度学习关系
神经网络 DNN是一个生物启发式的计算和学习模型。像生物神经元一样,它们从其他细胞(神经元或环境)获得加权输入。这个加权输入经过一个处理单元并产生可以是二进制或连续(概率,预测)的输出。
人工神经网络(ANN)是这些神经元的网络,可以随机分布或排列成一个分层结构。这些神经元通过与它们相关的一组权重和偏置来学习。

TensorFlow 成为最受欢迎的深度学习库,原因如下:
1.TensorFlow 是一个强大的库,用于执行大规模的数值计算,如矩阵乘法或自动微分。这两个计算是实现和训练 DNN 所必需的。
2.TensorFlow 在后端使用 C/C++,这使得计算速度更快。
3.TensorFlow 有一个高级机器学习API(tf.contrib.learn),可以更容易地配置、训练和评估大量的机器学习模型。
4.可以在 TensorFlow 上使用高级深度学习库 Keras。Keras 非常便于用户使用,并且可以轻松快速地进行原型设计。它支持各种 DNN,如RNN、CNN,甚至是两者的组合。

任何深度学习网络都由四个重要部分组成:数据集、定义模型(网络结构)、训练/学习和预测/评估。可以在 TensorFlow 中实现所有这些。

Tensorflow 读取数据的三种方式
1.通过feed_dict传递数据;
2.从文件中读取数据;
3.使用预加载的数据;

http://c.biancheng.net/view/1899.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值