Keras 在Tensorflow序列API中使用albumentation

Keras 在Tensorflow序列API中使用albumentation,keras,deep-learning,tensorflow2.0,albumentations,Keras,Deep Learning,Tensorflow2.0,Albumentations,我正在尝试使用tf.keras.utils.Sequence对象作为keras模型的输入,以便使用albumentations库应用tensorflow中不可用的增强。但这样做时我会出错。(这里提到的图像预处理操作只是为了清晰起见) 我得到的错误是 17/748 [..............................] - ETA: 1:06 - loss: 0.4304 - accuracy: 0.92282020-07-08 13:25:47.751964: W tensorflo

我正在尝试使用tf.keras.utils.Sequence对象作为keras模型的输入,以便使用albumentations库应用tensorflow中不可用的增强。但这样做时我会出错。(这里提到的图像预处理操作只是为了清晰起见)

我得到的错误是

 17/748 [..............................] - ETA: 1:06 - loss: 0.4304 - accuracy: 0.92282020-07-08 13:25:47.751964: W tensorflow/core/framework/op_kernel.cc:1741] Invalid argument: ValueError: could not broadcast input array from shape (256,256,3) into shape (256,256)
Traceback (most recent call last):

  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\ops\script_ops.py", line 243, in __call__
    ret = func(*args)

  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\autograph\impl\api.py", line 309, in wrapper
    return func(*args, **kwargs)

  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\data\ops\dataset_ops.py", line 785, in generator_py_func
    values = next(generator_state.get_iterator(iterator_id))

  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\keras\engine\data_adapter.py", line 801, in wrapped_generator
    for data in generator_fn():

  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\keras\engine\data_adapter.py", line 932, in generator_fn
    yield x[i]

  File "D:/ACAD/TENSORFLOW/Rough/data_aug_pipeline.py", line 40, in __getitem__
    a =  np.array([

ValueError: could not broadcast input array from shape (256,256,3) into shape (256,256)


Traceback (most recent call last):
  File "D:/ACAD/TENSORFLOW/Rough/data_aug_pipeline.py", line 89, in <module>
    model.fit(train_gen,epochs=100)
  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\keras\engine\training.py", line 66, in _method_wrapper
    return method(self, *args, **kwargs)
  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\keras\engine\training.py", line 848, in fit
    tmp_logs = train_function(iterator)
  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\eager\def_function.py", line 580, in __call__
    result = self._call(*args, **kwds)
  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\eager\def_function.py", line 611, in _call
    return self._stateless_fn(*args, **kwds)  # pylint: disable=not-callable
  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\eager\function.py", line 2420, in __call__
    return graph_function._filtered_call(args, kwargs)  # pylint: disable=protected-access
  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\eager\function.py", line 1661, in _filtered_call
    return self._call_flat(
  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\eager\function.py", line 1745, in _call_flat
    return self._build_call_outputs(self._inference_function.call(
  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\eager\function.py", line 593, in call
    outputs = execute.execute(
  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\eager\execute.py", line 59, in quick_execute
    tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
tensorflow.python.framework.errors_impl.InvalidArgumentError: 2 root error(s) found.
  (0) Invalid argument:  ValueError: could not broadcast input array from shape (256,256,3) into shape (256,256)
Traceback (most recent call last):

  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\ops\script_ops.py", line 243, in __call__
    ret = func(*args)

  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\autograph\impl\api.py", line 309, in wrapper
    return func(*args, **kwargs)

  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\data\ops\dataset_ops.py", line 785, in generator_py_func
    values = next(generator_state.get_iterator(iterator_id))

  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\keras\engine\data_adapter.py", line 801, in wrapped_generator
    for data in generator_fn():

  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\keras\engine\data_adapter.py", line 932, in generator_fn
    yield x[i]

  File "D:/ACAD/TENSORFLOW/Rough/data_aug_pipeline.py", line 40, in __getitem__
    a =  np.array([

ValueError: could not broadcast input array from shape (256,256,3) into shape (256,256)


     [[{{node PyFunc}}]]
     [[IteratorGetNext]]
     [[IteratorGetNext/_4]]
  (1) Invalid argument:  ValueError: could not broadcast input array from shape (256,256,3) into shape (256,256)
Traceback (most recent call last):

  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\ops\script_ops.py", line 243, in __call__
    ret = func(*args)

  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\autograph\impl\api.py", line 309, in wrapper
    return func(*args, **kwargs)

  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\data\ops\dataset_ops.py", line 785, in generator_py_func
    values = next(generator_state.get_iterator(iterator_id))

  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\keras\engine\data_adapter.py", line 801, in wrapped_generator
    for data in generator_fn():

  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\keras\engine\data_adapter.py", line 932, in generator_fn
    yield x[i]

  File "D:/ACAD/TENSORFLOW/Rough/data_aug_pipeline.py", line 40, in __getitem__
    a =  np.array([

ValueError: could not broadcast input array from shape (256,256,3) into shape (256,256)


     [[{{node PyFunc}}]]
     [[IteratorGetNext]]
0 successful operations.
0 derived errors ignored. [Op:__inference_train_function_1195]

Function call stack:
train_function -> train_function


Process finished with exit code 1
17/748[……]-ETA:1:06-损失:0.4304-精度:0.92282020-07-08 13:25:47.751964:W tensorflow/core/framework/op_kernel.cc:1741]无效参数:ValueError:无法将输入数组从形状(256256,3)广播到形状(256256)
回溯(最近一次呼叫最后一次):
文件“C:\Users\aksha\Anaconda3\envs\tf\lib\site packages\tensorflow\python\ops\script\u ops.py”,第243行,在调用中__
ret=func(*args)
文件“C:\Users\aksha\Anaconda3\envs\tf\lib\site packages\tensorflow\python\autograph\impl\api.py”,第309行,在包装器中
返回函数(*args,**kwargs)
文件“C:\Users\aksha\Anaconda3\envs\tf\lib\site packages\tensorflow\python\data\ops\dataset\u ops.py”,第785行,在generator\u py\u func中
values=next(生成器\状态.获取\迭代器(迭代器\ id))
文件“C:\Users\aksha\Anaconda3\envs\tf\lib\site packages\tensorflow\python\keras\engine\data\u adapter.py”,第801行,在包装的\u生成器中
对于生成器_fn()中的数据:
文件“C:\Users\aksha\Anaconda3\envs\tf\lib\site packages\tensorflow\python\keras\engine\data\u adapter.py”,第932行,位于生成器\u fn中
收益率x[i]
文件“D:/ACAD/TENSORFLOW/Rough/data_aug_pipeline.py”,第40行,在getitem中__
a=np.array([
ValueError:无法将输入数组从形状(256256,3)广播到形状(256256)
回溯(最近一次呼叫最后一次):
文件“D:/ACAD/TENSORFLOW/Rough/data_aug_pipeline.py”,第89行,in
模型拟合(列车生成,历次=100)
文件“C:\Users\aksha\Anaconda3\envs\tf\lib\site packages\tensorflow\python\keras\engine\training.py”,第66行,在方法包装中
返回方法(self、*args、**kwargs)
文件“C:\Users\aksha\Anaconda3\envs\tf\lib\site packages\tensorflow\python\keras\engine\training.py”,第848行
tmp_logs=训练函数(迭代器)
文件“C:\Users\aksha\Anaconda3\envs\tf\lib\site packages\tensorflow\python\eager\def_function.py”,第580行,在调用中__
结果=自身调用(*args,**kwds)
文件“C:\Users\aksha\Anaconda3\envs\tf\lib\site packages\tensorflow\python\eager\def\u function.py”,第611行,在调用中
返回self._无状态_fn(*args,**kwds)35; pylint:disable=不可调用
文件“C:\Users\aksha\Anaconda3\envs\tf\lib\site packages\tensorflow\python\eager\function.py”,第2420行,在调用中__
返回图形\函数。\过滤\调用(args,kwargs)\ pylint:disable=受保护的访问
文件“C:\Users\aksha\Anaconda3\envs\tf\lib\site packages\tensorflow\python\eager\function.py”,第1661行,在\u filtered\u调用中
返回自我。\你呼叫公寓(
文件“C:\Users\aksha\Anaconda3\envs\tf\lib\site packages\tensorflow\python\eager\function.py”,第1745行,位于调用平面中
返回self.\u构建\u调用\u输出(self.\u推断\u函数.call(
文件“C:\Users\aksha\Anaconda3\envs\tf\lib\site packages\tensorflow\python\eager\function.py”,第593行,在调用中
输出=execute.execute(
文件“C:\Users\aksha\Anaconda3\envs\tf\lib\site packages\tensorflow\python\eager\execute.py”,第59行,在quick\u execute中
张量=pywrap\u tfe.tfe\u Py\u Execute(ctx.\u句柄、设备名称、操作名称、,
tensorflow.python.framework.errors\u impl.InvalidArgumentError:找到2个根错误。
(0)无效参数:ValueError:无法将输入数组从形状(256256,3)广播到形状(256256)
回溯(最近一次呼叫最后一次):
文件“C:\Users\aksha\Anaconda3\envs\tf\lib\site packages\tensorflow\python\ops\script\u ops.py”,第243行,在调用中__
ret=func(*args)
文件“C:\Users\aksha\Anaconda3\envs\tf\lib\site packages\tensorflow\python\autograph\impl\api.py”,第309行,在包装器中
返回函数(*args,**kwargs)
文件“C:\Users\aksha\Anaconda3\envs\tf\lib\site packages\tensorflow\python\data\ops\dataset\u ops.py”,第785行,在generator\u py\u func中
values=next(生成器\状态.获取\迭代器(迭代器\ id))
文件“C:\Users\aksha\Anaconda3\envs\tf\lib\site packages\tensorflow\python\keras\engine\data\u adapter.py”,第801行,在包装的\u生成器中
对于生成器_fn()中的数据:
文件“C:\Users\aksha\Anaconda3\envs\tf\lib\site packages\tensorflow\python\keras\engine\data\u adapter.py”,第932行,位于生成器\u fn中
收益率x[i]
文件“D:/ACAD/TENSORFLOW/Rough/data_aug_pipeline.py”,第40行,在getitem中__
a=np.array([
ValueError:无法将输入数组从形状(256256,3)广播到形状(256256)
[{{node PyFunc}}]]
[[IteratorGetNext]]
[[IteratorGetNext/_4]]
(1) 无效参数:ValueError:无法将输入数组从形状(256256,3)广播到形状(256256)
回溯(最近一次呼叫最后一次):
文件“C:\Users\aksha\Anaconda3\envs\tf\lib\site packages\tensorflow\python\ops\script\u ops.py”,第243行,在调用中__
ret=func(*args)
文件“C:\Users\aksha\Anaconda3\envs\tf\lib\site packages\tensorflow\python\autograph\impl\api.py”,第309行,在包装器中
返回函数(*args,**kwargs)
文件“C:\Users\aksha\Anaconda3\envs\tf\lib\site packages\tensorflow\python\data\ops\dataset\u ops.py”,第785行,在generator\u py\u func中
values=next(生成器\状态.获取\迭代器(迭代器\ id))
文件“C:\Users\aksha\Anaconda3\envs\tf\lib\site packages\tensorflow\python\keras\engine\data\u adapter.py”,第801行,在包装的\u生成器中
对于生成器_fn()中的数据:
文件“C:\Users\aksha\Anaconda3\envs\tf\lib\site packages\tensorflow\python\keras\engine\data\u adapter.py”,第932行,位于生成器\u fn中
收益率x[i]
文件“D:/ACAD/TENSORFLOW/Rough/data_aug_pipeline.py”,第40行,在getitem中__
a=np.array([
ValueError:无法将输入数组从形状(256256,3)广播到形状(256256)
[{{node PyFunc}}]]
[[IteratorGetNext]]
0成功的操作。
忽略0个派生错误。[Op:\u推断\u trai
 17/748 [..............................] - ETA: 1:06 - loss: 0.4304 - accuracy: 0.92282020-07-08 13:25:47.751964: W tensorflow/core/framework/op_kernel.cc:1741] Invalid argument: ValueError: could not broadcast input array from shape (256,256,3) into shape (256,256)
Traceback (most recent call last):

  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\ops\script_ops.py", line 243, in __call__
    ret = func(*args)

  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\autograph\impl\api.py", line 309, in wrapper
    return func(*args, **kwargs)

  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\data\ops\dataset_ops.py", line 785, in generator_py_func
    values = next(generator_state.get_iterator(iterator_id))

  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\keras\engine\data_adapter.py", line 801, in wrapped_generator
    for data in generator_fn():

  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\keras\engine\data_adapter.py", line 932, in generator_fn
    yield x[i]

  File "D:/ACAD/TENSORFLOW/Rough/data_aug_pipeline.py", line 40, in __getitem__
    a =  np.array([

ValueError: could not broadcast input array from shape (256,256,3) into shape (256,256)


Traceback (most recent call last):
  File "D:/ACAD/TENSORFLOW/Rough/data_aug_pipeline.py", line 89, in <module>
    model.fit(train_gen,epochs=100)
  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\keras\engine\training.py", line 66, in _method_wrapper
    return method(self, *args, **kwargs)
  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\keras\engine\training.py", line 848, in fit
    tmp_logs = train_function(iterator)
  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\eager\def_function.py", line 580, in __call__
    result = self._call(*args, **kwds)
  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\eager\def_function.py", line 611, in _call
    return self._stateless_fn(*args, **kwds)  # pylint: disable=not-callable
  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\eager\function.py", line 2420, in __call__
    return graph_function._filtered_call(args, kwargs)  # pylint: disable=protected-access
  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\eager\function.py", line 1661, in _filtered_call
    return self._call_flat(
  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\eager\function.py", line 1745, in _call_flat
    return self._build_call_outputs(self._inference_function.call(
  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\eager\function.py", line 593, in call
    outputs = execute.execute(
  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\eager\execute.py", line 59, in quick_execute
    tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
tensorflow.python.framework.errors_impl.InvalidArgumentError: 2 root error(s) found.
  (0) Invalid argument:  ValueError: could not broadcast input array from shape (256,256,3) into shape (256,256)
Traceback (most recent call last):

  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\ops\script_ops.py", line 243, in __call__
    ret = func(*args)

  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\autograph\impl\api.py", line 309, in wrapper
    return func(*args, **kwargs)

  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\data\ops\dataset_ops.py", line 785, in generator_py_func
    values = next(generator_state.get_iterator(iterator_id))

  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\keras\engine\data_adapter.py", line 801, in wrapped_generator
    for data in generator_fn():

  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\keras\engine\data_adapter.py", line 932, in generator_fn
    yield x[i]

  File "D:/ACAD/TENSORFLOW/Rough/data_aug_pipeline.py", line 40, in __getitem__
    a =  np.array([

ValueError: could not broadcast input array from shape (256,256,3) into shape (256,256)


     [[{{node PyFunc}}]]
     [[IteratorGetNext]]
     [[IteratorGetNext/_4]]
  (1) Invalid argument:  ValueError: could not broadcast input array from shape (256,256,3) into shape (256,256)
Traceback (most recent call last):

  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\ops\script_ops.py", line 243, in __call__
    ret = func(*args)

  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\autograph\impl\api.py", line 309, in wrapper
    return func(*args, **kwargs)

  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\data\ops\dataset_ops.py", line 785, in generator_py_func
    values = next(generator_state.get_iterator(iterator_id))

  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\keras\engine\data_adapter.py", line 801, in wrapped_generator
    for data in generator_fn():

  File "C:\Users\aksha\Anaconda3\envs\tf\lib\site-packages\tensorflow\python\keras\engine\data_adapter.py", line 932, in generator_fn
    yield x[i]

  File "D:/ACAD/TENSORFLOW/Rough/data_aug_pipeline.py", line 40, in __getitem__
    a =  np.array([

ValueError: could not broadcast input array from shape (256,256,3) into shape (256,256)


     [[{{node PyFunc}}]]
     [[IteratorGetNext]]
0 successful operations.
0 derived errors ignored. [Op:__inference_train_function_1195]

Function call stack:
train_function -> train_function


Process finished with exit code 1