tensorflow基础

来源:互联网 发布:怎么上淘宝直播 编辑:程序博客网 时间:2024/06/07 20:21
一、tensorflow安装 
1.python3.5较好
2.命令
cd tensorflow/bin/.activity  //每次都需要激活虚拟环境
deactivity   //退出虚拟环境
touch/vim/python3 test.py  
ctrl+z  //退出

二、基本操作
1. 数据中心的基本单位 Tensors,0维tensor,例:3,一维tensor,例:[1,2,3],二维tensor,例:[[1,2],[3,4]],三维。。
2. import tensorflow as tf  //python可以访问所有的tensorflow类,函数,符号
import numpty as np   //数据的操纵与预处理
3. 计算图
3.1 计算图是由一系列的作用在节点上的运算构成
节点是0个或多个tensor输入,但只有一个tensor输出的单元
3.2 节点
常量节点
node1 = tf.constant(3.0, dtype=tf.float32)
node2 = tf.constant(4.0,dtype=tf.float32) #常量节点定义的时候就会初始化
变量节点
W = tf.Variable([.3], dtype=tf.float32)
b = tf.Variable([-.3], dtype=tf.float32)  #变量节点,定义的时候不会初始化,只有执行初始化函数才会初始化
占位节点
a = tf.placeholder(tf.float32) //placeholder承诺随后提供一个值
运算节点
from __future__ import print_function
node3 = tf.add(node1, node2)
3.2 运算
输出
sess = tf.Session()
print(sess.run([node1, node2]))
#输出是2个值,则需要加中括号,如果是函数,韩式的占位节点需要加字典初始化
变量节点初始化
init = tf.global_variables_initializer()
sess.run(init)
变量节点初始值修改
fixW = tf.assign(W, [-1.])
fixb = tf.assign(b, [1.])
sess.run([fixW,fixb])    #使得修改成功

from __future__ import print_function
node3 = tf.add(node1, node2)
函数
a = tf.placeholder(tf.float32) //placeholder承诺随后提供一个值
b = tf.placeholder(tf.float32)
adder_node = a + b
add_and_triple = adder_node * 3.
print(sess.run(adder_node, {a: [1, 3], b: [2, 4]}))


三、运用基本操作实现机器学习
import tensorflow as tf#model parametersw=tf.Variable([.3],dtype=tf.float32)b=tf.Variable([-.3],dtype=tf.float32)#model input and outputx=tf.placeholder(tf.float32)y=tf.placeholder(tf.float32)#modelliner_model=w*x+b#lossloss=tf.reduce_sum(tf.square(liner_model-y))#optimizeroptimizer=tf.train.GradientDescentOptimizer(0.01)train=optimizer.minimize(loss)#training datax_train=[1,2,3,4]y_train=[0,-1,-2,-3]#training loopinit=tf.global_variables_initializer()sess=tf.Session()sess.run(init)for i in range(1000):sess.run(train,{x:x_train,y:y_train})#evaluate training accuracycur_a,cur_b,cur_loss=sess.run([w,b,loss],{x:x_train,y:y_train})print(cur_a,cur_b,cur_loss)

四、运用库函数estimator调用实现机器学习

#!usr/bin/evn python3#-*- coding:utf-8 -*-#tensorflow可以调用其类,函数,标示import tensorflow as tf#numpy可以进行操纵数据和对数据进行预处理import numpy as np#the list of featurefeature_columns=[tf.feature_column.numeric_column("x",shape=[1])]#estimator是一个训练和评估的接口estimator=tf.estimator.LinearRegressor(feature_columns=feature_columns)x_train=np.array([1,2,3,4])y_train=np.array([0,-1,-2,-3])input_fn=tf.estimator.inputs.numpy_input_fn({"x":x_train},y_train,batch_size=4,num_epochs=None,shuffle=False)estimator.train(input_fn=input_fn, steps=1000)#evaluatex_eval=np.array([2,5,8,1])y_eval=np.array([-1.01,-4.1,-7,0])train_input_fn=tf.estimator.inputs.numpy_input_fn({"x":x_train},y_train,batch_size=4,num_epochs=1000,shuffle=False)eval_input_fn=tf.estimator.inputs.numpy_input_fn({"x":x_eval},y_eval,batch_size=4,num_epochs=1000,shuffle=False)train_metrics=estimator.evaluate(input_fn=train_input_fn)eval_metrics=estimator.evaluate(input_fn=eval_input_fn)print(train_metrics,eval_metrics)

五、库函数和编写结合
import numpy as npimport tensorflow as tfdef model_fn(features, labels, mode):  W = tf.get_variable("W", [1], dtype=tf.float64)  b = tf.get_variable("b", [1], dtype=tf.float64)  y = W*features['x'] + b   loss = tf.reduce_sum(tf.square(y - labels))   global_step = tf.train.get_global_step()  optimizer = tf.train.GradientDescentOptimizer(0.01)  train = tf.group(optimizer.minimize(loss),tf.assign_add(global_step, 1))   return tf.estimator.EstimatorSpec(      mode=mode,      predictions=y,      loss=loss,      train_op=train)estimator = tf.estimator.Estimator(model_fn=model_fn)# define our data setsx_train = np.array([1., 2., 3., 4.])y_train = np.array([0., -1., -2., -3.])x_eval = np.array([2., 5., 8., 1.])y_eval = np.array([-1.01, -4.1, -7., 0.])input_fn = tf.estimator.inputs.numpy_input_fn(    {"x": x_train}, y_train, batch_size=4, num_epochs=None, shuffle=True)train_input_fn = tf.estimator.inputs.numpy_input_fn(    {"x": x_train}, y_train, batch_size=4, num_epochs=1000, shuffle=False)eval_input_fn = tf.estimator.inputs.numpy_input_fn(    {"x": x_eval}, y_eval, batch_size=4, num_epochs=1000, shuffle=False)estimator.train(input_fn=input_fn, steps=1000)train_metrics = estimator.evaluate(input_fn=train_input_fn)eval_metrics = estimator.evaluate(input_fn=eval_input_fn)print("train metrics: %r"% train_metrics)print("eval metrics: %r"% eval_metrics)



















































原创粉丝点击