Tensorflow基础 Tensorflow基本操作(二)

 生成张量

import tensorflow as tf

# 创建值全为0的张量
tensor_zeros = tf.zeros(shape=[2, 3],  # 两行三列
                       dtype="float32")  # 类型

# 创建值全为1的张量

tensor_ones = tf.ones(shape=[2, 3], dtype="float32")
# 创建正态分布随机张量
tensor_nd = tf.random_normal(shape=[10],  # 一维
                             mean=1.7,  # 中位数
                             stddev=0.2,  # 标准差为0.2
                             dtype="float32")  # 数据类型
# 创建形状和tensor_ones一样,值全为0的张量
tensor_zeros_like = tf.zeros_like(tensor_ones)

with tf.Session() as sess:
    print(tensor_zeros.eval())  # eval表示session中执行计算
    print(tensor_ones.eval())
    print(tensor_nd.eval())
    print(tensor_zeros_like.eval())

张量类型转换

张量类型转换示例

import tensorflow as tf

# 张量类型转换

# 创建值全为1的张量

tensor_ones = tf.ones(shape=[2, 3], dtype="float32")
tensor_float = tf.constant([1.1, 2.2, 3.3])

with tf.Session() as sess:
    print(tf.cast(tensor_ones, tf.float32).eval())  # 将tensor_ones转换成浮点型并打印
    # print(tf.cast(tensor_float, tf.string).eval()) #不允许直接转换为字符串

占位符

 占位符的使用:占位符使用时,必须传入参数

import tensorflow as tf

# 定义两个占位符
plhd = tf.placeholder(tf.float32, [2, 3])  # 定义2行3列的占位符
plhd2 = tf.placeholder(tf.float32, [None, 3])  # N行3列的占位符
plhd3 = tf.placeholder(tf.float32, [None, 4])
with tf.Session() as sess:
    d = [[1, 2, 3],
         [4, 5, 6]]
    print(sess.run(plhd, feed_dict={plhd: d}))  # 执行占位符操作,需要传入数据 喂入一个字典
    print(sess.run(plhd2, feed_dict={plhd2: d}))  # 定义为N行3列,执行时传入2行3列
    # print(sess.run(plhd3, feed_dict={plhd3: d}))  # 定义为N行4列,执行时传入2行3列

 

张量形状的改变

设置张量的静态形状

import tensorflow as tf

# 张量形状改变
# 静态形状:初始形状,只能设置一次,不能跨阶设置
# 动态形状:运行时的形状,可以多次设置,可以跨阶设置,但元素总数要一致

import tensorflow as tf

pld = tf.placeholder(tf.float32, [None, 3])
pld.set_shape([4, 3])  # 设置静态形状,一旦固定就不能再改变
print(pld)
# pld.set_shape([3, 3])  # 报错
with tf.Session() as sess:
    pass

 设置张量的动态形状

import tensorflow as tf

# 张量形状改变
# 静态形状:初始形状,只能设置一次,不能跨阶设置
# 动态形状:运行时的形状,可以多次设置,可以跨阶设置,但元素总数要一致

import tensorflow as tf

pld = tf.placeholder(tf.float32, [None, 3])
pld.set_shape([4, 3])  # 设置静态形状,一旦固定就不能再改变
print(pld)
new_pld = tf.reshape(pld, [3, 4])  # 设置动态性状
print(new_pld)
# pld.set_shape([3, 3])  # 报错
with tf.Session() as sess:
    pass

 改变动态张量形状

import tensorflow as tf

# 张量形状改变
# 静态形状:初始形状,只能设置一次,不能跨阶设置
# 动态形状:运行时的形状,可以多次设置,可以跨阶设置,但元素总数要一致

import tensorflow as tf

pld = tf.placeholder(tf.float32, [None, 3])
pld.set_shape([4, 3])  # 设置静态形状,一旦固定就不能再改变
print(pld)
new_pld = tf.reshape(pld, [3, 4])  # 设置动态性状
print(new_pld)
new_pld = tf.reshape(pld, [2, 6])  # 多次设置动态形状
print(new_pld)
# new_pld = tf.reshape(pld, [2, 4])  # 报错,元素的个数不匹配
# pld.set_shape([3, 3])  # 报错
with tf.Session() as sess:
    pass

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值