কম্পিউটার টিউটোরিয়াল

পাইথনে আইনস্টাইন সমেশন কনভেনশনে einsum এক্সপ্রেশনের সর্বনিম্ন খরচের কন্ট্রাকশন অর্ডার বের করা

আইনস্টাইন সমেশন কন্ট্রাকশন পাথ অপ্টিমাইজেশন

numpy.einsum_path() ফাংশন একটি আইনস্টাইন সমেশন এক্সপ্রেশনের জন্য সর্বনিম্ন কম্পিউটেশনাল খরচের কন্ট্রাকশন অর্ডার (path) বের করে। এটি বড় টেনসর কন্ট্রাকশনে পারফরম্যান্স বাড়াতে সাহায্য করে।

  • subscripts: সাবস্ক্রিপ্ট লেবেল (যেমন 'ij,jk,kl->il')।
  • operands: ইনপুট অ্যারেগুলো।
  • optimize: অপ্টিমাইজেশন কৌশল (যেমন 'greedy', 'optimal')।

উদাহরণ কোড

import numpy as np

np.random.seed(123)
p = np.random.rand(2, 2)
q = np.random.rand(2, 5)
r = np.random.rand(5, 2)

# Greedy অপ্টিমাইজেশন দিয়ে পাথ বের করা
path_info = np.einsum_path('ij,jk,kl->il', p, q, r, optimize='greedy')

print("Path:", path_info[0])
print("\nDetails:\n", path_info[1])

আউটপুট

Path: ['einsum_path', (1, 2), (0, 1)]
Complete contraction: ij,jk,kl->il
Naive scaling: 4
Optimized scaling: 3
Naive FLOP count: 1.200e+02
Optimized FLOP count: 5.700e+01
Theoretical speedup: 2.105
Largest intermediate: 4.000e+00 elements
--------------------------------------------------------------------------
scaling       current       remaining
--------------------------------------------------------------------------
   3            kl,jk->jl     ij,jl->il
   3            jl,ij->il     il->il
  1. পাইথনে তালিকাকে আরোহী বা অবরোহী ক্রমে সাজাতে ন্যূনতম খরচ খুঁজে বের করার প্রোগ্রাম

  2. মিন কস্ট পাথের পাইথন প্রোগ্রাম

  3. পাইথনে ব্যালেন্সড প্যারেনথেসিস চেক করা

  4. পাইথনে শব্দগুলো লেক্সিকোগ্রাফিক্যাল অর্ডারে সর্ট করার প্রোগ্রাম