第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在java中提供TensorFlow - 在一個(gè)會(huì)話運(yùn)行中進(jìn)行多個(gè)預(yù)測(cè)

在java中提供TensorFlow - 在一個(gè)會(huì)話運(yùn)行中進(jìn)行多個(gè)預(yù)測(cè)

aluckdog 2022-08-03 10:51:29
我有一個(gè)保存的模型,我設(shè)法加載,運(yùn)行并獲得1行9個(gè)特征的預(yù)測(cè)。(輸入)現(xiàn)在我試圖預(yù)測(cè)100行這樣的行,但是當(dāng)嘗試從Tensor.copyTo()讀取結(jié)果數(shù)組時(shí),我得到了不兼容的形狀java.lang.IllegalArgumentException: cannot copy Tensor with shape [1, 1] into object with shape [100, 1]顯然,我設(shè)法在循環(huán)中運(yùn)行了這個(gè)預(yù)測(cè) - 但這比一次運(yùn)行100的等效python執(zhí)行慢20倍。這里是 /saved_model_cli.py 報(bào)告的已保存模型信息MetaGraphDef with tag-set: 'serve' contains the following SignatureDefs:signature_def['serving_default']:  The given SavedModel SignatureDef contains the following input(s):    inputs['input'] tensor_info:        dtype: DT_FLOAT        shape: (-1, 9)        name: dense_1_input:0  The given SavedModel SignatureDef contains the following output(s):    outputs['output'] tensor_info:        dtype: DT_FLOAT        shape: (-1, 1)        name: dense_4/BiasAdd:0  Method name is: tensorflow/serving/predict問題是 - 我是否需要為我想預(yù)測(cè)的每一行運(yùn)行(),就像這里的問題一樣
查看完整描述

1 回答

?
catspeake

TA貢獻(xiàn)1111條經(jīng)驗(yàn) 獲得超0個(gè)贊

好吧,所以我發(fā)現(xiàn)了一個(gè)問題,我無法為我想要的所有行(預(yù)測(cè))運(yùn)行一次。可能是一個(gè)張量流新手問題,我搞砸了輸入和輸出矩陣。當(dāng)報(bào)告工具(python)說你有一個(gè)形狀(-1,9)的輸入張量映射到j(luò)ava long[]{1,9}時(shí),這并不意味著你不能傳遞long[]{1000,9}的輸入張量 - 這意味著1000行用于預(yù)測(cè)。在此輸入之后,定義為 [1,1] 的輸出張量可以是 [1000,1]。


這個(gè)代碼實(shí)際上比python運(yùn)行得快得多(1.2秒對(duì)7秒),這是代碼(也許會(huì)解釋得更好)


public Tensor prepareData(){

    Random r = new Random();

    float[]inputArr = new float[NUMBER_OF_KEWORDS*NUMBER_OF_FIELDS];

    for (int i=0;i<NUMBER_OF_KEWORDS * NUMBER_OF_FIELDS;i++){

        inputArr[i] = r.nextFloat();

    }


    FloatBuffer inputBuff = FloatBuffer.wrap(inputArr, 0, NUMBER_OF_KEWORDS*NUMBER_OF_FIELDS);

    return Tensor.create(new long[]{NUMBER_OF_KEWORDS,NUMBER_OF_FIELDS}, inputBuff);

}


public void predict (Tensor inputTensor){

    try ( Session s = savedModelBundle.session()) {

        Tensor result;

        long globalStart = System.nanoTime();

            result = s.runner().feed("dense_1_input", inputTensor).fetch("dense_4/BiasAdd").run().get(0);


            final long[] rshape = result.shape();

            if (result.numDimensions() != 2 || rshape[0] <= NUMBER_OF_KEWORDS) {

                throw new RuntimeException(

                        String.format(

                                "Expected model to produce a [N,1] shaped tensor where N is the number of labels, instead it produced one with shape %s",

                                Arrays.toString(rshape)));

            }



        float[][] resultArray = (float[][]) result.copyTo(new float[NUMBER_OF_KEWORDS][1]);

        System.out.println(String.format("Total of %d,  took : %.4f ms", NUMBER_OF_KEWORDS, ((double) System.nanoTime() - globalStart) / 1000000));

        for (int i=0;i<10;i++){

            System.out.println(resultArray[i][0]);

        }

    }

}


查看完整回答
反對(duì) 回復(fù) 2022-08-03
  • 1 回答
  • 0 關(guān)注
  • 148 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)