TensorFlow জাভা ইনস্টল করুন

TensorFlow জাভা , ভবন প্রশিক্ষণ ও মেশিন লার্নিং মডেলগুলির মোতায়েন জন্য কোনো জেভিএম চলতে পারে। এটি গ্রাফ বা আগ্রহী মোডে CPU এবং GPU উভয় এক্সিকিউশন সমর্থন করে এবং JVM পরিবেশে TensorFlow ব্যবহারের জন্য একটি সমৃদ্ধ API উপস্থাপন করে। জাভা এবং অন্যান্য জেভিএম ভাষা, যেমন স্কালা এবং কোটলিন, প্রায়শই সারা বিশ্বের বড় এবং ছোট উদ্যোগে ব্যবহৃত হয়, যা টেনসারফ্লো জাভাকে একটি বড় আকারে মেশিন লার্নিং গ্রহণের জন্য কৌশলগত পছন্দ করে তোলে।

প্রয়োজনীয়তা

টেন্সরফ্লো জাভা জাভা 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 : সমস্ত প্ল্যাটফর্মের উপর Intel অথবা MKL-DNN জন্য সহায়তা
  • tensorflow-core-platform-gpu : লিনাক্স এবং Windows প্ল্যাটফর্মের উপর CUDA® জন্য সহায়তা
  • tensorflow-core-platform-mkl-gpu : Intel অথবা MKL-DNN এবং CUDA® লিনাক্স প্ল্যাটফর্মে জন্য সমর্থন।

উপরন্তু, পৃথক নির্ভরতা tensorflow-framework গ্রন্থাগার জেভিএম উপর TensorFlow ভিত্তিক মেশিন লার্নিং জন্য ইউটিলিটি এর একটি সমৃদ্ধ সেট থেকে উপকৃত যোগ করা যাবে।

মাভেনের সাথে ইনস্টল করা হচ্ছে

আপনার TensorFlow অন্তর্ভুক্ত করার জন্য ম্যাভেন আবেদন, তার উপর নির্ভরতা যোগ নিদর্শন আপনার প্রকল্পের এর pom.xml ফাইল। উদাহরণ স্বরূপ,

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

নির্ভরতার সংখ্যা কমানো

এটা খেয়াল করা জরুরী যে একটি উপর নির্ভরতা যোগ গুরুত্বপূর্ণ tensorflow-core-platform হস্তনির্মিত বস্তু সমস্ত সমর্থিত প্ল্যাটফর্ম, যা উল্লেখযোগ্যভাবে আপনার প্রকল্পের আকার বৃদ্ধি করতে পারেন জন্য স্থানীয় লাইব্রেরি আমদানি করবে।

আপনি উপলব্ধ প্ল্যাটফর্ম একটি উপসেট লক্ষ্য করতে চান তাহলে আপনি ব্যবহার অন্য প্ল্যাটফর্মে থেকে অপ্রয়োজনীয় নিদর্শন অগ্রাহ্য করতে ম্যাভেন নির্ভরতা অব্যাহতির বৈশিষ্ট্য।

আরেকটি উপায় নির্বাচন করতে যা প্ল্যাটফর্মের আপনি আপনার অ্যাপ্লিকেশনের মধ্যে অন্তর্ভুক্ত করতে চান আপনার ম্যাভেন কমান্ড লাইন অথবা আপনার মধ্যে, সেট JavaCPP পদ্ধতির বৈশিষ্ট্য হয় pom.xml । দয়া করে JavaCPP দেখতে ডকুমেন্টেশন আরো বিস্তারিত জানার জন্য।

স্ন্যাপশট ব্যবহার করে

TensorFlow জাভা সোর্স সংগ্রহস্থল থেকে সর্বশেষ TensorFlow জাভা উন্নয়ন স্ন্যাপশট পাওয়া যায় OSS Sonatype নেক্সাস সংগ্রহস্থল। এই নিদর্শন উপর নির্ভর করতে, আপনার মধ্যে OSS স্ন্যাপশট সংগ্রহস্থলের কনফিগার করতে ভুলবেন না 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>

Gradle দিয়ে ইনস্টল করা

আপনার TensorFlow অন্তর্ভুক্ত করার জন্য Gradle আবেদন, তার উপর নির্ভরতা যোগ নিদর্শন আপনার প্রকল্পের এর build.gradle ফাইল। উদাহরণ স্বরূপ,

repositories {
    mavenCentral()
}

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

নির্ভরতার সংখ্যা কমানো

টেনসরফ্লো জাভা থেকে গ্র্যাডেলের সাথে দেশীয় শিল্পকর্ম বাদ দেওয়া মাভেনের মতো সহজ নয়। আমরা সুপারিশ করি যে আপনি নির্ভরতার এই সংখ্যা কমাতে Gradle JavaCPP প্লাগইন ব্যবহার করুন।

দয়া করে Gradle JavaCPP পড়া ডকুমেন্টেশন আরো বিস্তারিত জানার জন্য।

উত্স থেকে ইনস্টল করা

উত্স থেকে TensorFlow জাভা নির্মাণ করতে, এবং সম্ভবত কাস্টমাইজ, দয়া করে নিম্নলিখিত পড়া নির্দেশাবলী

উদাহরণ প্রোগ্রাম

এই উদাহরণটি দেখায় কিভাবে টেনসরফ্লো দিয়ে একটি অ্যাপাচি মাভেন প্রকল্প তৈরি করা যায়। প্রথমত, যোগ প্রকল্পের জন্য 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 জাভা কনফিগার করা হয়েছে।