#coding=gbk
'''
进阶篇:多元回归:建模问题:Y=x1xx1+x2xw2+x3xw3+...+xnxwn+b,矩阵简化表示Y=XW+bnumpy库基础:整型的一个数字,  不能取得其shape(维度),通过np.array()可以将其转换成一个标量(数组),可以取得shape;一般问题:需要对重要的特征以及次要特征进行范围的限定,即需要对数据进行归一化,有助于模型的收敛。特征值/(最大特征值-最小特征值)~[0,1]特征数据归一化:特征值/(最大特征值-最小特征值)~[0,1],标签不做处理扩展篇
'''from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']  #设置显示绘图显示中文
mpl.rcParams['axes.unicode_minus'] = False  #防止中文乱码,有时候第一句不能完全避免显示错误#导入tensorflow 模块
import tensorflow.compat.v1 as tf
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from sklearn.datasets import load_boston#下载数据
from sklearn.utils import shuffle#用于打乱数据#numpy库运用
#将一个整型数字转换成一个数组
s_v = 20
scalar_np = np.array(s_v)
print("标量:\n",scalar_np,scalar_np.shape)#向量
vector_v = [1, 2, 3, 4, 5, 6, 7, 8, 9]
vector_np = np.array(vector_v)
print("向量:\n",vector_np, vector_np.shape)#矩阵
m_v = [[1, 2, 3], [7, 8, 9], [4, 5, 6]]
m_np = np.array(m_v)
print("矩阵:\n",m_np,m_np.shape)#行向量、列向量的表示
row = np.array([[1, 2, 3]])
print("行向量:\n",row,row.shape)column = np.array([[1], [2], [3]])
print("列向量:\n", column, column.shape)#矩阵的运算
a = np.array([[1, 2, 3], [4, 5, 6]])
print(a)
a = a + 7
print(a)
a = a * 2
print(a)
a = a + a
print(a)
a = a - 3
print(a)
a = a / 2.0
print(a)
#对于+,-,*,/,都是对应元素做相应的操作#行列转置:aij=aji,reshape()
m = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(m.T)#矩阵的点积,对应元素相乘,np.multiply()#矩阵叉乘:两矩阵维度为 MxN,NxK,使用函数np.matmul(a,b)
m_a = np.array([[1, 2, 3]])
m_b = np.array([[3], [2], [1]])
m_c = np.matmul(m_a, m_b)
print(m_c)#下载数据,设置return_X_y=True去除摘要只返回数据和标签
boston_price_data ,_= load_boston(return_X_y=True)
print(boston_price_data, boston_price_data.shape)#数据归一化[0,1]
for i in range(12):boston_price_data[:, i] = boston_price_data[:, i] / (boston_price_data[:, i].max() - boston_price_data[:, i].min())
#取出数据
x_d = boston_price_data[:, :12]
print(x_d, x_d.shape)
print("\n")
#取出标签
y_d = boston_price_data[:, 12]
print(y_d, y_d.shape)#模型定义
x = tf.placeholder(tf.float32, [None, 12], name='x')
y = tf.placeholder(tf.float32, [None, 1], name='y')#拟合Y=x1xx1+x2xw2+x3xw3+...+xnxwn+b,矩阵简化表示Y=XW+b
with tf.name_scope("model"):#将下面的子图打包,使计算图简介,便于tensorboard查看w = tf.Variable(tf.random_normal([12, 1], stddev=0.01, name='w'))#随机初始化w数组b = tf.Variable(1.0, name='b')  #初始化bdef model(x, w, b):return tf.matmul(x, w) + b  #矩阵叉乘predict = model(x, w, b)        #预测模型#模型训练
train_c = 80
learning_rate = 0.01
with tf.name_scope("LossFun"):#打包loss_Fun = tf.reduce_mean(tf.pow(y - predict, 2))#均方误差
optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(loss_Fun)
#优化器设置sess = tf.Session()
init = tf.global_variables_initializer()
sess.run(init)loss_l = []
for i in range(train_c):loss_s = 0.0for x_, y_ in zip(x_d, y_d):x_ = x_.reshape(1, 12)#需要将取出来的数据进行维度调整,是x_,y_适合x,y变量维度模型y_=y_.reshape(1,1)_, loss = sess.run([optimizer, loss_Fun], feed_dict={x: x_, y: y_})'''用于可视化的语句_,summary_s, loss = sess.run([optimizer,summary_loss_op, loss_Fun], feed_dict={x: x_, y: y_})write.add_summary(summary_s,i)'''loss_s = loss_s + lossx_v, y_v = shuffle(x_d, y_d)  #打乱数据b0 = b.eval(session=sess)w0 = w.eval(session=sess)less_average = loss_s / len(y_d)loss_l.append(less_average)print("train count=", i + 1, "loss=", less_average, "b=", b0, "w=", w0)#模型验证
x_test = x_d[430]
x_test = x_test.reshape(1, 12)
p = sess.run(predict, feed_dict={x: x_test})
print("预测值:%f"%p,"标签值:%f\n"%y_d[430])plt.plot(loss_l)
plt.title("损失变化曲线(loss)")
plt.show()logdir = "E:/VSCODE/"
if tf.gfile.Exists(logdir):tf.gfile.DeleteRecursively(logdir)'''tensorboard可视化数据,
summary_loss_op=tf.summary.scalar("loss",loss_Fun)#记录损失值loss,写入到tensorboard中的SCALARS栏中
merged=tf.summary.merge_all()#将所有需要的日志文件合并写入
'''
write = tf.summary.FileWriter(logdir, tf.get_default_graph())
write.close()



附:
本文章学习至中国大学mooc-深度学习应用开发-Tensorflow实战

Tensorflow深度学习应用(进阶篇)-回归(函数拟合训练)-可视化相关推荐

  1. Tensorflow深度学习应用(进阶篇)

    #coding=gbk ''' 进阶篇相关数据:标签:要预测的事物特征:用于描述数据的输入变量样本:数据的特定实例有标签的样本:{特征,标签}无标的样本:{特征,...}模型:将样本映射到预测标签,有 ...

  2. Tensorflow深度学习应用(进阶篇)-1

    #coding=gbk''' 逻辑回归:逻辑回归需要将输出控制在[0,1]之间,可以使用函数将值映射在[0,1]之间Sigmod函数,逻辑回归一般采用对数损失函数: ''' from pylab im ...

  3. Vue学习笔记进阶篇——Render函数

    本文为转载,原文:Vue学习笔记进阶篇--Render函数 基础 Vue 推荐在绝大多数情况下使用 template 来创建你的 HTML.然而在一些场景中,你真的需要 JavaScript 的完全编 ...

  4. Tensorflow深度学习应用(筑基篇)

    筑基篇 #coding=gbk ''' 1.张量 用于描述数据,可以理解为多维数组,包含张量的名字,阶数,形状数值类型. Tensor("Add:0", shape=(m,n,k) ...

  5. STM32运行深度学习指南基础篇(3)(STM32CubeMX.AI+Tensorflow)

    STM32运行深度学习指南基础篇(3)(STM32CubeMX.AI+Tensorflow) 在上一篇文章中我们已经有训练好的tflite模型,接下来我们要在Clion中实现,如果是Keil的朋友可以 ...

  6. 计算机视觉面试宝典--深度学习机器学习基础篇(四)

    计算机视觉面试宝典–深度学习机器学习基础篇(四) 本篇主要包含SVM支持向量机.K-Means均值以及机器学习相关常考内容等相关面试经验. SVM-支持向量机 支持向量机(support vector ...

  7. TensorFlow 深度学习第二版:6~10

    原文:Deep Learning with TensorFlow Second Edition 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自[ApacheCN 深度学习 译文集],采用译 ...

  8. 基于TensorFlow深度学习框架,运用python搭建LeNet-5卷积神经网络模型和mnist手写数字识别数据集,设计一个手写数字识别软件。

    本软件是基于TensorFlow深度学习框架,运用LeNet-5卷积神经网络模型和mnist手写数字识别数据集所设计的手写数字识别软件. 具体实现如下: 1.读入数据:运用TensorFlow深度学习 ...

  9. 机器视觉面试宝典--深度学习补缺补漏篇

    机器视觉面试宝典–深度学习补缺补漏篇 一.深入理解Batch Normalization批标准化 机器学习领域有个很重要的假设:IID独立同分布假设,就是假设训练数据和测试数据是满足相同分布的,这是通 ...

最新文章

  1. 学术交流丨魏子卿院士:北斗坐标系
  2. 边缘计算芯片格局分析
  3. Algorithm:论一个产品经理的十八般武艺
  4. java中跨时区的日期格式转换
  5. __thread 和 __typeof__关键字
  6. HttpUtility编码
  7. Linux IPC实践(12) --System V信号量(2)
  8. 演练 鼠划图片上变亮的效果 1022
  9. 为什么南派三叔要封笔?
  10. 生成缩略图代码(转帖)
  11. VS2015 C#6.0 中的那些新特性(转)
  12. 升职加薪,必不可少!Python刷题打怪,你要的LeetCode答案都在这里了!
  13. 语音数字信号处理与分析及Matlab实现
  14. 最优化方法:三、线性规划
  15. AXURE RP 原型图绘制手册
  16. 推荐多款好看的报表图表配色方案(适用于PPT,大屏可视化分析)
  17. P35-前端基础-新闻列表
  18. 基于java基于javaweb的管理系统设计与实现怎样选题思路分享
  19. 一个有意思的小故事,希望以后也有这种修养,也能这样厚道
  20. checkbox选中触发事件

热门文章

  1. LeetCode 1019. 链表中的下一个更大节点(单调栈)
  2. LeetCode 17. 电话号码的字母组合(回溯)
  3. 计算机软件无形资产机械工具,考前秘籍,无形资产的定义及确认
  4. html校园首页设计说明范文,网页设计作品设计说明-必看请相互转告
  5. c语言 define 关键字,c语言中define的一个不常见的用法
  6. 分段线性插值c语言程序_【短道速滑】OpenCV中cvResize函数使用双线性插值缩小图像长宽大小一半时速度飞快(比最近邻还快)之异象解析和自我实现。...
  7. 回拨系统服务器,CISCO接入服务器回拨功能的实现
  8. Jupyter Notebook安装 nbextensions 插件
  9. 计算机网络划分的标准,计算机网络基础
  10. AI从业几年还不具备提出新模型的技术能力?看这个就够了!