मैं एक प्रोग्राम बना रहा हूं जो किसी ऑब्जेक्ट को पहचानता है, लेकिन मुझे कुछ समस्या है। मैं इस कोड का उपयोग करता हूं:

 File file = new File("Java.jpg");
        Image image = new Image(file.toURI().toString());
   imga.setImage(image);


        String  modelpath= "C:\\Users\\AngruAdminAlex\\Documents\\inception_dec_2015";

  float verison=(float) 1.0;
                System.out.println("Opening: " + modelpath);
                modelselected = true;
                graphDef = readAllBytesOrExit(Paths.get(modelpath, "tensorflow_inception_graph.pb"));
                labels = readAllLinesOrExit(Paths.get(modelpath, "imagenet_comp_graph_label_strings.txt"));

           File file1 = new File ("Java.jpg");
          String imagepath="Java.jpg";
                System.out.println("Image Path: " + imagepath);
                BufferedImage img = ImageIO.read(file1);


        //read image

        System.out.println("Reading complete.");
            byte[] imageBytes = readAllBytesOrExit(Paths.get(imagepath));
byte data[] = imageBytes;
FileOutputStream out = new FileOutputStream("buffer.rawfile");
out.write(data);
out.close();
            try (Tensor image1 = Tensor.create(imageBytes)) {
                float[] labelProbabilities = executeInceptionGraph(graphDef, image1);
                int bestLabelIdx = maxIndex(labelProbabilities);

                System.out.println(
                         String.format(
                                "BEST MATCH: %s (%.2f likely)",
                                labels.get(bestLabelIdx), labelProbabilities[bestLabelIdx] * 100f));

results.setText(  String.format(
                                "BEST MATCH: %s (%.2f likely)",
                                labels.get(bestLabelIdx), labelProbabilities[bestLabelIdx] * 100f));
        }
    }

जब मैं पूर्व-प्रशिक्षित मॉडल इंसेप्शन v3 का उपयोग करता हूं, तो सब ठीक है, लेकिन जब मैं अपने प्रशिक्षित मॉडल का उपयोग करता हूं, तो मुझे त्रुटि हो रही है:

Opening: C:\Users\AngruAdminAlex\Documents\1.10

Image Path: C:\Users\AngruAdminAlex\Pictures\Test\20180907_213807.jpg
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: NodeDef mentions attr 'dilations' not in Op<name=Conv2D; signature=input:T, filter:T -> output:T; attr=T:type,allowed=[DT_HALF, DT_FLOAT, DT_DOUBLE]; attr=strides:list(int); attr=use_cudnn_on_gpu:bool,default=true; attr=padding:string,allowed=["SAME", "VALID"]; attr=data_format:string,default="NHWC",allowed=["NHWC", "NCHW"]>; NodeDef: module_apply_default/InceptionV3/InceptionV3/Conv2d_1a_3x3/Conv2D = Conv2D[T=DT_FLOAT, data_format="NHWC", dilations=[1, 1, 1, 1], padding="VALID", strides=[1, 2, 2, 1], use_cudnn_on_gpu=true](module_apply_default/hub_input/Sub, module_apply_default/InceptionV3/InceptionV3/Conv2d_1a_3x3/Conv2D/ReadVariableOp). (Check whether your GraphDef-interpreting binary is up to date with your GraphDef-generating binary.).
    at org.tensorflow.Graph.importGraphDef(Native Method)
    at org.tensorflow.Graph.importGraphDef(Graph.java:130)
    at org.tensorflow.Graph.importGraphDef(Graph.java:114)

मॉडल के लिए लिंक: मॉडल

0
Alex Zaslavskis 23 सितंबर 2018, 16:09

1 उत्तर

निम्नलिखित लिंक देखें जहां एक समान मुद्दा उठाया गया है:

https://github.com/tensorflow/models/issues/4093

ऐसा लगता है कि आपको Tensorflow को 1.8 या बाद के संस्करण में अपडेट करना पड़ सकता है।

0
Saket Kumar Singh 24 सितंबर 2018, 09:43