AttributeError: 'Tensor' object has no attribute 'numpy' while mapping a function through my dataset
AttributeError: 'Tensor' object has no attribute 'numpy' while mapping a function through my dataset
我正在尝试将函数 process_image
映射到数据集。此函数调用另一个函数 get_label
。在 get_label
中,我正在尝试从图像中检索标签的名称。
文件路径是这样的:C:\Users\sis\Desktop\test\0002_c1s1_000451_03.jpg
。标签是数字 0002
.
def get_lab(file_path):
parts = tf.strings.split(file_path, os.path.sep)
part=parts[-1].numpy().decode().split('_')[0]
label=tf.strings.to_number(part)
return label
您可以申请创建足以供外部程序使用的文件夹名称。
[样本]:
import os
import tensorflow as tf
def get_lab(file_path):
parts = tf.strings.split(file_path, os.path.sep)
part=parts[-2].numpy().decode().split('.')[0]
label=tf.strings.to_number(part)
return label.numpy()
directory = "F:\datasets\downloads\Actors\train\Candidt Kibt\01.tif\"
print( 'label as number: ' + str(get_lab( directory )) )
directory = "F:\datasets\downloads\Actors\train\"
print( 'classname: ' + str(tf.io.gfile.listdir(
directory
))
)
[输出]:
label as number: 1.0
classname: ['Candidt Kibt', 'Pikaploy']
F:\temp\Python>
我解决了!没看懂到底哪里出错了,我觉得之前的代码混合了eager模式和graph模式,所以我改了get_label
函数的代码就成功了!
def get_lab(file_path):
parts = tf.strings.split(file_path, os.path.sep)[-1]
part=tf.strings.split(parts, sep='_')[0]
print(part)
label=tf.strings.to_number(part)
return label
我正在尝试将函数 process_image
映射到数据集。此函数调用另一个函数 get_label
。在 get_label
中,我正在尝试从图像中检索标签的名称。
文件路径是这样的:C:\Users\sis\Desktop\test\0002_c1s1_000451_03.jpg
。标签是数字 0002
.
def get_lab(file_path):
parts = tf.strings.split(file_path, os.path.sep)
part=parts[-1].numpy().decode().split('_')[0]
label=tf.strings.to_number(part)
return label
您可以申请创建足以供外部程序使用的文件夹名称。
[样本]:
import os
import tensorflow as tf
def get_lab(file_path):
parts = tf.strings.split(file_path, os.path.sep)
part=parts[-2].numpy().decode().split('.')[0]
label=tf.strings.to_number(part)
return label.numpy()
directory = "F:\datasets\downloads\Actors\train\Candidt Kibt\01.tif\"
print( 'label as number: ' + str(get_lab( directory )) )
directory = "F:\datasets\downloads\Actors\train\"
print( 'classname: ' + str(tf.io.gfile.listdir(
directory
))
)
[输出]:
label as number: 1.0
classname: ['Candidt Kibt', 'Pikaploy']
F:\temp\Python>
我解决了!没看懂到底哪里出错了,我觉得之前的代码混合了eager模式和graph模式,所以我改了get_label
函数的代码就成功了!
def get_lab(file_path):
parts = tf.strings.split(file_path, os.path.sep)[-1]
part=tf.strings.split(parts, sep='_')[0]
print(part)
label=tf.strings.to_number(part)
return label