tensorflow基本操作

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

import tensorflow as tf

# 实现一个加法运算
node1 = tf.constant(3.0)
node2 = tf.constant(4.0)
sum = tf.add(node1,node2)

#  Tensor("Const:0", shape=(), dtype=float32) 名字 形状 数据类型
print("打印张量:",node1)

# 不能在会话中运行,因为定义都不是op类型
# var1 = 2.0
# var2 = 3.0
# sum2 = var1+var2


# 有重载的机制,只要有一个是op对象,就可以在会话运行
var3 = 4.0
sum3 = var3+node2

# 获取默认的图 默认的这张图,相当于是给程序分配一段内存 ,所有的操作和量都是在这张图中存的
graph = tf.get_default_graph()

# 训练模型
# 实时的提供数据去进行训练
# placeholder是一个占位符, feed_dict 一个字典
plt = tf.placeholder(tf.float32 , [None,3]) # None的地方可以写固定的数,也可以写None


# with tf.Session(graph = 自己创建的图) as  sess: 可以这样使用自己创建的图运行
# 只能运行一张图,在会话中指定
# with 上下文管理器,帮忙自动关闭会话
# config=tf.ConfigProto(log_device_placement=True 可以打印出此次运行用到的资源
with tf.Session(config=tf.ConfigProto(log_device_placement=True)) as  sess:
    # 运行一个
    print("运行单个值:",sess.run(sum))
    # 重载运行
    print("重载运行:",sess.run(sum3))
    # 运行多个,要放在列表里,如下
    print("运行多个值的输出:",sess.run([sum,node1,node2]))
    # 使用占位符,实时提供数据进行训练
    print("实时提供数据:",sess.run(plt,feed_dict={plt:[[1,2,3],[4,5,6]]}))


    # 只要有会话的上下文环境就可以方便的使用eval()
    # 使用eval取值
    print("使用eval:" ,sum.eval())

    # 以下三个的图的位置都是一样,证明数据都存在一张图中
    print(node1.graph)
    print(node2.graph)
    print(sess.graph)
    print(node1.op) # 打印出该op的所有信息
    print("--------------")
    print(node1.shape)
    print("--------------")
    print(node1.name)
    print("--------------")
    print(plt.shape)

    # tensorflow:打印出来的形状表示
    # 0维:()   1维:(5)里面有5个数据   2维:(5,6) 3维:(2,3,4)

    # 形状的概念
    


# 创建一张图包含了一组op和tensor,上下文环境
# op: 只要使用tensorflow的API定义的函数都是OP
# tensor: 就是指代数据
g = tf.Graph()
# 新创建的图的使用
with g.as_default():
    a = tf.constant(1.0)
    assert sum.graph is not g













import tensorflow as tf

# 形状的概念
# 静态形状和动态形状
# 对于静态形状来说,一旦张量形状固定了,不能再次设置静态形状,也能跨维度修改
# 动态形状可以去创建一个新的张量,改变时候一定要注意元素数量要匹配,而且可以跨维度修改

plt = tf.placeholder(tf.float32 ,[None,2])
print("设置之前:",plt)
# 2不能变,必须和一开始一样,否则会报ValueError: Dimension 1 in both shapes must be equal, but are 2 and 7. Shapes are [?,2] and [3,7].
plt.set_shape([3,2])
print("设置之后:",plt)

# plt.set_shape([2,3]) # 不能再次修改了,会报错

# 动态形状修改,会生成一个新的Tensor,但是不能从[2,3] 变为 [3,3] 不能多出列,只能改变形状而已
plt_reshape = tf.reshape(plt , [2,3,1]) # ValueError: Cannot reshape a tensor with 6 elements to shape [3,3] (9 elements) for 'Reshape' (op: 'Reshape') with input shapes: [3,2], [2] and with input tensors computed as partial shapes: input[1] = [3,3].
print("动态改变形状:", plt_reshape)


with tf.Session() as sess:
    pass

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值