टेंसरफ्लो जावा स्थापित करें

TensorFlow Java मशीन लर्निंग मॉडल के निर्माण, प्रशिक्षण और तैनाती के लिए किसी भी JVM पर चल सकता है। यह ग्राफ़ या उत्सुक मोड में सीपीयू और जीपीयू निष्पादन दोनों का समर्थन करता है, और जेवीएम वातावरण में टेन्सरफ्लो का उपयोग करने के लिए एक समृद्ध एपीआई प्रस्तुत करता है। जावा और अन्य जेवीएम भाषाएं, जैसे स्काला और कोटलिन, दुनिया भर के बड़े और छोटे उद्यमों में अक्सर उपयोग की जाती हैं, जो बड़े पैमाने पर मशीन लर्निंग को अपनाने के लिए टेन्सरफ्लो जावा को एक रणनीतिक विकल्प बनाती है।

आवश्यकताएं

TensorFlow Java, Java 8 और इसके बाद के संस्करण पर चलता है, और आउट-ऑफ़-द-बॉक्स निम्नलिखित प्लेटफ़ॉर्म का समर्थन करता है:

  • उबंटू 16.04 या उच्चतर; 64-बिट, x86
  • macOS 10.12.6 (सिएरा) या उच्चतर; 64-बिट, x86
  • विंडोज 7 या उच्चतर; 64-बिट, x86

संस्करणों

TensorFlow Java का अपना रिलीज़ चक्र है, जो TensorFlow रनटाइम से स्वतंत्र है। परिणामस्वरूप, इसका संस्करण TensorFlow रनटाइम के उस संस्करण से मेल नहीं खाता जिस पर यह चलता है। उपलब्ध सभी संस्करणों को सूचीबद्ध करने और TensorFlow रनटाइम के साथ उनकी मैपिंग के लिए TensorFlow Java संस्करण तालिका से परामर्श लें।

कलाकृतियों

आपके प्रोजेक्ट में TensorFlow Java जोड़ने के कई तरीके हैं। सबसे आसान है tensorflow-core-platform आर्टिफैक्ट पर निर्भरता जोड़ना, जिसमें टेंसरफ़्लो जावा कोर एपीआई और सभी समर्थित प्लेटफ़ॉर्म पर चलने के लिए आवश्यक मूल निर्भरताएँ दोनों शामिल हैं।

आप शुद्ध सीपीयू संस्करण के बजाय निम्नलिखित एक्सटेंशन में से एक का चयन भी कर सकते हैं:

  • tensorflow-core-platform-mkl : सभी प्लेटफ़ॉर्म पर Intel® MKL-DNN के लिए समर्थन
  • tensorflow-core-platform-gpu : Linux और Windows प्लेटफ़ॉर्म पर CUDA® के लिए समर्थन
  • tensorflow-core-platform-mkl-gpu : Linux प्लेटफ़ॉर्म पर Intel® MKL-DNN और CUDA® के लिए समर्थन।

इसके अलावा, जेवीएम पर tensorflow-framework लाइब्रेरी पर एक अलग निर्भरता जोड़ी जा सकती है।

मावेन के साथ स्थापित करना

अपने मावेन एप्लिकेशन में TensorFlow को शामिल करने के लिए, अपने प्रोजेक्ट की pom.xml फ़ाइल में इसकी कलाकृतियों पर निर्भरता जोड़ें। उदाहरण के लिए,

<dependency>
  <groupId>org.tensorflow</groupId>
  <artifactId>tensorflow-core-platform</artifactId>
  <version>0.3.3</version>
</dependency>

निर्भरता की संख्या कम करना

यह ध्यान रखना महत्वपूर्ण है कि tensorflow-core-platform आर्टिफैक्ट पर निर्भरता जोड़ने से सभी समर्थित प्लेटफ़ॉर्म के लिए मूल लाइब्रेरी आयात हो जाएंगी, जो आपके प्रोजेक्ट के आकार को महत्वपूर्ण रूप से बढ़ा सकती हैं।

यदि आप उपलब्ध प्लेटफार्मों के एक सबसेट को लक्षित करना चाहते हैं तो आप मेवेन निर्भरता बहिष्करण सुविधा का उपयोग करके अन्य प्लेटफार्मों से अनावश्यक कलाकृतियों को बाहर कर सकते हैं।

यह चुनने का दूसरा तरीका कि आप अपने एप्लिकेशन में कौन से प्लेटफ़ॉर्म शामिल करना चाहते हैं, अपने मेवेन कमांड लाइन में या अपने pom.xml में JavaCPP सिस्टम गुणों को सेट करना है। कृपया अधिक विवरण के लिए JavaCPP दस्तावेज़ देखें।

स्नैपशॉट का उपयोग करना

TensorFlow Java स्रोत रिपॉजिटरी से नवीनतम TensorFlow Java डेवलपमेंट स्नैपशॉट OSS Sonatype Nexus रिपॉजिटरी पर उपलब्ध हैं। इन कलाकृतियों पर निर्भर रहने के लिए, अपने pom.xml में OSS स्नैपशॉट रिपॉजिटरी को कॉन्फ़िगर करना सुनिश्चित करें।

<repositories>
    <repository>
        <id>tensorflow-snapshots</id>
        <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>org.tensorflow</groupId>
        <artifactId>tensorflow-core-platform</artifactId>
        <version>0.4.0-SNAPSHOT</version>
    </dependency>
</dependencies>

ग्रैडल के साथ इंस्टालेशन

अपने ग्रैडल एप्लिकेशन में TensorFlow को शामिल करने के लिए, अपने प्रोजेक्ट की build.gradle फ़ाइल में इसकी कलाकृतियों पर निर्भरता जोड़ें। उदाहरण के लिए,

repositories {
    mavenCentral()
}

dependencies {
    compile group: 'org.tensorflow', name: 'tensorflow-core-platform', version: '0.3.3'
}

निर्भरता की संख्या कम करना

ग्रैडल के साथ टेन्सरफ्लो जावा से मूल कलाकृतियों को बाहर करना मावेन जितना आसान नहीं है। हम अनुशंसा करते हैं कि निर्भरता की इस संख्या को कम करने के लिए आप ग्रैडल JavaCPP प्लगइन्स का उपयोग करें।

अधिक जानकारी के लिए कृपया ग्रैडल जावासीपीपी दस्तावेज़ पढ़ें।

स्रोतों से स्थापित करना

स्रोतों से TensorFlow Java बनाने और संभवतः इसे अनुकूलित करने के लिए, कृपया निम्नलिखित निर्देश पढ़ें।

उदाहरण कार्यक्रम

यह उदाहरण दिखाता है कि TensorFlow के साथ Apache Maven प्रोजेक्ट कैसे बनाया जाए। सबसे पहले, प्रोजेक्ट की pom.xml फ़ाइल में TensorFlow निर्भरता जोड़ें:

<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.myorg</groupId>
    <artifactId>hellotensorflow</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <exec.mainClass>HelloTensorFlow</exec.mainClass>
        <!-- Minimal version for compiling TensorFlow Java is JDK 8 -->
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

    <dependencies>
        <!-- Include TensorFlow (pure CPU only) for all supported platforms -->
        <dependency>
            <groupId>org.tensorflow</groupId>
            <artifactId>tensorflow-core-platform</artifactId>
            <version>0.3.3</version>
        </dependency>
    </dependencies>
</project>

स्रोत फ़ाइल src/main/java/HelloTensorFlow.java बनाएं:

import org.tensorflow.ConcreteFunction;
import org.tensorflow.Signature;
import org.tensorflow.Tensor;
import org.tensorflow.TensorFlow;
import org.tensorflow.op.Ops;
import org.tensorflow.op.core.Placeholder;
import org.tensorflow.op.math.Add;
import org.tensorflow.types.TInt32;

public class HelloTensorFlow {

  public static void main(String[] args) throws Exception {
    System.out.println("Hello TensorFlow " + TensorFlow.version());

    try (ConcreteFunction dbl = ConcreteFunction.create(HelloTensorFlow::dbl);
        TInt32 x = TInt32.scalarOf(10);
        Tensor dblX = dbl.call(x)) {
      System.out.println(x.getInt() + " doubled is " + ((TInt32)dblX).getInt());
    }
  }

  private static Signature dbl(Ops tf) {
    Placeholder<TInt32> x = tf.placeholder(TInt32.class);
    Add<TInt32> dblX = tf.math.add(x, x);
    return Signature.builder().input("x", x).output("dbl", dblX).build();
  }
}

संकलित करें और निष्पादित करें:

mvn -q compile exec:java

कमांड TensorFlow संस्करण और एक सरल गणना प्रिंट करता है।

सफलता! TensorFlow Java कॉन्फ़िगर किया गया है।