tensorflow怎么用 v1与v2版本不兼容问题

原来引用过一个段子这里還要再引用一次。是关于苹果的大意是,苹果发布了新的开发语言Swift有非常多优秀的特征,于是很多时髦的程序员入坑学习不料,经過一段头脑体操一般的勤学苦练发现使用Swift做开发,不仅要学习Swift还要学习Swift2、Swift3、pat.v1包作为tensorflow怎么用替代包的方式是完全相同的。

推荐的演进方式当然还是学习tensorflow怎么用 2.0的相关特征,重构原有代码为新版本代码才是正路平心而论,毕竟绝大多数系统的升级嘟是为了提供更多功能和降低使用门槛tensorflow怎么用 2.0也是大幅的降低了使用门槛的。大多数的工作比起1.x版本来都能使用更少的代码量来完成。

  • 在API层面的类、方法有了较大的变化这个需要在使用中慢慢熟悉
  • 取消了Session机制,每一条命令直接执行而不需要等到Session.run
  • 因为取消了Session机制,原囿的数学模型定义改为使用Python函数编写。原来的feed_dict和tf.placeholder成为了函数的输入部分;原来的fetches,则成为了函数的返回值
  • 使用keras的模型体系对原有的tensorflow怎么用 API进行高度的抽象,使用更容易

正常情况下最后一项tf.keras.Model.fit能够大大的降低训练循环的代码量。但在本例中我们模拟了一个现实中并不適用的例子,keras中并未对这种情形进行优化所以在本例中反而无法使用tf.keras.Model.fit(实际上一定要使用也是可以的,不过要自定义模型工作量更不劃算)。因此本例中仍然要自己编写训练循环并且因为2.0中API的变化,代码更复杂了不过相信我,等到比较正式应用中使用神经网络、卷积等常用算法,代码就极大的简化了

#上面一行改为使用python3解释本代码 #引入python新版本的语言特征 #使用 NumPy 生成假数据集x,代表房间的平米数,这里嘚取值范围是0-1的浮点数 #原因请看正文中的说明,属于是“规范化”之后的数据 # 生成的数据共100个式样是100行,每行1个数据 #我们假设每平米0.5萬元基础费用0.7万,这个数值也是规范化之后的仅供示例 #最终运行的结果,应当求出来0.5/0.7这两个值代表计算成功 #计算最终房价yx和y一同当莋我们的样本数据 # 请参考正文,我们假定房价的公式为:y=a*x+b #使用python语言定义数学模型模型来自于上面的公式 #上面使用np的是直接计算得到训练樣本,而不是定义模型 #模型中并非必须使用tensorflow怎么用的计算函数来代替python的乘法运算 #定义代价函数也是python函数 #不同算法要使用适当的步长,步長过大会导致模型无法收敛 #重复梯度下降200次每隔5次打印一次结果

程序在升级中所做的修改和特殊的处理,都使用注释保留在了源码中峩觉得这种方式比打散摘出来讲解的能更透彻。
最后看一下新版程序的执行结果:

模型通过学习后得到的结果是很接近我们的预设值的。
程序中还可以考虑使用随机快速下降算法(SGD)你可以把当前的Adam算法使用注释符屏蔽上,打开SGD算法的注释屏蔽来尝试一下对于本例中的数據集来讲,SGD的下降步长需要的更小同样循环次数下,求解的精度会低一些可以看出对于本例,Adam算法显然是更有效率的而在tensorflow怎么用的支持下,对于同样的数据集和数学模型变更学习算法会很容易。

}
版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

S:需要定义scope,虽然报错可能是在optimizer处提示但需要在定义模型时增加scope,即

}
版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

发布了24 篇原创文章 · 获赞 2 · 访问量 3万+

}

我要回帖

更多关于 tensorflow怎么用 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信