tf_low_api_info

from __future__ import absolute_import
from __future__ import division
from __future__ import print_function

import numpy as np
import tensorflow as tf
# 定义Tensor
# a = tf.constant(3.0,dtype=tf.float32,name='A')
# b = tf.constant(2.0,dtype=tf.float32,name='B')
# add = tf.multiply(a,b,name='ADD')
# print(a,b,add)
#
# # tensorboard 面板可视化 tensorboard --logdir .
# writer = tf.summary.FileWriter('.')
# writer.add_graph(tf.get_default_graph())
# writer.flush()
#
# # 启动Session
#
# sess = tf.Session()
# # 每次启动run都会是一个新的值
# print(sess.run({'AB':(a,b),'ADD':add}))
# print(sess.run(add))
#
# # 占位Feeding
#
# x = tf.placeholder(tf.float32,shape=(2,))
# y = tf.placeholder(tf.float32,shape=(2,))
# z = tf.multiply(x,y)
#
# sess = tf.Session()
#
# print(sess.run(z,feed_dict={x:[1,3],y:[2,4]}))
#
# # Datasets tf.data将数据流传入到模型中
# # 从Dataset中得到一个可运行的张量,必须先将其转换为一个tf.data.Iterator
# # 然后调用tf.data.Iterator.get_next方法
#
# my_data = [
#     [0,1],
#     [2,3],
#     [4,5],
#     [6,7],
# ]
# # 当抵达Dataset数据流最后一条时,其会抛出一个越界异常
# slices = tf.data.Dataset.from_tensor_slices(my_data)
# next_item = slices.make_one_shot_iterator().get_next()
#
# while True:
#     try:
#         print(sess.run(next_item))
#     except tf.errors.OutOfRangeError:
#         break
# # 如果Dataset依赖于状态操作,你需要初始化迭代器再进行使用
#
# r =  tf.random_normal([10,3])
# dataset = tf.data.Dataset.from_tensor_slices(r)
# iterator = dataset.make_initializable_iterator()
# next_row = iterator.get_next()
#
# sess.run(iterator.initializer)
# while True:
#     try:
#         print(sess.run(next_row))
#     except tf.errors.OutOfRangeError:
#         break
#
# # Layers 包括了对于图的变量以及操作.例如:一个全连接层包含了权重以及一个激活函数
# # 连接权重和偏差被全连接层管理
#
# # 创建 Layers
# ## layers检查输入以此来确定内部变量的大小,因此我们必须设定x的shape,
# ## 这样此层才能建立一个正确大小的权重矩阵
# x = tf.placeholder(tf.float32,shape=[None,3])
# linear_model = tf.layers.Dense(units=1)
# y = linear_model(x)
# # 初始化 Layers
# ## 包含变量的层在它们能够被使用前必须被初始化,可以被单独初始化,也可以一起被初始化
# ### tf.global_variables_initializer() 仅创建和返回了一个处理,其会在执行run时被初始化
# ### 这是图建立的最后一步
# init = tf.global_variables_initializer()
# sess.run(init)
# # 执行 Layers
#
# print(sess.run(y,feed_dict={x:[[1,2,3],[4,5,6]]}))
#
# # Layer Function shortcuts
# ## 不同的是,其在一次调用中,创建并调用该层
# ## 虽然方便,但这种方式不允许访问tf.layers.Layer对象,这使得内省和调试更加困难,并且重用变得不可能
#
# x =  tf.placeholder(tf.float32,shape=[None,3])
# y = tf.layers.dense(x,units=1) #区分同上面的大写Dense
#
# init = tf.global_variables_initializer()
# sess.run(init)
#
# print(sess.run(y,feed_dict={x:[[1,2,4],[4,5,6]]}))
#
# # 特征列
# ## tf.feature_column.input_layer
# ## tf.feature_column.indicator_column
# features = {
#     'sales' : [[5], [10], [8], [9]],
#     'department': ['sports', 'sports', 'gardening', 'gardening']}
#
# department_column = tf.feature_column.categorical_column_with_vocabulary_list(
#         'department', ['sports', 'gardening'])
# department_column = tf.feature_column.indicator_column(department_column)
#
# columns = [
#     tf.feature_column.numeric_column('sales'),
#     department_column
# ]
#
# inputs = tf.feature_column.input_layer(features, columns)
#
# var_init = tf.global_variables_initializer()
# table_init = tf.tables_initializer()
# sess = tf.Session()
# sess.run((var_init, table_init))
#
# print(sess.run(inputs))

# 训练
## 构建图
x = tf.constant([[1],[2],[3],[4]],dtype=tf.float32)
y_true = tf.constant([[0],[-1],[-2],[-3]],dtype=tf.float32)
## 构建模型
linear_model = tf.layers.Dense(units=1)
y_pred = linear_model(x)
# Loss
# tf.losses
loss = tf.losses.mean_squared_error(labels=y_true,predictions=y_pred)
# 训练以及优化器optimizers tf.train.Optimizer

optimizer = tf.train.GradientDescentOptimizer(0.01)
train = optimizer.minimize(loss)
# 初始化
init = tf.global_variables_initializer()
# 启动会话
sess = tf.Session()
sess.run(init)
# print(sess.run(y_pred))


# print(sess.run(loss))

# 训练
for i in range(100):
    _,loss_value = sess.run((train,loss))
    print(loss_value)
print(sess.run(y_pred))

writer = tf.summary.FileWriter('.')
writer.add_graph(tf.get_default_graph())
writer.flush()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值