Python “保留Tensorflow代码”有什么区别;简单的;或者显式地编程计算图?
我正在学习Tensorflow对NN进行编码,我遇到了在Tensorflow中编程NN的两种通用“方法”,我想知道它们之间的区别 通过使用Tensorflow中的预定义函数和选项,有一种简单的方法(例如): 另一种方法是通过定义计算图,使用占位符,明确定义损失函数、批次等。类似如下:Python “保留Tensorflow代码”有什么区别;简单的;或者显式地编程计算图?,python,tensorflow,keras,Python,Tensorflow,Keras,我正在学习Tensorflow对NN进行编码,我遇到了在Tensorflow中编程NN的两种通用“方法”,我想知道它们之间的区别 通过使用Tensorflow中的预定义函数和选项,有一种简单的方法(例如): 另一种方法是通过定义计算图,使用占位符,明确定义损失函数、批次等。类似如下: x = tf.placeholder(..., dtype='float') y = tf.placeholder(..., dtype='float') ... with tf.Session() as se
x = tf.placeholder(..., dtype='float')
y = tf.placeholder(..., dtype='float')
...
with tf.Session() as sess:
sess.run(init)
opt = sess.run(optimizer, ...)
loss, acc = sess.run([cost, accuracy], ...)
(与本教程中的内容类似:)
这两种方法的区别是什么?stackoverflow或Tensorflow教程中的几乎所有问题都使用第二种方法,但第一种方法非常简单(事实上,在Coursera中的deeplearning.ai的Tensorflow课程中使用)。第一种方法更简单,你应该使用它,特别是如果你是这个领域和/或这些工具的新手。它使用的是一个高级API,现在是Tensorflow的高级API,旨在简化NN编程。对于Keras级别太高的非常特定的任务,您只需要第二种类型的代码
第二种方法是“历史”方法,即只使用Tensorflow的核心。很多文档使用它是因为Keras不曾存在,即使在它被创建之后,也花了一些时间成为访问TF并并入TF的标准方式,所以很多人过去不使用它,其中一些仍然没有切换到Keras。早在Tensorflow的早期版本不支持动态计算,因此您必须构建一个图形(变量和常量的buzy单词),然后在“会话”中执行计算这是Tensorflow 2.0引入的解决方案 Keras只是Tensorflow的高层,所以你应该比较一下急切的执行 至会话模式计算,而非Keras vs“会话”
x = tf.placeholder(..., dtype='float')
y = tf.placeholder(..., dtype='float')
...
with tf.Session() as sess:
sess.run(init)
opt = sess.run(optimizer, ...)
loss, acc = sess.run([cost, accuracy], ...)