tf.argmax()解析

tf.argmax(input,axis)根据axis取值的不同返回每行或者每列最大值的索引。 这个很好理解,只是tf.argmax()的参数让人有些迷惑,比如,tf.argmax(array, 1)和tf.argmax(array, 0)有啥区别呢? 这里面就涉及到一个概念:axis。上面例子中的1和0就是axis。我先笼统的解释这个问题,设置axis的主要原因是方便我们进行多个维度的计算。

比如:

test = np.array([
[1, 2, 3],
 [2, 3, 4], 
 [5, 4, 3], 
 [8, 7, 2]])
np.argmax(test, 0)   #输出:array([3, 3, 1]
np.argmax(test, 1)   #输出:array([2, 2, 0, 0]
  • axis = 0:
      axis=0时比较每一列的元素,将每一列最大元素所在的索引记录下来,最后输出每一列最大元素所在的索引数组。
test[0] = array([1, 2, 3])
test[1] = array([2, 3, 4])
test[2] = array([5, 4, 3])
test[3] = array([8, 7, 2])
# output   :    [3, 3, 1]      
  • axis = 1:
      axis=1的时候,将每一行最大元素所在的索引记录下来,最后返回每一行最大元素所在的索引数组。
test[0] = array([1, 2, 3])  #2
test[1] = array([2, 3, 4])  #2
test[2] = array([5, 4, 3])  #0
test[3] = array([8, 7, 2])  #0

这是里面都是数组长度一致的情况,如果不一致,axis最大值为最小的数组长度-1,超过则报错。 当不一致的时候,axis=0的比较也就变成了每个数组的和的比较。
在这里插入图片描述
这个时候axis不能为1

  • 贴一下官方的例子
    在这里插入图片描述

参考文档
tf.argmax的使用
tf.argmax()以及axis解析

  • 74
    点赞
  • 217
    收藏
    觉得还不错? 一键收藏
  • 18
    评论
要对输入的图片进行目标识别,可以按照以下步骤进行: 1. 首先,确保你已经安装了 TensorFlow 和 Keras 库,并导入它们: ```python import tensorflow as tf from tensorflow import keras ``` 2. 加载预训练的模型: ```python model = tf.keras.models.load_model('model_cnnfzc.h5') ``` 确保模型文件 `model_cnnfzc.h5` 存在于当前工作目录中。 3. 加载并预处理输入的图片: ```python image = tf.keras.preprocessing.image.load_img('input_image.jpg', target_size=(32, 32)) image = tf.keras.preprocessing.image.img_to_array(image) image = image / 255.0 # 归一化像素值到 0-1 范围 image = tf.expand_dims(image, axis=0) # 添加一维作为批处理维度 ``` 请将 `'input_image.jpg'` 替换为你要进行目标识别的图片路径。 4. 进行目标识别推理: ```python predictions = model.predict(image) ``` 5. 对预测结果进行解析: ```python class_names = ['标志1', '标志2', '标志3', ...] # 替换为你的标志类别列表 predicted_class_index = tf.argmax(predictions, axis=1)[0] predicted_class_name = class_names[predicted_class_index] ``` 确保 `class_names` 列表与模型训练时使用的类别顺序一致。 现在,`predicted_class_name` 就是预测出的目标标志类别名称。 请注意,以上代码仅提供了一个基本的框架,具体的实现细节可能因你的模型和数据而有所不同。你可能需要根据你的模型结构和数据预处理方式进行适当的修改。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值