TensorFlow学习笔记(5)----TF生成数据的方法

转自:https://blog.csdn.net/PhDat101/article/details/52442738


正常情况下,使用tf.global_variables_intializer()初始化变量,在完全构建好模型并加载之后才运行这个操作。生成数据的主要方法如下

1)如果需要利用已经初始化的参数给其他变量赋值

TF的变量有个initialized_value()属性,就是初始化的值,使用方法如下:

[python]  view plain  copy
  1. # 原始的变量  
  2. weights = tf.Variable(tf.random_normal([784200], stddev=0.35),name="weights")  
  3. # 创造相同内容的变量  
  4. w2 = tf.Variable(weights.initialized_value(), name="w2")  
  5. # 也可以直接乘以比例  
  6. w_twice = tf.Variable(weights.initialized_value() * 0.2, name="w_twice")  
2)生成tensor的一些方法

生成tensor:

tf.zeros(shape, dtype=tf.float32, name=None)

tf.zeros_like(tensor, dtype=None, name=None)

tf.constant(value, dtype=None, shape=None, name='Const')

tf.fill(dims, value, name=None)

tf.ones_like(tensor, dtype=None, name=None)

tf.ones(shape, dtype=tf.float32, name=None)

生成序列

tf.range(start, limit, delta=1, name='range')

tf.linspace(start, stop, num, name=None)


生成随机数

tf.random_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)

tf.truncated_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)

tf.random_uniform(shape, minval=0.0, maxval=1.0, dtype=tf.float32, seed=None, name=None)

tf.random_shuffle(value, seed=None, name=None)

效果程序:

[python]  view plain  copy
  1. import tensorflow as tf  
  2. import numpy as np  
  3.   
  4. # 生成0和1矩阵  
  5. v1 = tf.Variable(tf.zeros([3,3,3]), name="v1")  
  6. v2 = tf.Variable(tf.ones([10,5]), name="v2")  
  7.   
  8. #填充单值矩阵  
  9. v3 = tf.Variable(tf.fill([2,3], 9))  
  10.   
  11. #常量矩阵  
  12. v4_1 = tf.constant([1234567])  
  13. v4_2 = tf.constant(-1.0, shape=[23])  
  14.   
  15. #生成等差数列  
  16. v6_1 = tf.linspace(10.012.030, name="linspace")#float32 or float64  
  17. v7_1 = tf.range(10203)#just int32  
  18.   
  19. #生成各种随机数据矩阵  
  20. v8_1 = tf.Variable(tf.random_uniform([2,4], minval=0.0, maxval=2.0, dtype=tf.float32, seed=1234, name="v8_1"))  
  21. v8_2 = tf.Variable(tf.random_normal([2,3], mean=0.0, stddev=1.0, dtype=tf.float32, seed=1234, name="v8_2"))  
  22. v8_3 = tf.Variable(tf.truncated_normal([2,3], mean=0.0, stddev=1.0, dtype=tf.float32, seed=1234, name="v8_3"))  
  23. v8_4 = tf.Variable(tf.random_uniform([2,3], minval=0.0, maxval=1.0, dtype=tf.float32, seed=1234, name="v8_4"))  
  24. v8_5 = tf.random_shuffle([[1,2,3],[4,5,6],[6,6,6]], seed=134, name="v8_5")  
  25.   
  26. # 初始化  
  27. init_op = tf.initialize_all_variables()  
  28.   
  29. # 保存变量,也可以指定保存的内容  
  30. saver = tf.train.Saver()  
  31. #saver = tf.train.Saver({"my_v2": v2})  
  32.   
  33. #运行  
  34. with tf.Session() as sess:  
  35.   sess.run(init_op)  
  36.   # 输出形状和值  
  37.   print tf.Variable.get_shape(v1)#shape  
  38.   print sess.run(v1)#vaule  
  39.     
  40.   # numpy保存文件  
  41.   np.save("v1.npy",sess.run(v1))#numpy save v1 as file  
  42.   test_a = np.load("v1.npy")  
  43.   print test_a[1,2]  
  44.   
  45.   #一些输出  
  46.   print sess.run(v3)  
  47.   
  48.   v5 = tf.zeros_like(sess.run(v1))  
  49.   
  50.   print sess.run(v6_1)  
  51.   
  52.   print sess.run(v7_1)  
  53.   
  54.   print sess.run(v8_5)  
  55.     
  56.   #保存图的变量  
  57.   save_path = saver.save(sess, "/tmp/model.ckpt")  
  58.   #加载图的变量  
  59.   #saver.restore(sess, "/tmp/model.ckpt")  
  60.   print "Model saved in file: ", save_path  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值