热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

tensorflow课程笔记(一)

MOOC上的tensorflow课程笔记importtensorflowastfatf.constant([1.0,2.0])#一行两列的张量btf.constant

 

MOOC上的tensorflow课程笔记

import tensorflow as tf
"""
a = tf.constant([1.0,2.0]) #一行两列的张量
b = tf.constant([3.0,4.0]) #一行两列的张量
result = a + b
print(result) #打印计算图
结果为:Tensor("add:0", shape=(2,), dtype=float32)add操作,第0个开始计算(?),一维的张量,有两个值,类型都是float32
"""
"""
#计算图:搭建神经网络的计算过程,只搭建,不计算
#现在要搭建y=XW = x1*w1 + x2*w2 的计算图
x = tf.constant([[1.0,2.0]]) #一行两列的张量
w = tf.constant([[3.0],[4.0]]) #两行一列的张量
y = tf.matmul(x,w) #张量相乘
print(y)
#计算结果:Tensor("MatMul:0", shape=(1, 1), dtype=float32)
with tf.Session() as sess:print(sess.run(y))
#计算结果:[[11.]]"""
"""
生成变量
w = tf.Variable(tf.random_normal([2,3],stddev=2,mean=0,seed=1))[2,3] 产生2*3的矩阵 stddev标准差 mean均值 seed随机种子tf.random_normal 正态分布tf.random_uniform 平均分布
生成常量
tf.zeros 全零数组
tf.ones 全1数组
tf.fill 全定值数组
tf.constant 直接给值
"""
"""
神经网络实现过程:
1.准备数据集,提取特征,作为输入喂给神经网络
2.搭建NN结构,从输入到输出(先搭计算图,再用会话执行)NN前向传播算法-》计算输出
3.大量特征数据喂给NN,迭代优化NN参数NN反向传播算法-》优化参数训练模型
4.使用训练好的模型预测和分类
"""
"""
使用tf.placeholder占位符喂数据
喂一组数据
x = tf.placeholder(tf.float32,shape=[1,2]) #一行两列
sess.run(y,feed_dict={x:[[0.5,0.6]]})
喂多组数据
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]})
"""

简单的神经网络搭建

#coding:utf-8
#两层神经网络(全连接)
import tensorflow as tf#定义输入和参数
#x = tf.constant([[0.7,0.5]]) #定义一行两列的张量
#用placeholder实现输入定义(sess.run中喂一组数据)
x = tf.placeholder(tf.float32,shape=[None,2]) #这样表示多行2列
w1 = tf.Variable(tf.random_normal([2,3], stddev=1, seed=1)) #正态分布
w2 = tf.Variable(tf.random_normal([3,1], stddev=1, seed=1)) #三行一列
"""w1= [[-0.8113182 1.4845988 0.06532937][-2.4427042 0.0992484 0.5912243 ]]w2= [[-0.8113182 ][ 1.4845988 ][ 0.06532937]]w1就是输入到隐藏层的三个过程的权重w2就是隐藏层到输出层的三个过程的权重
"""
"""
x11 -- w1 a1 w2w1 a2 w2 -- y
x12 -- w1 a3 w2"""#定义前向传播过程
a = tf.matmul(x, w1) #x乘以w1
y = tf.matmul(a, w2)"""
a= [[-1.7892749 1.0888433 0.34134272]]
y= [[3.0904665]]a11 = w1 11*x11 + w2 21*x12
a12 = w1 12*x11 + w2 22*x12
a13 = w1 13*x11 + w2 23*x13
"""#用会话计算结果
with tf.Session() as sess:init_op = tf.global_variables_initializer()sess.run(init_op)#print("y in this file is:\n",sess.run(y))"""print("w1=",sess.run(w1))print("w2=",sess.run(w2))print("a=",sess.run(a))print("y=",sess.run(y))"""print("y=",sess.run(y,feed_dict={x:[[0.7,0.5],[0.3,0.2],[0.8,0.9]]}))"""输出结果:y= [[3.0904665][1.2935174][4.2442317]]"""

 


推荐阅读
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • Learning to Paint with Model-based Deep Reinforcement Learning
    本文介绍了一种基于模型的深度强化学习方法,通过结合神经渲染器,教机器像人类画家一样进行绘画。该方法能够生成笔画的坐标点、半径、透明度、颜色值等,以生成类似于给定目标图像的绘画。文章还讨论了该方法面临的挑战,包括绘制纹理丰富的图像等。通过对比实验的结果,作者证明了基于模型的深度强化学习方法相对于基于模型的DDPG和模型无关的DDPG方法的优势。该研究对于深度强化学习在绘画领域的应用具有重要意义。 ... [详细]
  • STL迭代器的种类及其功能介绍
    本文介绍了标准模板库(STL)定义的五种迭代器的种类和功能。通过图表展示了这几种迭代器之间的关系,并详细描述了各个迭代器的功能和使用方法。其中,输入迭代器用于从容器中读取元素,输出迭代器用于向容器中写入元素,正向迭代器是输入迭代器和输出迭代器的组合。本文的目的是帮助读者更好地理解STL迭代器的使用方法和特点。 ... [详细]
  • 【论文】ICLR 2020 九篇满分论文!!!
    点击上方,选择星标或置顶,每天给你送干货!阅读大概需要11分钟跟随小博主,每天进步一丢丢来自:深度学习技术前沿 ... [详细]
  • 假设我有两个数组A和B,其中A和B都是mxn.我现在的目标是,对于A和B的每一行,找到我应该在B的相应行中插入A的第i行元素的位置.也就是说,我希望将np.digitize或np. ... [详细]
  • OCR:用字符识别方法将形状翻译成计算机文字的过程Matlab:商业数学软件;CUDA:CUDA™是一种由NVIDIA推 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文介绍了P1651题目的描述和要求,以及计算能搭建的塔的最大高度的方法。通过动态规划和状压技术,将问题转化为求解差值的问题,并定义了相应的状态。最终得出了计算最大高度的解法。 ... [详细]
  • 判断数组是否全为0_连续子数组的最大和的解题思路及代码方法一_动态规划
    本文介绍了判断数组是否全为0以及求解连续子数组的最大和的解题思路及代码方法一,即动态规划。通过动态规划的方法,可以找出连续子数组的最大和,具体思路是尽量选择正数的部分,遇到负数则不选择进去,遇到正数则保留并继续考察。本文给出了状态定义和状态转移方程,并提供了具体的代码实现。 ... [详细]
  • Go语言实现堆排序的详细教程
    本文主要介绍了Go语言实现堆排序的详细教程,包括大根堆的定义和完全二叉树的概念。通过图解和算法描述,详细介绍了堆排序的实现过程。堆排序是一种效率很高的排序算法,时间复杂度为O(nlgn)。阅读本文大约需要15分钟。 ... [详细]
  • Android自定义控件绘图篇之Paint函数大汇总
    本文介绍了Android自定义控件绘图篇中的Paint函数大汇总,包括重置画笔、设置颜色、设置透明度、设置样式、设置宽度、设置抗锯齿等功能。通过学习这些函数,可以更好地掌握Paint的用法。 ... [详细]
  • 3年半巨亏242亿!商汤高估了深度学习,下错了棋?
    转自:新智元三年半研发开支近70亿,累计亏损242亿。AI这门生意好像越来越不好做了。近日,商汤科技已向港交所递交IPO申请。招股书显示& ... [详细]
author-avatar
龙争虎斗石榴agj
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有