টেনসরফ্লো জাভা ইনস্টল করুন

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

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

টেনসরফ্লো জাভা Java 8 এবং তার উপরে চলে এবং নিম্নলিখিত প্ল্যাটফর্মগুলিকে সমর্থন করে:

  • উবুন্টু 16.04 বা উচ্চতর; 64-বিট, x86
  • macOS 10.12.6 (সিয়েরা) বা উচ্চতর; 64-বিট, x86
  • উইন্ডোজ 7 বা উচ্চতর; 64-বিট, x86

সংস্করণ

TensorFlow Java এর নিজস্ব রিলিজ চক্র আছে, TensorFlow রানটাইম থেকে স্বাধীন। ফলস্বরূপ, এর সংস্করণটি টেনসরফ্লো রানটাইমের সংস্করণের সাথে মেলে না যা এটি চলছে। TensorFlow রানটাইম সহ উপলব্ধ সমস্ত সংস্করণ এবং তাদের ম্যাপিং তালিকাভুক্ত করতে TensorFlow Java সংস্করণ টেবিলের সাথে পরামর্শ করুন৷

শিল্পকর্ম

আপনার প্রকল্পে TensorFlow Java যোগ করার বিভিন্ন উপায় রয়েছে। সবচেয়ে সহজটি হল tensorflow-core-platform আর্টিফ্যাক্টের উপর নির্ভরতা যোগ করা, যার মধ্যে টেনসরফ্লো জাভা কোর এপিআই এবং সমস্ত সমর্থিত প্ল্যাটফর্মে চালানোর জন্য প্রয়োজনীয় স্থানীয় নির্ভরতা উভয়ই অন্তর্ভুক্ত রয়েছে।

আপনি বিশুদ্ধ CPU সংস্করণের পরিবর্তে নিম্নলিখিত এক্সটেনশনগুলির মধ্যে একটি নির্বাচন করতে পারেন:

  • tensorflow-core-platform-mkl : সমস্ত প্ল্যাটফর্মে Intel® MKL-DNN-এর জন্য সমর্থন
  • tensorflow-core-platform-gpu : লিনাক্স এবং উইন্ডোজ প্ল্যাটফর্মে CUDA® এর জন্য সমর্থন
  • tensorflow-core-platform-mkl-gpu : লিনাক্স প্ল্যাটফর্মে Intel® MKL-DNN এবং CUDA®-এর জন্য সমর্থন।

উপরন্তু, JVM-এ tensorflow-framework লাইব্রেরির উপর একটি পৃথক নির্ভরতা যোগ করা যেতে পারে।

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

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

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

নির্ভরশীলতার সংখ্যা হ্রাস করা

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

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

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

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

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

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

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

repositories {
    mavenCentral()
}

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

নির্ভরশীলতার সংখ্যা হ্রাস করা

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

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

উৎস থেকে ইনস্টল করা হচ্ছে

উত্স থেকে টেনসরফ্লো জাভা তৈরি করতে এবং সম্ভবত এটি কাস্টমাইজ করতে, অনুগ্রহ করে নিম্নলিখিত নির্দেশাবলী পড়ুন।

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

এই উদাহরণটি দেখায় কিভাবে 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

কমান্ডটি টেনসরফ্লো সংস্করণ এবং একটি সাধারণ গণনা প্রিন্ট করে।

সফলতার ! টেনসরফ্লো জাভা কনফিগার করা হয়েছে।