Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将提要和占位符迁移到TensorFlow 2?_Python_Tensorflow_Tensorflow2.0 - Fatal编程技术网

Python 如何将提要和占位符迁移到TensorFlow 2?

Python 如何将提要和占位符迁移到TensorFlow 2?,python,tensorflow,tensorflow2.0,Python,Tensorflow,Tensorflow2.0,我正在尝试将一个简单的片段从TensorFlow 1.x转换为TensorFlow 2: TensorFlow 1.x代码:########## 将numpy作为np导入 导入tensorflow作为tf 系数=np.数组([[1.],[-10.],[25.])) w=tf.Variable(0,dtype=tf.float32) x=tf.placeholder(tf.float32[3,1]) 成本=(x[0][0]*(w**2))+(x[1][0]*w)+(x[2][0]) 列车=tf.列

我正在尝试将一个简单的片段从TensorFlow 1.x转换为TensorFlow 2:

TensorFlow 1.x代码:##########
将numpy作为np导入
导入tensorflow作为tf
系数=np.数组([[1.],[-10.],[25.]))
w=tf.Variable(0,dtype=tf.float32)
x=tf.placeholder(tf.float32[3,1])
成本=(x[0][0]*(w**2))+(x[1][0]*w)+(x[2][0])
列车=tf.列车.梯度降阶器(0.05).最小化(成本)
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
init=tf.global_variables_initializer()
session=tf.session()
会话运行(init)
对于范围(100)内的i:
session.run(train,feed_dict={x:coverties})
打印(会话运行(w))

TF2中已经替换了很多旧API(例如,
GradientDescentOptimizer
替换为
keras.optimizers.SGD
),我能够找到如何重构大部分代码的方法,但我不知道如何重构
tf.placeholder
feed\u dict
,以及这两者如何交互。TF2中是否完全避免使用占位符?

通常使用
@tf.function
并将占位符转换为函数参数
sess.run
然后被替换为调用该函数。过去用于返回ops的内容(如
最小化
)现在只在函数内部调用。以下是您转换的代码片段:

coefficients = tf.constant([[1.], [-10.], [25.]])
w = tf.Variable(0.0)

@tf.function
def train(x):
  cost = (x[0][0] * (w**2)) + (x[1][0]*w) + (x[2][0])
  tf.compat.v1.train.GradientDescentOptimizer(0.05).minimize(cost, var_list=[w])

for i in range(100):
    train(coefficients)

print(w)
正如您所提到的,
train.GradientDescentOptimizer
已被弃用,因此升级该部件将需要更多的更改