tf.argmax用法

tf.argmax():返回跨张量轴的最大值的索引。同tf.compat.v1.arg_max及tf.compat.v1.argmax

tf.compat.v1.argmax(
    input, axis=None, name=None, dimension=None, output_type=tf.dtypes.int64
)

注意,如果是ties,则不能保证返回值的同一性。

用法:

import tensorflow as tf
a = [1, 10, 26.9, 2.8, 166.32, 62.3]
b = tf.math.argmax(input = a)
c = tf.keras.backend.eval(b)
# c = 4
# here a[4] = 166.32 which is the largest element of a across axis 0

 

Args

input一个张量Tensor. 必须是以下类型之一: float32float64int32uint8int16int8complex64int64qint8quint8qint32bfloat16uint16complex128halfuint32uint64bool
axis一个张量Tensor. 必须是以下类型之一: int32int64。 int32 或 int64必须在[-rank(input), rank(input)]范围内. 描述要减少输入张量的哪条轴。 对于矢量,请使用axis = 0。
output_type可选的 tf.DType 来自: tf.int32, tf.int64. 默认为 tf.int64.
name操作的名称(可选)。

Returns

类型为output_type的Tensor。

 即:

  • axis = 0时,返回每一列最大值的位置索引
  • axis = 1时,返回每一行最大值的位置索引
  • axis = 2、3、4...,即为多维张量时,同理推断

 

重点:结果进行降维,再按照对应维度求最大值索引

 

import tensorflow as tf

a = tf.constant([1., 2., 3., 0., 9.])
b = tf.constant([[1, 2, 3], [3, 2, 1], [4, 5, 6], [6, 5, 4]])

with tf.Session() as sess:
    print(sess.run(a))
    print(sess.run(tf.argmax(a, 0)))
    print("*" * 20)

    print(sess.run(b))
    print(sess.run(tf.argmax(b, 0)))
    print("*" * 20)

    print(sess.run(b))
    print(sess.run(tf.argmax(b, 1)))

# 输出结果:
# [1. 2. 3. 0. 9.]
# 4
# ********************
# [[1 2 3]
#  [3 2 1]
#  [4 5 6]
#  [6 5 4]]
# [3 2 2]
# ********************
# [[1 2 3]
#  [3 2 1]
#  [4 5 6]
#  [6 5 4]]
# [2 0 2 0]
import tensorflow as tf

c = tf.constant(
    [[[1, 2, 3], [2, 3, 5], [2, 2, 2]], [[5, 4, 3], [8, 7, 2], [1, 2, 3]], [[5, 4, 6], [10, 7, 30], [1, 2, 3]]])

with tf.Session() as sess:
    print(sess.run(c))
    print("*" * 20)

    print(sess.run(tf.argmax(c, 0)))
    print("*" * 20)

    print(sess.run(tf.argmax(c, 1)))
    print("*" * 20)

    print(sess.run(tf.argmax(c, 2)))
    print("*" * 20)

# 输出结果:
# 
# [[[ 1  2  3]
#   [ 2  3  5]
#   [ 2  2  2]]
# 
#  [[ 5  4  3]
#   [ 8  7  2]
#   [ 1  2  3]]
# 
#  [[ 5  4  6]
#   [10  7 30]
#   [ 1  2  3]]]
# ********************
# [[1 1 2]
#  [2 1 2]
#  [0 0 1]]
# ********************
# [[1 1 1]
#  [1 1 0]
#  [1 1 1]]
# ********************
# [[2 2 0]
#  [0 0 2]
#  [2 2 2]]
# ********************

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值