TensorFlow-ValueError: ‘images‘ contains no shape

一、问题背景

用下面的代码做数据预处理的时候,出现了错误【ValueError: 'images' contains no shape】。

# 图片文件的读取以及预处理
def _decode_and_resize(filename, label=None):
    img_string = tf.io.read_file(filename)
    img_decoded = tf.image.decode_image(img_string)
    img_resized = tf.image.resize(img_decoded, resized_img_shape) / 255.
    if label == None:
        return img_resized
    return img_resized, label

# 根据训练集、测试集的路径集合、标签集合来生成可用来训练、预测的dataset
def processData(filenames, labels=None, trainmode=True):
    if trainmode:
        train_dataset = tf.data.Dataset.from_tensor_slices((filenames, labels))
        train_dataset = train_dataset.map(map_func=_decode_and_resize)
        # train_dataset = train_dataset.shuffle(buffer_size=25000) # 非常耗内存,不使用
        train_dataset = train_dataset.batch(batch_size)
        train_dataset = train_dataset.prefetch(buffer_size=tf.data.experimental.AUTOTUNE)
        return train_dataset
    else:
        test_dataset = tf.data.Datase
Traceback (most recent call last): File "C:\Users\dell\Desktop\实训作业\图片风格转化\main.py", line 6, in <module> from model import cyclegan File "C:\Users\dell\Desktop\实训作业\图片风格转化\model.py", line 186, in <module> train(noise_size, [-1, 28, 28, 1], batch_size, n_samples) File "C:\Users\dell\Desktop\实训作业\图片风格转化\model.py", line 167, in train g_loss, d_loss = train_step(batch_images) File "C:\Users\dell\.conda\envs\tensorflow\lib\site-packages\tensorflow\python\util\traceback_utils.py", line 153, in error_handler raise e.with_traceback(filtered_tb) from None File "C:\Users\dell\AppData\Local\Temp\__autograph_generated_filezkp164kw.py", line 25, in tf__train_step ag__.converted_call(ag__.ld(d_opt).apply_gradients, (ag__.converted_call(ag__.ld(zip), (ag__.ld(gradients_of_discriminator), ag__.ld(discriminator).trainable_variables), None, fscope),), None, fscope) File "C:\Users\dell\.conda\envs\tensorflow\lib\site-packages\keras\optimizers\optimizer_v2\optimizer_v2.py", line 689, in apply_gradients grads_and_vars = optimizer_utils.filter_empty_gradients(grads_and_vars) File "C:\Users\dell\.conda\envs\tensorflow\lib\site-packages\keras\optimizers\optimizer_v2\utils.py", line 77, in filter_empty_gradients raise ValueError( ValueError: in user code: File "C:\Users\dell\Desktop\实训作业\图片风格转化\model.py", line 160, in train_step * d_opt.apply_gradients(zip(gradients_of_discriminator, discriminator.trainable_variables)) File "C:\Users\dell\.conda\envs\tensorflow\lib\site-packages\keras\optimizers\optimizer_v2\optimizer_v2.py", line 689, in apply_gradients ** grads_and_vars = optimizer_utils.filter_empty_gradients(grads_and_vars) File "C:\Users\dell\.conda\envs\tensorflow\lib\site-packages\keras\optimizers\optimizer_v2\utils.py", line 77, in filter_empty_gradients raise ValueError( ValueError: No gradients provided for any variable: (['conv2d/kernel:0', 'conv2d/bias:0', 'conv2d_1/kernel:0', 'conv2d_1/bias:0', 'batch_normalization_3/gamma:0', 'batch_normalization_3/beta:0', 'conv2d_2/kernel:0', 'conv2d_2/bias:0', 'batch_normalization_4/gamma:0', 'batch_normalization_4/beta:0', 'dense_1/kernel:0', 'dense_1/bias:0'],). Provided `grads_and_vars` is ((None, <tf.Variable 'conv2d/kernel:0' shape=(3, 3, 1, 128) dtype=float32>), (None, <tf.Variable 'conv2d/bias:0' shape=(128,) dtype=float32>), (None, <tf.Variable 'conv2d_1/kernel:0' shape=(3, 3, 128, 256) dtype=float32>), (None, <tf.Variable 'conv2d_1/bias:0' shape=(256,) dtype=float32>), (None, <tf.Variable 'batch_normalization_3/gamma:0' shape=(256,) dtype=float32>), (None, <tf.Variable 'batch_normalization_3/beta:0' shape=(256,) dtype=float32>), (None, <tf.Variable 'conv2d_2/kernel:0' shape=(3, 3, 256, 512) dtype=float32>), (None, <tf.Variable 'conv2d_2/bias:0' shape=(512,) dtype=float32>), (None, <tf.Variable 'batch_normalization_4/gamma:0' shape=(512,) dtype=float32>), (None, <tf.Variable 'batch_normalization_4/beta:0' shape=(512,) dtype=float32>), (None, <tf.Variable 'dense_1/kernel:0' shape=(8192, 1) dtype=float32>), (None, <tf.Variable 'dense_1/bias:0' shape=(1,) dtype=float32>)). Process finished with exit code 1
05-14
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值