命令03-Tensorflow命令

前言: 并非详细介绍各种命令,只是以表格的形式记录学习过程中试过的一些简单命令,记录下来将来自己查阅方便。

tensorflow简介

  TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow为张量从流图的一端流动到另一端计算过程。   TensorFlow是将复杂的数据结构传输至人工智能神经网中进行分析和处理过程的系统。

tensorflow编程概念

  TensorFlow名称来自于张量tensor,张量可以理解为任意维度的数组:常见的标量就是零阶张量,矢量是一阶张量,矩阵理解为二阶张量。依次往上还有高阶张量,就是更加复杂的数据结构了。
  借助TensorFlow指令,可以创建、销毁、操控张量。
  TensorFlow图是一种图数据结构。TensorFlow程序可以创建多个图,图的节点是指令,图的边是张量。张量在经过每个节点,执行一个命令。一个指令的输出张量通常会变成后续指令的输入张量。
  图中的张量由两种形式:常量和变量。在TensorFlow中,常量和张量可以理解为两种指令,常量是始终返回同一张量值的指令,变量是会返回分配给它的任何张量的指令。   TensorFlow编程可以理解为两步:1、将常量、变量和指令整合到一个图中,2、在一个会话中评估这些常量、变量和指令。

张量 Tensor

命令功能
import tensorflow as tfpython中导入tensorflow模块
mammal = tf.Variable("Elephant", tf.string)
mystr = tf.Variable(["Hello"], tf.string)
mymat = tf.Variable([[7],[11]], tf.int16)
创建tensor目标
zeros = tf.zeros(my_matrix.shape[1])制作与给定矩阵中的列数相同大小的零矢量
rank_three_tensor = tf.ones([3, 4, 5])
matrix = tf.reshape(rank_three_tensor, [6, 10])
重构tensor的形状
float_tensor = tf.cast(tf.constant([1, 2, 3]), dtype=tf.float32)转换张量的数据类型
with tf.Graph().as_default():
 scalar = tf.zeros([])
 vector = tf.zeros([3])
 matrix = tf.zeros([2, 3])
 with tf.Session() as sess:
  print ('scalar has shape', scalar.get_shape(), 'and value:\n', scalar.eval())
  print ('vector has shape', vector.get_shape(), 'and value:\n', vector.eval())
  print ('matrix has shape', matrix.get_shape(), 'and value:\n', matrix.eval())
定义0阶,1阶,2阶张量,并显示其形状和内容
with tf.Graph().as_default():
 primes = tf.constant([2,3,5,7,11,13], dtype=tf.int32)
 ones = tf.constant(1, dtype=tf.int32)
 just_beyond_primes = tf.add(primes, ones)
 with tf.Session() as sess:
  print (just_beyond_primes.eval())
利用广播,元素级运算中的较小数组会增大到与较大数组具有相同的形状。
利用广播实现大小不同的张量的加法
with tf.Graph().as_default():
 x = tf.constant([[5, 2, 4, 3], [5, 1, 6, -2], [-1, 3, -1, -2]], dtype=tf.int32)
 y = tf.constant([[2,2], [3, 5], [4, 5],[1, 6]], dtype=tf.int32)
 matrix_multiply_result = tf.matmul(x, y)
 with tf.Session() as sess:
  print(matrix_multiply_result.eval())
矩阵乘法:A*B,A的列数和B的行数相同才可以相乘
with tf.Graph().as_default():
 matrix = tf.constant([[1,2], [3,4],[5, 6],[7, 8],[9,10],[11,12],[13, 14],[15, 16]], dtype=tf.int32)
 reshaped_2x2x4_tensor = tf.reshape(matrix, [2,2,4])
 one_dimensional_vector = tf.reshape(matrix, [16])
 with tf.Session() as sess:
  print("original matrix (8x2):")
  print(matrix.eval())
  print("Reshaped tensor (2x2x4):")
  print(reshaped_2x2x4_tensor.eval())
  print("1-D vector:")
  print(one_dimensional_vector.eval())
改变张量的形状
g = tf.Graph()
with g.as_default():
 v = tf.Variable([3])
 w = tf.Variable(tf.random_normal([1], mean=1.0, stddev=0.35))
 with tf.Session() as sess:
  initialization = tf.global_variables_initializer()
  sess.run(initialization)
  print (v.eval())
  print (w.eval())
对于变量张量,要对张量运用初始化命令
with g.as_default():
 with tf.Session() as sess:
  sess.run(tf.global_variables_initializer())
  print (v.eval())
  assignment = tf.assign(v, [7])
  print (v.eval())
  sess.run(assignment)
  print (v.eval())
用assign()对张量进行赋值的时候,也要执行run()命令后赋值命令才生效
with tf.Graph().as_default(), tf.Session() as sess:
 dice1 = tf.Variable(tf.random_uniform([10, 1], minval=1, maxval=7,dtype=tf.int32))
 dice2 = tf.Variable(tf.random_uniform([10, 1],minval=1,maxval=7, dtype=tf.int32))
 dice_sum = tf.add(dice1, dice2)
 resulting_matrix = tf.concat(values=[dice1, dice2, dice_sum], axis=1)
 sess.run(tf.global_variables_initializer())
 print(resulting_matrix.eval())
tf.random_uniform()产生某一范围类的均匀分布的固定大小的张量
tf.concat()延某一维度连接张量。axis参数指定维数

转载于:https://juejin.im/post/5b3f87dee51d451991548c7b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值