如何得到一个包含张量中每个元素的列表?

2024-10-04 05:24:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在学习tf.contrib.opt.ScipyOptimizerInterface并制作一个演示,其中每个权重都是非负的。你知道吗

# -*- coding: utf-8 -*-
import tensorflow as tf

vector = tf.constant([.021,.046,.013], name='vector')
wt = tf.Variable([1./3,1./3,1./3], 'wt')

loss = -tf.reduce_sum(tf.multiply(vector,wt,'loss'))
equalities = [tf.reduce_sum(wt) - 1.]
inequalities = [wt[0],wt[1],wt[2]]

optimizer = tf.contrib.opt.ScipyOptimizerInterface(loss, var_list=[wt], equalities=equalities, inequalities=inequalities, method='SLSQP')

with tf.Session() as session:
  session.run(tf.global_variables_initializer())
  optimizer.minimize(session)

ScipyOptimizerInterface

equalities: Optional list of equality constraint scalar Tensors to be held equal to zero. inequalities: Optional list of inequality constraint scalar Tensors to be kept nonnegative.

如何将inequalities = [wt[0],wt[1],wt[2]]更改为inequalities = [wt[i] for i in range(tf.size(weight))]之类的内容?你知道吗


Tags: toreducesessiontfascontriblistsum