Kaggle踩坑指南--2.Function call stack: distributed_function->distributed_function

在训练模型model.fit的时候报错了,直接上图
在这里插入图片描述
其实这里有两个问题,一个是NotFundError, 一个是Function call stack。 但是,一般会直接在意最后一个,而忽略第一个。

一、 Function call stack

请教了大神**@日月光华**,设置GPU显存按需申请

import tensorflow as tf
gpu = tf.config.experimental.list_physical_devices(device_type='GPU')
assert len(gpu) == 1
tf.config.experimental.set_memory_growth(gpu[0], True)

二、 NotFundError:Tensor(“arg_0:0”, shape=(), dtype=string); No such file or directory

其实,在大神回答我之前,我把第二个问题解决了以后,第一个问题直接就消失了。。。然后我看到有的小伙伴出现了第一个问题的同时,上面其实也有其他的问题,所以我觉得解决第二个问题上出现的问题才是重点。

很明显,我这里是由于dataset内部数据错误导致的,需要重头开始查看在哪里数据读取出现的问题。
我的思路如下:

1> 查看是否每个路径都是准确的路径

e.g. 我之前读取jpg图像路径直接采用

 images = glob.glob('./data/cats/*')

因为大致略看了路径直接认为里面都是图像,但实际读取的时候里面可能包含其他的文件,所以最好是做到准确:

 glob.glob('./data/cats/*.jpg')
2> 路径是否去掉了PosixPath

输出路径看是否前面有其他标识,如
在这里插入图片描述
若有,则整体转化为str

train_images= [str(path) for path in train_images]
3> 数据是否真正的读取到了

对于图像数据,可以用以下代码读取数据,并显示图片

import random
import IPython.display as display
for n in range(3):
    image_index = random.choice(range(len(train_images)))
    display.display(display.Image(all_image_paths[image_index]))
4> 构建tensor时是否正确

这里以Kaggle踩坑指南–1. 数据集的读取和图像预处理如下构建方式为例

import tensorflow as tf
def _pre_read(img_filename, label):
    image = tf.io.read_file(img_filename)
    image = tf.image.decode_jpeg(image,channels=3)
    image = tf.image.rgb_to_grayscale(image)
    image = tf.image.resize(image,[200,200])
    image = tf.reshape(image,[200,200,1])
    image = tf.image.per_image_standardization(image) #或者:image = image/255
    label = tf.reshape(label,[1])
    return image, label
    
BATCH_SIZE = 32
train_dataset = tf.data.Dataset.from_tensor_slices((train_images,train_labels)) #这里的train_images是图像路径
#在notebook中可以直接在下方新建cell中输入train_dataset 查看是否构建正确
train_dataset = train_dataset.map(_pre_read)
train_dataset = train_dataset.shuffle(300)
train_dataset = train_dataset.repeat()
train_dataset = train_dataset.batch(BATCH_SIZE)

当然,以上主要针对个人的代码,我的问题出现在了1>和4>中。
经验就是,大不了全部输入dataset都查看一下,看是哪一个读取数据或者转数据格式出了问题

  • 10
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值