我正在建立我自己的CNN,我试图把它放在一个迪斯科-f746ng根据"TensorFlow Lite为微控制器“的教程和TinyML的书。我知道支持的tensorflow-keras函数可以在这里找到:https://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/micro/all_ops_resolver.cc,但是Flatten()函数似乎没有列出。这让我很恼火,因为它是一个非常基本的函数,所以我想也许它在all_ops_resolver中有一个不同的名称。我只使用列出的函数和Flatten()函数。当我用我自己的模型运行测试时,无论我分配多少空间,我总是会有一个分割错误。这就是为什么我想问Flatten()函数是否受到TensorFlow Lite的支持?
这是我创建CNN的Python代码:
model = models.Sequential()
model.add(layers.Conv2D(16, (3, 3), activation='relu', input_shape=(36, 36, 1)))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(36, 36, 1)))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu', input_shape=(36, 36, 1)))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Flatten())
model.add(layers.Dense(8, activation='softmax'))
model.add(layers.Dense(2))
model.summary()
model.compile(optimizer='adam',
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
metrics=['accuracy'])发布于 2020-06-27 02:42:37
好吧,我想我现在明白了。我还有一个导致分割错误的问题,但我现在解决了。之后,我准备检查是否支持Flatten()。它工作了!
上面的CNN模型代码在向微操作解析器中添加以下内置程序时工作:
tflite::MicroMutableOpResolver<5> micro_op_resolver;
micro_op_resolver.AddConv2D();
micro_ou_resolver.AddFullyConnected();
micro_op_resolver.AddMaxPool2D();
micro_op_resolver.AddSoftmax();
micro_op_resolver.AddReshape();根据我的尝试和错误方法,添加RESHAPE()对于能够使用Flatten()是必要的
https://stackoverflow.com/questions/62580548
复制相似问题