खोज…


परिचय

एक मॉडल का निर्माण और विशेष रूप से प्रशिक्षण पायथन में सबसे आसान हो सकता है ताकि आप जावा में प्रशिक्षित मॉडल को कैसे लोड और उपयोग कर सकें?

टिप्पणियों

यदि आप एक से अधिक पूर्वानुमान चलाना चाहते हैं तो मॉडल किसी भी संख्या में इनपुट स्वीकार कर सकता है, इसलिए NUM_PREDICTIONS बदल दें। यह महसूस करें कि जावा CN टेंसरफ़्लो मॉडल में कॉल करने के लिए JNI का उपयोग कर रहा है, इसलिए जब आप इसे चलाते हैं तो आपको मॉडल से आने वाले कुछ सूचना संदेश दिखाई देंगे।

पायथन के साथ एक मॉडल बनाएं और सहेजें

import tensorflow as tf
# good idea
tf.reset_default_graph()

# DO MODEL STUFF
# Pretrained weighting of 2.0
W = tf.get_variable('w', shape=[], initializer=tf.constant(2.0), dtype=tf.float32)
# Model input x
x = tf.placeholder(tf.float32, name='x')
# Model output y = W*x
y = tf.multiply(W, x, name='y')

# DO SESSION STUFF
sess = tf.Session()
sess.run(tf.global_variables_initializer()) 

# SAVE THE MODEL
builder = tf.saved_model.builder.SavedModelBuilder("/tmp/model" )
builder.add_meta_graph_and_variables(
  sess, 
  [tf.saved_model.tag_constants.SERVING]
)
builder.save()

जावा में मॉडल को लोड और उपयोग करें।

public static void main( String[] args ) throws IOException
{
    // good idea to print the version number, 1.2.0 as of this writing
    System.out.println(TensorFlow.version());        
    final int NUM_PREDICTIONS = 1;

    // load the model Bundle
    try (SavedModelBundle b = SavedModelBundle.load("/tmp/model", "serve")) {

        // create the session from the Bundle
        Session sess = b.session();
        // create an input Tensor, value = 2.0f
        Tensor x = Tensor.create(
            new long[] {NUM_PREDICTIONS}, 
            FloatBuffer.wrap( new float[] {2.0f} ) 
        );
        
        // run the model and get the result, 4.0f.
        float[] y = sess.runner()
            .feed("x", x)
            .fetch("y")
            .run()
            .get(0)
            .copyTo(new float[NUM_PREDICTIONS]);

        // print out the result.
        System.out.println(y[0]);
    }                
}


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow