RX72Tを用いてe-AIで作成したCNN処理を行いたいです。
「e-AIトランスレータ V1.4.0 ユーザーズマニュアル」に沿って作業を行っております。
マニュアルのP30に記載の通りe-AIで作成されたファイルをインクルードすると、e-AI出力のファイル内で宣言されたシンボルに対してシンボル重複のエラーが出ます
(E0562300:Duplicate symbol "_add_0_pad" in ".\src\Translator\dnn_compute.obj")
どこで重複がおきているか調べようとしたのですが、e-AI出力のファイルでは1か所でしか宣言されておらず、当然私が記述した部分のプログラムでも宣言はしておりません。
念のため上記の1か所で宣言されている部分の名称を変更しましたが、変更後の名称で同じエラーが発生します。
恐らくe-AI出力ファイル内での参照関係によって重複宣言が行われていると推察しているのですが、本現象の解決方法をご教授いただけないでしょうか。
回答に際して情報等不足ございましたらご指摘ください。
よろしくお願いいたします。
【環境】
・windows10
・e2studio
・GCC for Renesas RX ツールチェーン
・Renesas Sterter Kit for RX72T
【該当ファイル】
//File Name :dnn_compute.c
#include "layer_shapes.h"#include "layer_graph.h"#include "weights.h" TPrecision* dnn_compute(TPrecision* Reshape_0){ convolution(Reshape_0,add_0_pad,add_0_weights,add_0_biases,add_0,layer_shapes.add_0_shape); relu(add_0,layer_shapes.add_0_activ_shape);
pooling(add_0,MaxPool_0_pad,MaxPool_0,layer_shapes.MaxPool_0_shape); convolution(MaxPool_0,add_1_0_pad,add_1_0_weights,add_1_0_biases,add_1_0,layer_shapes.add_1_0_shape); relu(add_1_0,layer_shapes.add_1_0_activ_shape); pooling(add_1_0,Reshape_1_0_pad,Reshape_1_0,layer_shapes.Reshape_1_0_shape); innerproduct(Reshape_1_0,add_2_0_weights,add_2_0_biases,add_2_0,layer_shapes.add_2_0_shape); relu(add_2_0,layer_shapes.add_2_0_activ_shape); innerproduct(add_2_0,MatMul_1_0_weights,MatMul_1_0_biases,MatMul_1_0,layer_shapes.MatMul_1_0_shape); return(MatMul_1_0);}
//File Name : layer_shapes.h
#include "Typedef.h"#ifndef LAYER_SHAPES_H_#define LAYER_SHAPES_H_ TPrecision* dnn_compute(TPrecision*);
//↓これらのシンボルについて全て重複定義のエラーが出ます
TPrecision add_0_pad[680];TPrecision add_0_m[960];TPrecision MaxPool_0_pad_m[1920];TPrecision MaxPool_0_m[480];TPrecision add_1_0_pad_m[3040];TPrecision add_1_0_m[960];TPrecision Reshape_1_0_pad_m[2048];TPrecision Reshape_1_0_m[512];TPrecision add_2_0_m[1024];TPrecision MatMul_1_0_m[10];
struct shapes{ TsInt add_0_shape_m[16]; TsInt add_0_activ_shape_m; TsInt MaxPool_0_shape_m[15]; TsInt add_1_0_shape_m[16]; TsInt add_1_0_activ_shape_m; TsInt Reshape_1_0_shape_m[15]; TsInt add_2_0_shape_m[4]; TsInt add_2_0_activ_shape_m; TsInt MatMul_1_0_shape_m[4];};
struct shapes layer_shapes ={ {1,4,1,30,32,4,5,5,1,30,2,2,2,2,1,1}, 960, {1,32,1,30,1,15,0,1,0,0,2,2,2,2,0}, {1,32,1,15,64,32,5,5,1,15,2,2,2,2,1,1}, 960, {1,64,1,15,1,8,0,1,0,1,2,2,2,2,0}, {1,512,512,1024}, 1024, {1,1024,1024,10}};
#endif
panpanpandaさん、こんにちは。NoMaYです。> ご提示いただいたエラーレベルを変更する作業はこちらの画面から可能でしょうか。画面コピー有難う御座いました。やはりCC-RXのプロジェクトでしたね。このままCC-RXで作業されるということでしょうか。それであれば、以下の画面コピーの箇所で変更することが出来ます。e2 studioのプロジェクトのプロパティのコンパイラ設定(というかリンカ設定)の画面コピー