【Tensorflow】小白入门实战基础篇(上)

代码包含内容:创建张量、使用占位符和变量、矩阵计算

import tensorflow as tf
import numpy as np

# 创建张量
zeros = tf.zeros([3, 3])
ones = np.ones([3, 3])

# 创建变量
ones_var = tf.Variable(ones)
# 变量初始化
sess = tf.Session() # 创建图会话
init_op = tf.global_variables_initializer()
# sess.run(ones_var.initializer)
sess.run(init_op)
print(sess.run(ones_var))

# 变量用作算法的参数
# 占位符是tensor对象表示输入输出数据的格式
x = tf.placeholder(tf.float32, shape=[2,2])
y = tf.identity(x) # 返回占位符传入的数据本身
print(x)
# 输出:Tensor("Placeholder:0", shape=(2, 2), dtype=float32)
print(y)
# 输出:Tensor("Identity:0", shape=(2, 2), dtype=float32)
x_vals = np.random.rand(2, 2)
print(x_vals)
# x_vals的输出:
# [[0.0516585  0.33338653]
#  [0.29599219 0.60122476]]
sess.run(y, feed_dict={x: x_vals})
print(sess.run(y, feed_dict={x: x_vals}))
# 输出:
# [[0.0516585  0.33338654]
# [0.2959922  0.6012248 ]]

# 如果是基于已经初始化的变量进行初始化,则必须按序进行初始化
first_var = tf.Variable(zeros)
sess.run(first_var.initializer)
second_var = tf.Variable(tf.zeros_like(first_var))
sess.run(second_var.initializer)

# 矩阵计算
# 创建矩阵
a = tf.diag([1,1,1])
print(sess.run(a)) # 对角矩阵
b = tf.truncated_normal([3,3])
print(sess.run(b)) # shape为(3,3)的正态分布随机数
c = tf.fill([2,3],5.0)
print(sess.run(c)) #全为5的2×3的矩阵
d = tf.random_uniform([3,2])
print(sess.run(d)) # 随机数
e = tf.convert_to_tensor(np.array([[1,2,3],[4,5,6],[7,8,9]])) #np转张量
print(sess.run(e))
# 矩阵加减乘法
print(sess.run(a+e))
print(sess.run(b-b))
print(sess.run(tf.matmul(c,d)))
# 矩阵转置、求行列式、求逆
print(sess.run(tf.transpose(c)))
print(sess.run(tf.matrix_determinant(b)))
print(sess.run(tf.matrix_inverse(b)))
# 特征值和特征向量:第一行为特征值 后面几行为向量
print(sess.run(tf.self_adjoint_eig(b)))
发布了15 篇原创文章 · 获赞 26 · 访问量 2252

猜你喜欢

转载自blog.csdn.net/xd963625627/article/details/104761911