简体   繁体   中英

ArgumentError: Value for attr 'T' of uint8 is not in the list of allowed values: half, bfloat16, float, double, int32

Traceback (most recent call last):
  File "C:\Users\letuyen\Downloads\u2net-tensorflow-master\u2net-tensorflow-master\test.py", line 14, in <module>
    out = u2net(im)
  File "C:\Users\letuyen\AppData\Local\Programs\Python\Python39\lib\site-packages\tensorflow\python\keras\engine\base_layer.py", line 1030, in __call__
    outputs = call_fn(inputs, *args, **kwargs)
  File "C:\Users\letuyen\Downloads\u2net-tensorflow-master\u2net-tensorflow-master\model\u2net.py", line 367, in call
    hx1 = self.stage1(hx)
  File "C:\Users\letuyen\AppData\Local\Programs\Python\Python39\lib\site-packages\tensorflow\python\keras\engine\base_layer.py", line 1030, in __call__
    outputs = call_fn(inputs, *args, **kwargs)
  File "C:\Users\letuyen\Downloads\u2net-tensorflow-master\u2net-tensorflow-master\model\u2net.py", line 77, in call
    hxin = self.conv_b0(hx)
  File "C:\Users\letuyen\AppData\Local\Programs\Python\Python39\lib\site-packages\tensorflow\python\keras\engine\base_layer.py", line 1030, in __call__
    outputs = call_fn(inputs, *args, **kwargs)
  File "C:\Users\letuyen\Downloads\u2net-tensorflow-master\u2net-tensorflow-master\model\u2net.py", line 33, in call
    x = self.conv(hx)
  File "C:\Users\letuyen\AppData\Local\Programs\Python\Python39\lib\site-packages\tensorflow\python\keras\engine\base_layer.py", line 1030, in __call__
    outputs = call_fn(inputs, *args, **kwargs)
  File "C:\Users\letuyen\AppData\Local\Programs\Python\Python39\lib\site-packages\tensorflow\python\keras\layers\convolutional.py", line 249, in call
    outputs = self._convolution_op(inputs, self.kernel)
  File "C:\Users\letuyen\AppData\Local\Programs\Python\Python39\lib\site-packages\tensorflow\python\util\dispatch.py", line 206, in wrapper
    return target(*args, **kwargs)
  File "C:\Users\letuyen\AppData\Local\Programs\Python\Python39\lib\site-packages\tensorflow\python\ops\nn_ops.py", line 1012, in convolution_v2
    return convolution_internal(
  File "C:\Users\letuyen\AppData\Local\Programs\Python\Python39\lib\site-packages\tensorflow\python\ops\nn_ops.py", line 1142, in convolution_internal
    return op(
  File "C:\Users\letuyen\AppData\Local\Programs\Python\Python39\lib\site-packages\tensorflow\python\ops\nn_ops.py", line 2596, in _conv2d_expanded_batch
    return gen_nn_ops.conv2d(
  File "C:\Users\letuyen\AppData\Local\Programs\Python\Python39\lib\site-packages\tensorflow\python\ops\gen_nn_ops.py", line 931, in conv2d
    _ops.raise_from_not_ok_status(e, name)
  File "C:\Users\letuyen\AppData\Local\Programs\Python\Python39\lib\site-packages\tensorflow\python\framework\ops.py", line 6897, in raise_from_not_ok_status
    six.raise_from(core._status_to_exception(e.code, message), None)
  File "<string>", line 3, in raise_from
tensorflow.python.framework.errors_impl.InvalidArgumentError: Value for attr 'T' of uint8 is not in the list of allowed values: half, bfloat16, float, double, int32
    ; NodeDef: {{node Conv2D}}; Op<name=Conv2D; signature=input:T, filter:T -> output:T; attr=T:type,allowed=[DT_HALF, DT_BFLOAT16, DT_FLOAT, DT_DOUBLE, DT_INT32]; attr=strides:list(int); attr=use_cudnn_on_gpu:bool,default=true; attr=padding:string,allowed=["SAME", "VALID", "EXPLICIT"]; attr=explicit_paddings:list(int),default=[]; attr=data_format:string,default="NHWC",allowed=["NHWC", "NCHW"]; attr=dilations:list(int),default=[1, 1, 1, 1]> [Op:Conv2D]

正如 furas 所说,您可能正在传递数据类型为 uint8 的输入,这些输入是 0 到 255 之间的整数。尝试将您的输入除以 255.0(将您的输入保持在 [0, 1] 或 [-1, 1] 之间通常会导致更可靠的培训)并转换为 float32 以查看它是否有任何改变。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM