Интерпретатор Android TensorFlow Lite: как исправить & ldquo; ошибку DataType: невозможно разрешить DataType из java.lang.Float & rdquo;

Макет

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/TableLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="20dp"
android:gravity="center_horizontal" >

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Contact Application"
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:gravity="center_horizontal"/>

код

//container Layout
    TableLayout tbl=(TableLayout)findViewById(R.id.TableLayout1);
    //table row
    TableRow tr = new TableRow(this);
    TableLayout.LayoutParams tableRowParams=
            new TableLayout.LayoutParams
            (TableLayout.LayoutParams.FILL_PARENT,TableLayout.LayoutParams.WRAP_CONTENT);
    //for set margin
    tableRowParams.setMargins(0, 10, 0, 0);
    tr.setLayoutParams(tableRowParams);
    //text view
    TextView tv=new TextView(this);
    tv.setText("Email");
    tv.setGravity(Gravity.CENTER);
    tv.setTextColor(Color.parseColor("#0070C0"));
    tv.setTextSize(26);
    tv.setLayoutParams(new TableRow.LayoutParams(100, TableRow.LayoutParams.WRAP_CONTENT));
    //add textview
    tr.addView(tv);
    //set layout params of edittext
    TableRow.LayoutParams etParams=
            new TableRow.LayoutParams
            (120,30);
    etParams.setMargins(10, 0, 0, 0);

    EditText et=new EditText(this);
    et.setLayoutParams(etParams);
    //set background
    et.setBackgroundResource(R.drawable.bg_grey);
    et.setInputType(InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
    tr.addView(et);

    tbl.addView(tr, tableRowParams);
2
задан Moritz 17 January 2019 в 11:58
поделиться

1 ответ

Я никогда не использовал TF-Lite для Java. Но, согласно документам , оба аргумента из tflite.run() должны быть тензорами. Но для аргумента output вы передаете только один float. Итак, я почти уверен, что это основная причина вашей ошибки "не удается разрешить тип данных java.lang.Float".

Примечание: также в соответствии с документами поддерживаются необработанные ByteBuffer и многомерные массивы поддерживаемых типов данных (float, int, long, byte). Итак, оба ваших подхода, ByteBuffer и float[][][][] должны работать. Вы должны сделать то же самое для вывода.

0
ответ дан sebrockm 17 January 2019 в 11:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: