IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> tensorflow核心概念 -> 正文阅读

[人工智能]tensorflow核心概念

核心概念?

tensorflow核心概念
概念说明
编程范式数据流图

编程范式:声明式?vs命令式

有向无环图

数据流图节点,叫操作(OP)数学函数或表达式MatMul BiasAdd Softmax
变量Variable
占位符placeholder
梯度值Gradients
更新参数操作
流图执行方式拓扑排序后执行
数据载体张量Tensor

n维数组

每个量的数组元素类型是确定的。

存储在一段连接的空间

如int[N][M][L]

dtype: int

shape: [N,M,L]

tensorfow支持丰富的类型:tf.int64

常量张量a=tf.constant(1.0)
变量张量b=tf.variable(2.0)
稀疏张量tf.SparseTensor
张量操作

数学操作

+-*/

tf.add

tf.sub

tf.abs tf.neg tf.invert

形状操作chip, reshape, slice, shuffle
归约操作reduce_mean reduce_sum
神经网络操作? ??conv, pool, softmax, relu
条件操作cond
计算结点:OP

name, type,

inputs, control_inputs,

outputs, device,graph,traceback

存储结点:Variablename, dtype, shape, initial_value, initializer, device,graph, op
数据结构:placeholdername, dtype, shape
运行环境会话:Session(target, graph, cnofig)

sess.run(fetches, feed_dict, options, run_metadata)

sess.close

交互式会话:Inter activeSession
训练工具:优化器
损失函数与优化算法
minimize 方法
. 计算梯度

?

?

?最佳实践

tensorflow训练模模型8个步骤

  1. 定义超参数;
  2. 输入数据
  3. 构建模型;
  4. 定义损失函数;
  5. 创建优化器;
  6. 定义单步 练操作
  7. 创建会话;
  8. 迭代训练

一元线性回归模型

Y=w*X+b

import tensorflow.compat.v1 as tf
import numpy as np

tf.disable_v2_behavior()
tf.disable_eager_execution ()
#超参数
#学习率
learning_rate = 0.01
#训练迭代最大步数
max_train_step = 1000

#输入数据
#监督学习中,数据集分为训练集( training set )、验 证集( validation set ) 和测试集(test set)
train_X = np.array([[3.3], [4.4], [5.5], [6.71], [6.93], [4.168], [9.779], [6.182], [7.59], [2.167],[7.042], [10.791], [5.313], [7.997], [5.654], [9.27], [3.1]], dtype=np.float32)
train_Y = np.array([[1.7], [2.76], [2.09], [3.19], [1.694], [1.573], [3.366], [2.596], [2.53], [1.221], [2.827], [3.465], [1.65], [2.904], [2.42], [2.94], [1.3]], dtype=np.float32) 
total_samples = train_X.shape[0]
print(train_X)
print(train_Y)

#构建模型
#输入数据X
X = tf.placeholder(tf.float32, [None, 1])
#模型参数W,b
W = tf.Variable(tf.random_normal([1,1]), name="weight")
b = tf.Variable(tf.zeros([1]), name="bias")
#推理值Y
Y = tf.matmul(X, W) + b

#定义损失函数
#实际输入值
Y_ = tf.placeholder(tf.float32, [None, 1])
#损失 均方差
loss = tf.reduce_sum(tf.pow(Y-Y_,2))/(total_samples)

#创建优化器
#梯度下降法
optimizer = tf.train.GradientDescentOptimizer(learning_rate)

#单步训练操作
train_op = optimizer.minimize(loss)

#创建会话
log_step = max_train_step/20
#导出模型到tensorboard
summary_writer = tf.summary.FileWriter('tb_log/',  flush_secs=1)
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    print("start trainning")
    for step in range(max_train_step):
        if step % log_step == 0:
            c = sess.run(train_op, feed_dict={X:train_X, Y_: train_Y})
            if step % log_step == 0:
                c = sess.run(loss, feed_dict={X:train_X, Y_: train_Y})
                print("Step:%d, loss==%.4f, W=%.4f, b==%.4f" % (step, c, sess.run(W), sess.run(b)))

    print("train finish")
    #训练完成,计算损失,应当在test数据集上计算,这里就在训练集上吧
    final_loss =  sess.run(loss, feed_dict={X:train_X, Y_: train_Y})
    weight, bias = sess.run([W, b])
    print("Step:%d, loss==%.4f, W=%.4f, b==%.4f" % (max_train_step, final_loss, weight, bias))
    print("Linear Regression Model: Y=%.4f*X+%.4f" % (weight, bias))
    summary_writer.add_graph(sess.graph)#添加graph图
summary_writer.close()
    
#模型可视化

%matplotlib inline
import matplotlib.pyplot as plt
plt.plot(train_X, train_Y, 'ro', label='Training Data')
plt.plot(train_X, weight * train_X + bias, label='Fitted line')
plt.legend()
plt.show()

运行结果:

start trainning
Step:0, loss==0.3116, W=0.3104, b==0.0604
Step:50, loss==0.2207, W=0.3503, b==0.0679
Step:100, loss==0.2196, W=0.3540, b==0.0702
Step:150, loss==0.2192, W=0.3541, b==0.0720
Step:200, loss==0.2189, W=0.3539, b==0.0738
Step:250, loss==0.2186, W=0.3537, b==0.0755
Step:300, loss==0.2183, W=0.3534, b==0.0773
Step:350, loss==0.2180, W=0.3532, b==0.0791
Step:400, loss==0.2177, W=0.3529, b==0.0808
Step:450, loss==0.2174, W=0.3527, b==0.0825
Step:500, loss==0.2171, W=0.3524, b==0.0843
Step:550, loss==0.2168, W=0.3522, b==0.0860
Step:600, loss==0.2164, W=0.3519, b==0.0878
Step:650, loss==0.2161, W=0.3517, b==0.0895
Step:700, loss==0.2158, W=0.3514, b==0.0912
Step:750, loss==0.2155, W=0.3512, b==0.0929
Step:800, loss==0.2152, W=0.3510, b==0.0946
Step:850, loss==0.2149, W=0.3507, b==0.0963
Step:900, loss==0.2146, W=0.3505, b==0.0980
Step:950, loss==0.2144, W=0.3502, b==0.0997
train finish
Step:1000, loss==0.2144, W=0.3502, b==0.0997
Linear Regression Model: Y=0.3502*X+0.0997

?

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-04-24 09:26:47  更:2022-04-24 09:26:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 9:42:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码