Tensorflow学习

安装测试过程

建立虚拟环境:python -m venv 目录

启用虚拟环境:

linux下:source 目录/bin/activate

windows下:cd Scripts–>activate.bat

安装tensorflowpip install tensorflow

警告:Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2

忽略警告:

1
2
3
import os

os.environ['TF_CPP_MIN_LOG_LEVEL']='2'

测试是否安装成功:

1
2
3
4
5
6
7
8
9
10
11
12
13
import tensorflow as tf
import os

os.environ['TF_CPP_MIN_LOG_LEVEL']='2'

a = tf.constant(1.)
b = tf.constant(2.)
print(a+b)

print('GPU:', tf.test.is_gpu_available())

tf.Tensor(3.0, shape=(), dtype=float32)
GPU: False

注:在tensorflow 2.0版本里要用tf.compat.v1.Session()替换tf.Session();不仅是Session,很多函数也都是这样调用的。

此外,这里安装的是CPU版本,数据量大时需要安装GPU版本。

安装GPU版本:pip install tensorflow-gpu

补充:

看网上的各种教程多是基于tensorflow1.x,使用2.0版本经常遇到很多问题,网上缺少解决方案,暂时回退到1.x的版本来学习,先学习完基础的东西再去学习2.0的新特性。

先看有哪些可用的tensorflow版本:pip search tensorflow

安装1.15.0版本:pip install tensorflow==1.15.0

如果网速过慢,可以使用国内镜像源:

pip install tensorflow==1.15.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/

百度pip国内镜像源,即可找到相关的源

基础知识

常量:constant、变量:Variable、会话:Session

加法:tf.add()、减法:tf.substract、赋值:tf.assign()

Fetch:同时执行多个运算

Feed:先定义(使用placeholder占位符),执行时传入值

二次代价函数:在某种情况下存在误差越大,训练越缓慢的问题;

交叉熵函数:改进以上问题

梯度下降法、(非)线性回归

神经网络输入层、中间层和输出层

softmax()模型:用来给不同的对象分配概率

拟合:欠拟合、正确拟合、过拟合

过拟合特征:对于训练集的准确率非常高,但是对于新的测试集的正确率比较低;原因:一般由于数据量较少,模型太过复杂导致。

过拟合解决办法:

  1. 增加数据集:足量的数据胜过一个好的模型
  2. 正则化方法
  3. Dropout:减少中间层的神经元的工作数量

优化器

未完待续……