Hello everyone,
I'm currently trying to import a 1D CNN from Tensorflow using Mbed. In particular, I have data from six different sensors stored as follow:
input_data[150][6] = { {x1, y1, z1, x2, y2, z2}, {x1, y1, z1, x2, y2, z2}, {x1, y1, z1, x2, y2, z2}, ... }
so basically, in each batch, I have 150 timesteps, and in each timestep I have six values (channels).
In my C++ code I created a new input Tensor as follow:
Tensor input = new RomTensor({1, 150, 6}, flt, input_data);
The problem is, when I try to compile the application I get the following errors:
Compile [ 5.0%]: main.cpp
[Warning] quantizationPrimitives.hpp@24,35: type qualifiers ignored on function return type [-Wignored-qualifiers]
[Warning] utensor_string.hpp@15,23: comparison between signed and unsigned integer expressions [-Wsign-compare]
[Warning] Convolution.hpp@29,33: type qualifiers ignored on function return type [-Wignored-qualifiers]
[Warning] Convolution.hpp@30,32: type qualifiers ignored on function return type [-Wignored-qualifiers]
[Warning] Convolution.hpp@31,38: type qualifiers ignored on function return type [-Wignored-qualifiers]
[Warning] Convolution.hpp@32,39: type qualifiers ignored on function return type [-Wignored-qualifiers]
[Warning] Convolution.hpp@49,33: type qualifiers ignored on function return type [-Wignored-qualifiers]
[Warning] Convolution.hpp@50,32: type qualifiers ignored on function return type [-Wignored-qualifiers]
[Warning] Convolution.hpp@51,38: type qualifiers ignored on function return type [-Wignored-qualifiers]
[Warning] Convolution.hpp@52,39: type qualifiers ignored on function return type [-Wignored-qualifiers]
[Warning] Convolution.hpp@69,33: type qualifiers ignored on function return type [-Wignored-qualifiers]
[Warning] Convolution.hpp@70,32: type qualifiers ignored on function return type [-Wignored-qualifiers]
[Warning] Convolution.hpp@71,38: type qualifiers ignored on function return type [-Wignored-qualifiers]
[Warning] Convolution.hpp@72,39: type qualifiers ignored on function return type [-Wignored-qualifiers]
[Warning] Convolution.hpp@91,33: type qualifiers ignored on function return type [-Wignored-qualifiers]
[Warning] Convolution.hpp@92,32: type qualifiers ignored on function return type [-Wignored-qualifiers]
[Warning] Convolution.hpp@93,38: type qualifiers ignored on function return type [-Wignored-qualifiers]
[Warning] Convolution.hpp@94,39: type qualifiers ignored on function return type [-Wignored-qualifiers]
[Warning] main.cpp@179,43: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
[Warning] main.cpp@375,20: comparison between signed and unsigned integer expressions [-Wsign-compare]
[Warning] Matrix_kernels.hpp@44,22: unused variable 'input_shape' [-Wunused-variable]
[Warning] Matrix_kernels.hpp@44,22: unused variable 'input_shape' [-Wunused-variable]
[Warning] TensorMap.hpp@41,9: unused variable 'i' [-Wunused-variable]
[Warning] TensorMap.hpp@87,23: comparison between signed and unsigned integer expressions [-Wsign-compare]
[Warning] arenaAllocator.hpp@229,12: comparison between signed and unsigned integer expressions [-Wsign-compare]
[Warning] arenaAllocator.hpp@229,12: comparison between signed and unsigned integer expressions [-Wsign-compare]
[Error] Convolution_kernels.hpp@104,49: conversion from 'int' to 'IntegralValue' is ambiguous
[Warning] Convolution_kernels.hpp@23,17: unused variable 'out_depth' [-Wunused-variable]
[Error] Convolution_kernels.hpp@104,49: conversion from 'int' to 'IntegralValue' is ambiguous
[Warning] Convolution_kernels.hpp@23,17: unused variable 'out_depth' [-Wunused-variable]
[ERROR] In file included from ./uTensor/src/uTensor/core/tensorBase.hpp:3:0,
from ./uTensor/src/uTensor/core/tensor.hpp:5,
from ./uTensor/src/uTensor/core/TensorMap.hpp:7,
from ./uTensor/src/uTensor/core/modelBase.hpp:3,
from ./uTensor/src/uTensor.h:6,
from .\models/my_model/my_model.hpp:4,
from .\main.cpp:24:
./uTensor/src/uTensor/core/quantizationPrimitives.hpp:24:35: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
inline const int num_channels() const { return _num_channels; };
^~~~~
In file included from ./uTensor/src/uTensor/core/tensor.hpp:6:0,
from ./uTensor/src/uTensor/core/TensorMap.hpp:7,
from ./uTensor/src/uTensor/core/modelBase.hpp:3,
from ./uTensor/src/uTensor.h:6,
from .\models/my_model/my_model.hpp:4,
from .\main.cpp:24:
./uTensor/src/uTensor/core/utensor_string.hpp: In member function 'uint32_t uTensor::string::hash(const char*)':
./uTensor/src/uTensor/core/utensor_string.hpp:15:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int i = 0; i < strlen(c); i++) {
~~^~~~~~~~~~~
In file included from ./uTensor/src/uTensor.h:21:0,
from .\models/my_model/my_model.hpp:4,
from .\main.cpp:24:
./uTensor/src/uTensor/ops/Convolution.hpp: At global scope:
./uTensor/src/uTensor/ops/Convolution.hpp:29:33: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
inline const int16_t height() const { return filter->get_shape()[1]; }
^~~~~
./uTensor/src/uTensor/ops/Convolution.hpp:30:32: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
inline const int16_t width() const { return filter->get_shape()[2]; }
^~~~~
./uTensor/src/uTensor/ops/Convolution.hpp:31:38: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
inline const int16_t in_channels() const { return filter->get_shape()[3]; }
^~~~~
./uTensor/src/uTensor/ops/Convolution.hpp:32:39: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
inline const int16_t out_channels() const { return filter->get_shape()[0]; }
^~~~~
./uTensor/src/uTensor/ops/Convolution.hpp:49:33: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
inline const int16_t height() const { return h; }
^~~~~
./uTensor/src/uTensor/ops/Convolution.hpp:50:32: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
inline const int16_t width() const { return w; }
^~~~~
./uTensor/src/uTensor/ops/Convolution.hpp:51:38: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
inline const int16_t in_channels() const { return 1; }
^~~~~
./uTensor/src/uTensor/ops/Convolution.hpp:52:39: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
inline const int16_t out_channels() const { return c; }
^~~~~
./uTensor/src/uTensor/ops/Convolution.hpp:69:33: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
inline const int16_t height() const { return h; }
^~~~~
./uTensor/src/uTensor/ops/Convolution.hpp:70:32: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
inline const int16_t width() const { return w; }
^~~~~
./uTensor/src/uTensor/ops/Convolution.hpp:71:38: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
inline const int16_t in_channels() const { return 1; }
^~~~~
./uTensor/src/uTensor/ops/Convolution.hpp:72:39: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
inline const int16_t out_channels() const { return c; }
^~~~~
./uTensor/src/uTensor/ops/Convolution.hpp:91:33: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
inline const int16_t height() const { return h; }
^~~~~
./uTensor/src/uTensor/ops/Convolution.hpp:92:32: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
inline const int16_t width() const { return w; }
^~~~~
./uTensor/src/uTensor/ops/Convolution.hpp:93:38: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
inline const int16_t in_channels() const { return 1; }
^~~~~
./uTensor/src/uTensor/ops/Convolution.hpp:94:39: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
inline const int16_t out_channels() const { return c; }
^~~~~
.\main.cpp: In function 'void init()':
.\main.cpp:179:43: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
print_text("Initializing", 10, 59, 76, 15);
^
.\main.cpp: In function 'void set_activity(const uTensor::Tensor&)':
.\main.cpp:375:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int i = 0; i < num_elems; i++)
~~^~~~~~~~~~~
In file included from ./uTensor/src/uTensor/ops/Matrix.hpp:6:0,
from ./uTensor/src/uTensor.h:22,
from .\models/my_model/my_model.hpp:4,
from .\main.cpp:24:
./uTensor/src/uTensor/ops/Matrix_kernels.hpp: In instantiation of 'void uTensor::matrix_mult_kernel_v2(uTensor::Tensor&, const uTensor::Tensor&, const uTensor::Tensor&, Bias, uTensor::Fuseable::Activation) [with T = float; Bias = uTensor::ReferenceOperators::MatrixMultOperatorV2::wBias; uTensor::Fuseable::Activation = std::function<float(float)>]':
./uTensor/src/uTensor/ops/Matrix.hpp:75:55: required from here
./uTensor/src/uTensor/ops/Matrix_kernels.hpp:44:22: warning: unused variable 'input_shape' [-Wunused-variable]
const TensorShape& input_shape = input->get_shape();
^~~~~~~~~~~
./uTensor/src/uTensor/ops/Matrix_kernels.hpp: In instantiation of 'void uTensor::matrix_mult_kernel_v2(uTensor::Tensor&, const uTensor::Tensor&, const uTensor::Tensor&, Bias, uTensor::Fuseable::Activation) [with T = float; Bias = uTensor::ReferenceOperators::MatrixMultOperatorV2::NoBias; uTensor::Fuseable::Activation = std::function<float(float)>]':
./uTensor/src/uTensor/ops/Matrix.hpp:80:56: required from here
./uTensor/src/uTensor/ops/Matrix_kernels.hpp:44:22: warning: unused variable 'input_shape' [-Wunused-variable]
In file included from ./uTensor/src/uTensor/core/modelBase.hpp:3:0,
from ./uTensor/src/uTensor.h:6,
from .\models/my_model/my_model.hpp:4,
from .\main.cpp:24:
./uTensor/src/uTensor/core/TensorMap.hpp: In instantiation of 'uTensor::FixedTensorMap::FixedTensorMap(std::initializer_listuTensor::SimpleNamedTensor) [with unsigned int size = 1u]':
.\main.cpp:343:47: required from here
./uTensor/src/uTensor/core/TensorMap.hpp:41:9: warning: unused variable 'i' [-Wunused-variable]
int i = 0;
^
./uTensor/src/uTensor/core/TensorMap.hpp: In instantiation of 'uTensor::FixedTensorMap& uTensor::FixedTensorMap::operator=(const uTensor::FixedTensorMap&) [with unsigned int size = 1u]':
./uTensor/src/uTensor/core/modelBase.hpp:46:12: required from 'uTensor::ModelInterface<num_inputs, num_outputs>& uTensor::ModelInterface<num_inputs, num_outputs>::set_inputs(uTensor::FixedTensorMap<num_inputs>&&) [with unsigned int num_inputs = 1u; unsigned int num_outputs = 1u]'
.\main.cpp:343:47: required from here
./uTensor/src/uTensor/core/TensorMap.hpp:87:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int i = 0; i < size; i++) _map[i] = that._map[i];
~~^~~~~~
In file included from ./uTensor/src/uTensor.h:12:0,
from .\models/my_model/my_model.hpp:4,
from .\main.cpp:24:
./uTensor/src/uTensor/allocators/arenaAllocator.hpp: In instantiation of 'void* uTensor::localCircularArenaAllocator<size, T>::_allocate(size_t) [with unsigned int size = 1920u; T = short unsigned int; size_t = unsigned int]':
.\main.cpp:543:1: required from here
./uTensor/src/uTensor/allocators/arenaAllocator.hpp:229:12: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (sz > (end() - reinterpret_cast<uint8_t*>(cursor))){
~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./uTensor/src/uTensor/allocators/arenaAllocator.hpp: In instantiation of 'void* uTensor::localCircularArenaAllocator<size, T>::_allocate(size_t) [with unsigned int size = 7736u; T = short unsigned int; size_t = unsigned int]':
.\main.cpp:543:1: required from here
./uTensor/src/uTensor/allocators/arenaAllocator.hpp:229:12: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
In file included from ./uTensor/src/uTensor/ops/Convolution.hpp:6:0,
from ./uTensor/src/uTensor.h:21,
from .\models/my_model/my_model.hpp:4,
from .\main.cpp:24:
./uTensor/src/uTensor/ops/Convolution_kernels.hpp: In instantiation of 'void uTensor::generic_convolution_kernel(uTensor::Tensor&, const uTensor::Tensor&, Filter, Bias, uTensor::Padding, const uint16_t (&)[4]) [with T = signed char; Filter = uTensor::ReferenceOperators::ConvFilter; Bias = uTensor::ReferenceOperators::wBias; uint16_t = short unsigned int]':
./uTensor/src/uTensor/ops/Convolution.hpp:132:51: required from 'void uTensor::ReferenceOperators::Conv2dOperator::compute() [with T = signed char]'
.\main.cpp:543:1: required from here
./uTensor/src/uTensor/ops/Convolution_kernels.hpp:104:49: error: conversion from 'int' to 'IntegralValue' is ambiguous
out(batch, out_y, out_x, out_channel) = filter.finalize() + bias(out_channel);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./uTensor/src/uTensor/core/quantizationPrimitives.hpp:3:0,
from ./uTensor/src/uTensor/core/tensorBase.hpp:3,
from ./uTensor/src/uTensor/core/tensor.hpp:5,
from ./uTensor/src/uTensor/core/TensorMap.hpp:7,
from ./uTensor/src/uTensor/core/modelBase.hpp:3,
from ./uTensor/src/uTensor.h:6,
from .\models/my_model/my_model.hpp:4,
from .\main.cpp:24:
./uTensor/src/uTensor/core/types.hpp:102:3: note: candidate: IntegralValue::IntegralValue(float&&)
IntegralValue(float&& u);
^~~~~~~~~~~~~
./uTensor/src/uTensor/core/types.hpp:101:3: note: candidate: IntegralValue::IntegralValue(int32_t&&)
IntegralValue(int32_t&& u);
^~~~~~~~~~~~~
./uTensor/src/uTensor/core/types.hpp:100:3: note: candidate: IntegralValue::IntegralValue(uint32_t&&)
IntegralValue(uint32_t&& u);
^~~~~~~~~~~~~
./uTensor/src/uTensor/core/types.hpp:99:3: note: candidate: IntegralValue::IntegralValue(int16_t&&)
IntegralValue(int16_t&& u);
^~~~~~~~~~~~~
./uTensor/src/uTensor/core/types.hpp:98:3: note: candidate: IntegralValue::IntegralValue(uint16_t&&)
IntegralValue(uint16_t&& u);
^~~~~~~~~~~~~
./uTensor/src/uTensor/core/types.hpp:97:3: note: candidate: IntegralValue::IntegralValue(int8_t&&)
IntegralValue(int8_t&& u);
^~~~~~~~~~~~~
./uTensor/src/uTensor/core/types.hpp:96:3: note: candidate: IntegralValue::IntegralValue(uint8_t&&)
IntegralValue(uint8_t&& u);
^~~~~~~~~~~~~
./uTensor/src/uTensor/core/types.hpp:94:3: note: candidate: IntegralValue::IntegralValue(const float&)
IntegralValue(const float& u);
^~~~~~~~~~~~~
./uTensor/src/uTensor/core/types.hpp:93:3: note: candidate: IntegralValue::IntegralValue(const int32_t&)
IntegralValue(const int32_t& u);
^~~~~~~~~~~~~
./uTensor/src/uTensor/core/types.hpp:92:3: note: candidate: IntegralValue::IntegralValue(const uint32_t&)
IntegralValue(const uint32_t& u);
^~~~~~~~~~~~~
./uTensor/src/uTensor/core/types.hpp:91:3: note: candidate: IntegralValue::IntegralValue(const int16_t&)
IntegralValue(const int16_t& u);
^~~~~~~~~~~~~
./uTensor/src/uTensor/core/types.hpp:90:3: note: candidate: IntegralValue::IntegralValue(const uint16_t&)
IntegralValue(const uint16_t& u);
^~~~~~~~~~~~~
./uTensor/src/uTensor/core/types.hpp:89:3: note: candidate: IntegralValue::IntegralValue(const int8_t&)
IntegralValue(const int8_t& u);
^~~~~~~~~~~~~
./uTensor/src/uTensor/core/types.hpp:88:3: note: candidate: IntegralValue::IntegralValue(const uint8_t&)
IntegralValue(const uint8_t& u);
^~~~~~~~~~~~~
./uTensor/src/uTensor/core/types.hpp:106:18: note: initializing argument 1 of 'IntegralValue& IntegralValue::operator=(IntegralValue&&)'
IntegralValue& operator=(IntegralValue&& that);
^~~~~~~~
In file included from ./uTensor/src/uTensor/ops/Convolution.hpp:6:0,
from ./uTensor/src/uTensor.h:21,
from .\models/my_model/my_model.hpp:4,
from .\main.cpp:24:
./uTensor/src/uTensor/ops/Convolution_kernels.hpp:23:17: warning: unused variable 'out_depth' [-Wunused-variable]
const int16_t out_depth = filter.out_channels();
^~~~~~~~~
./uTensor/src/uTensor/ops/Convolution_kernels.hpp: In instantiation of 'void uTensor::generic_convolution_kernel(uTensor::Tensor&, const uTensor::Tensor&, Filter, Bias, uTensor::Padding, const uint16_t (&)[4]) [with T = signed char; Filter = uTensor::ReferenceOperators::ConvFilter; Bias = uTensor::ReferenceOperators::NoBias; uint16_t = short unsigned int]':
./uTensor/src/uTensor/ops/Convolution.hpp:136:51: required from 'void uTensor::ReferenceOperators::Conv2dOperator::compute() [with T = signed char]'
.\main.cpp:543:1: required from here
./uTensor/src/uTensor/ops/Convolution_kernels.hpp:104:49: error: conversion from 'int' to 'IntegralValue' is ambiguous
out(batch, out_y, out_x, out_channel) = filter.finalize() + bias(out_channel);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./uTensor/src/uTensor/core/quantizationPrimitives.hpp:3:0,
from ./uTensor/src/uTensor/core/tensorBase.hpp:3,
from ./uTensor/src/uTensor/core/tensor.hpp:5,
from ./uTensor/src/uTensor/core/TensorMap.hpp:7,
from ./uTensor/src/uTensor/core/modelBase.hpp:3,
from ./uTensor/src/uTensor.h:6,
from .\models/my_model/my_model.hpp:4,
from .\main.cpp:24:
./uTensor/src/uTensor/core/types.hpp:102:3: note: candidate: IntegralValue::IntegralValue(float&&)
IntegralValue(float&& u);
^~~~~~~~~~~~~
./uTensor/src/uTensor/core/types.hpp:101:3: note: candidate: IntegralValue::IntegralValue(int32_t&&)
IntegralValue(int32_t&& u);
^~~~~~~~~~~~~
./uTensor/src/uTensor/core/types.hpp:100:3: note: candidate: IntegralValue::IntegralValue(uint32_t&&)
IntegralValue(uint32_t&& u);
^~~~~~~~~~~~~
./uTensor/src/uTensor/core/types.hpp:99:3: note: candidate: IntegralValue::IntegralValue(int16_t&&)
IntegralValue(int16_t&& u);
^~~~~~~~~~~~~
./uTensor/src/uTensor/core/types.hpp:98:3: note: candidate: IntegralValue::IntegralValue(uint16_t&&)
IntegralValue(uint16_t&& u);
^~~~~~~~~~~~~
./uTensor/src/uTensor/core/types.hpp:97:3: note: candidate: IntegralValue::IntegralValue(int8_t&&)
IntegralValue(int8_t&& u);
^~~~~~~~~~~~~
./uTensor/src/uTensor/core/types.hpp:96:3: note: candidate: IntegralValue::IntegralValue(uint8_t&&)
IntegralValue(uint8_t&& u);
^~~~~~~~~~~~~
./uTensor/src/uTensor/core/types.hpp:94:3: note: candidate: IntegralValue::IntegralValue(const float&)
IntegralValue(const float& u);
^~~~~~~~~~~~~
./uTensor/src/uTensor/core/types.hpp:93:3: note: candidate: IntegralValue::IntegralValue(const int32_t&)
IntegralValue(const int32_t& u);
^~~~~~~~~~~~~
./uTensor/src/uTensor/core/types.hpp:92:3: note: candidate: IntegralValue::IntegralValue(const uint32_t&)
IntegralValue(const uint32_t& u);
^~~~~~~~~~~~~
./uTensor/src/uTensor/core/types.hpp:91:3: note: candidate: IntegralValue::IntegralValue(const int16_t&)
IntegralValue(const int16_t& u);
^~~~~~~~~~~~~
./uTensor/src/uTensor/core/types.hpp:90:3: note: candidate: IntegralValue::IntegralValue(const uint16_t&)
IntegralValue(const uint16_t& u);
^~~~~~~~~~~~~
./uTensor/src/uTensor/core/types.hpp:89:3: note: candidate: IntegralValue::IntegralValue(const int8_t&)
IntegralValue(const int8_t& u);
^~~~~~~~~~~~~
./uTensor/src/uTensor/core/types.hpp:88:3: note: candidate: IntegralValue::IntegralValue(const uint8_t&)
IntegralValue(const uint8_t& u);
^~~~~~~~~~~~~
./uTensor/src/uTensor/core/types.hpp:106:18: note: initializing argument 1 of 'IntegralValue& IntegralValue::operator=(IntegralValue&&)'
IntegralValue& operator=(IntegralValue&& that);
^~~~~~~~
In file included from ./uTensor/src/uTensor/ops/Convolution.hpp:6:0,
from ./uTensor/src/uTensor.h:21,
from .\models/my_model/my_model.hpp:4,
from .\main.cpp:24:
./uTensor/src/uTensor/ops/Convolution_kernels.hpp:23:17: warning: unused variable 'out_depth' [-Wunused-variable]
const int16_t out_depth = filter.out_channels();
^~~~~~~~~
So the problem should be here:
[Error] Convolution_kernels.hpp@104,49: conversion from 'int' to 'IntegralValue' is ambiguous
Is the shape of input_data correct? How can I solve the issue?
Thank you.
Hello everyone,
I'm currently trying to import a 1D CNN from Tensorflow using Mbed. In particular, I have data from six different sensors stored as follow:
input_data[150][6] = { {x1, y1, z1, x2, y2, z2}, {x1, y1, z1, x2, y2, z2}, {x1, y1, z1, x2, y2, z2}, ... }so basically, in each batch, I have 150 timesteps, and in each timestep I have six values (channels).
In my C++ code I created a new input Tensor as follow:
Tensor input = new RomTensor({1, 150, 6}, flt, input_data);The problem is, when I try to compile the application I get the following errors:
So the problem should be here:
Is the shape of
input_datacorrect? How can I solve the issue?Thank you.