在Tensorflow中,我想将标量张量转换为整数。有可能吗?
我需要创建一个循环,循环的索引是一个标量张量,在循环体内部,我想使用索引来访问张量数组中的一个条目。
例如:
idx = tf.constant(0)
c = lambda i : tf.less(i, 10)
def body(idx) :
i = # convert idx to int
b = weights[i] # access an entry in a tensor array, tensor cannot be used directly
....
return idx+1
tf.while_loop(c, body, [idx])
答案 0 :(得分:10)
在Tensorflow 2.0+中,它很简单:
<?php
include_once 'database.php';
if($_SERVER["REQUEST_METHOD"] == "POST" and isset($_POST['sign_up'])) {
$uname = $_POST['txt_uname'];
$password = $_POST['txt_pwd'];
$databasenam = $_POST['database_uname'];
$email = $_POST['email'];
$cpassword = $_POST['cpassword'];
$db_query = "CREATE DATABASE IF NOT EXISTS " . $databasenam . "";
if(!mysqli_query($conn, $db_query)) {
echo "<p class='error'> * This username was taken, try another please </p>";
}
答案 1 :(得分:2)
2.0兼容答案:以下代码会将张量转换为标量。
!pip install tensorflow==2.0
import tensorflow as tf
tf.__version__ #'2.0.0'
x = tf.constant([[1, 1, 1], [1, 1, 1]])
Reduce_Sum_Tensor = tf.reduce_sum(x)
print(Reduce_Sum_Tensor) #<tf.Tensor: id=11, shape=(), dtype=int32, numpy=6>
print(Reduce_Sum_Tensor.numpy()) # 6, which is a Scalar
This是Google Colab的链接,在其中执行上述代码。
答案 2 :(得分:1)
你需要创建一个tf.Session()以将张量强制转换为标量
with tf.Session() as sess:
scalar = tensor_scalar.eval()
如果您使用的是IPython笔记本,可以使用Interactive Session
:
sess = tf.InteractiveSession()
scalar = tensor_scalar.eval()
# Other ops
sess.close()
答案 3 :(得分:1)
它应该像在张量上调用 int()
一样简单。
int(tf.random.uniform((), minval=0, maxval=32, dtype=tf.dtypes.int32))
>> 4
我已经在 TF 2.2 和 2.4 中检查过这个
答案 4 :(得分:0)
也许有帮助。只是简单的使用:
idx2np = int(idx)
您现在可以测试它是否是数字:
test_sum = idx2np + 1
print(str(test_sum))
答案 5 :(得分:-2)
尝试使用tf.reshape()
# tensor 't' is [7]
# shape `[]` reshapes to a scalar
reshape(t, []) ==> 7
答案 6 :(得分:-5)
您需要评估张量以获得值。
如果你想这样做:
i = # convert idx to int
你可以做sess.run()或idx.eval():
i = sess.run(idx)