tensorflow除了变量创建稍微麻烦一些和必须建立session来运行,其他的操作基本和普通Python一样
主函数中run会调用main
1、创建常量矩阵 tf.constant
x = tf.constant([[1.0,2.0]])
w = tf.constant([3.0],[4.0])
2、创建一个矩阵乘法 tf.matmul
但创建后不会立即执行,在会话中执行
y = tf.matmul(x,w)
3、定义会话 tf.Session()
sess = tf.Session()
4、通过会话运算乘法,得到结果 sess.run()
res = sess.run(y)
或者是
with tf.Session() as sess:
sess.run(y)
(使用这种写法,运行完毕后,会话会自动关闭)
5、变量初始化 tf.global_variables_initializer()
sess.run(tf.global_variables_initializer())
6、生成随机变量
w = tf.Variable(tf.random_normal([2,3], stddev=1, mean=0, seed=1))
生成2*3的矩阵
7、placeholder占位符
变量在定义时要初始化,但是如果有些变量刚开始我们并不知道它们的值,无法初始化,那怎么办呢?
那就用占位符来占个位置,指定这个变量的类型和shape,以后再用feed的方式来输入值。
x = tf.placeholder(tf.float32, shape=(1,2))
sess.run(y, feed_dict={x:[[0.7,0.5]]})
(#sess.run要运行y。但是要算y就要算x,但此时x只是占位了,所以要给他赋值才能算)
喂多组数据
x = tf.placeholder(tf.float32, shape=(None,2))
sess.run(y,feed_dict={x: [[0.1,0.2],[0.2,0.3],[0.3,0.4],[0.4,0.5]]})
tf.reshape()
-1代表的含义是不用我们自己指定这一维的大小,函数会自动计算,但列表中只能存在一个-1
x = tf.reshape(x, [-1,3,32,32])
Keras的backend
keras有两个backend——tensorflow和theano
backend就是keras是基于哪个东西来做运算的
当输入import keras之后,就可以看到backend是哪个
keras.backend.clear_session()
clear_session就是清除一个session。而session就是tensorflow中我们常见的会话。
销毁当前的TF图并创建一个新图,有助于避免旧模型/图层混乱。
tf.keras.utils.get_file
该函数的作用主要是直接从URL下载资源
import tensorflow as tf train_path = tf.keras.utils.get_file( fname="iris_training.csv", origin="https://storage.googleapis.com/download.tensorflow.org/data/iris_training.csv") test_path = tf.keras.utils.get_file( fname="iris_test.csv11", origin="https://storage.googleapis.com/download.tensorflow.org/data/iris_test.csv") print(train_path) print(test_path)
从origin下载文件存在本地命名为fname
tf.layers.dense()
dense :全连接层 相当于添加一个层
tf.keras.callbacks.TensorBoard
调用tensorboard
tensorboard_callback = keras.callbacks.TensorBoard(log_dir="logs")
tf.feature_column
tf.feature_column是原始数据和estimator模型之间的桥梁