TensorFlow Java स्थापित करें

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

आवश्यकताएं

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

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

संस्करणों

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

कलाकृतियों

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

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

  • tensorflow-core-platform-mkl : सभी प्लेटफार्मों पर इंटेल MKL-DNN के लिए समर्थन
  • tensorflow-core-platform-gpu : लिनक्स और विंडोज प्लेटफॉर्म पर CUDA® के लिए समर्थन
  • tensorflow-core-platform-mkl-gpu : इंटेल MKL-DNN और CUDA® लिनक्स मंच पर के लिए सहायता।

इसके अलावा, पर एक अलग निर्भरता tensorflow-framework पुस्तकालय JVM पर TensorFlow आधारित मशीन सीखने के लिए उपयोगिताओं का विस्तृत समूह से लाभ के लिए जोड़ा जा सकता है।

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

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

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

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

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

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

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

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

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

<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 Gradle आवेदन, अपने पर निर्भरता को जोड़ने कलाकृतियों अपने प्रोजेक्ट की को build.gradle फ़ाइल। उदाहरण के लिए,

repositories {
    mavenCentral()
}

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

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

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

कृपया Gradle JavaCPP पर पढ़ने के प्रलेखन अधिक जानकारी के लिए।

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

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

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

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

<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 कॉन्फ़िगर किया गया है।