আমি টেনসরফ্লোতে নতুন এবং আমি যা করছি তার কিছু দৃশ্যায়ন থেকে ব্যাপকভাবে উপকৃত হব। আমি বুঝতে পারি যে টেনসরবোর্ড একটি দরকারী চাক্ষুষ সরঞ্জাম, তবে আমি কীভাবে এটি আমার দূরবর্তী উবুন্টু মেশিনে চালাব?
আমি টেনসরফ্লোতে নতুন এবং আমি যা করছি তার কিছু দৃশ্যায়ন থেকে ব্যাপকভাবে উপকৃত হব। আমি বুঝতে পারি যে টেনসরবোর্ড একটি দরকারী চাক্ষুষ সরঞ্জাম, তবে আমি কীভাবে এটি আমার দূরবর্তী উবুন্টু মেশিনে চালাব?
উত্তর:
রিমোট সার্ভারটি আপনার স্থানীয় বাহ্যিক আইপি গ্রহণ করার বিষয়টি এড়াতে আমি এখানে যা করছি:
-L
বন্দরে স্থানান্তর করতে বিকল্পটি ব্যবহার করি (উদাহরণস্বরূপ):
6006
16006
ssh -L 16006:127.0.0.1:6006 olivier@my_server_ip
এটি যা করে তা হ'ল 6006
সার্ভারের বন্দরের সমস্ত কিছু (ইন 127.0.0.1:6006
) বন্দরে আমার মেশিনে ফরোয়ার্ড করা হবে 16006
।
tensorboard --logdir log
ডিফল্ট 6006
পোর্ট সহ একটি স্ট্যান্ডার্ড ব্যবহার করে দূরবর্তী মেশিনে টেনসরবোর্ড চালু করতে পারেন127.0.0.1
এখানে আপনার স্থানীয় মেশিন আইপি, সুতরাং আপনার এটি যেমন রাখা উচিত। আপনার দূরবর্তী আইপি এটিকে পরিবর্তন করবেন না। আমি এটি 10 মিনিট নষ্ট। আমি এত বোকা!
-4
ssh পতাকা সহ আইপিভি 4 প্রয়োগ করে এটি সমাধান করেছে। অনুরূপ প্রশ্নগুলির চারপাশে পড়া, অনেকেরই তাদের সার্ভারগুলিতে IPv6 ঠিকানাগুলি নিয়ে সমস্যা রয়েছে issues
-N
কোনও এসএস শেলটি না খোলার জন্য পতাকাটি যুক্ত করতে পারেন । যোগ করা -f
ব্যাকগ্রাউন্ডে ssh সংযোগ স্থাপন করে।
আপনি অন্য একটি ssh
কমান্ড দিয়ে পোর্ট-ফরোয়ার্ড করতে পারেন যা আপনি সার্ভারের সাথে কীভাবে সংযুক্ত করছেন (অন্য উত্তরের বিকল্প হিসাবে) তার সাথে আবদ্ধ হওয়ার দরকার নেই। সুতরাং, নীচের পদক্ষেপের ক্রম নির্বিচারে হয়।
আপনার স্থানীয় মেশিন থেকে, চালান
ssh -N -f -L localhost:16006:localhost:6006 <user@remote>
উপর দূরবর্তী মেশিন, সঞ্চালন করুন:
tensorboard --logdir <path> --port 6006
তারপরে, আপনার স্থানীয় মেশিনে (এই উদাহরণে) http: // লোকালহোস্ট: 16006 এ নেভিগেট করুন।
(ssh কমান্ডের ব্যাখ্যা:
-N
: কোনও দূরবর্তী কমান্ড নেই
-f
: ব্যাকগ্রাউন্ডে ssh রাখুন
-L <machine1>:<portA>:<machine2>:<portB>
:
ফরোয়ার্ড <machine2>:<portB>
(দূরবর্তী স্কোপ) থেকে <machine1>:<portA>
(স্থানীয় সুযোগ)
আপনাকে অভিনব কিছু করার দরকার নেই। শেষ ঘন্টা:
tensorboard --host 0.0.0.0 <other args here>
এবং আপনার সার্ভার ইউআরএল এবং পোর্টের সাথে সংযুক্ত হন। --host 0.0.0.0
বলে tensorflow স্থানীয় মেশিনে সব IPv4- র ঠিকানায় সংযোগ থেকে শোনার জন্য।
আপনি যদি কোনও কারণে এটি কাজ না করতে পারেন তবে অন্য বিকল্পটি হ'ল sshfs সহ আপনার ফাইল সিস্টেমে লগডির ডিরেক্টরিটি মাউন্ট করা:
sshfs user@host:/home/user/project/summary_logs ~/summary_logs
এবং তারপরে স্থানীয়ভাবে টেনসরবোর্ড চালান।
"whats my ip"
:wget http://ipinfo.io/ip -qO -
wget http://ipinfo.io/ip -qO -
সেখান থেকে আবারও করতে পারেন ।6006
123.123.12.32:6006
যদি আপনার রিমোট সার্ভারটি আপনার স্থানীয় আইপি ঠিকানা থেকে ট্র্যাফিকের জন্য উন্মুক্ত থাকে, আপনি আপনার দূরবর্তী টেনসরবোর্ডটি দেখতে সক্ষম হবেন।
সতর্কতা : সমস্ত ইন্টারনেট ট্র্যাফিক যদি আপনার সিস্টেমে অ্যাক্সেস করতে পারে (যদি আপনি কোনও একক আইপি ঠিকানা এটি অ্যাক্সেস করতে পারে তা নির্দিষ্ট না করে), যে কেউ আপনার টেনসরবোর্ডের ফলাফল দেখতে এবং স্কাইনেট তৈরি করে পালাতে সক্ষম হতে পারে।
এটি কোনও যথাযথ উত্তর নয় তবে একটি সমস্যা সমাধানকারী, আশা করি আমার মতো অন্যান্য কম পাকা নেটওয়ালিদের সহায়তা করবে।
আমার ক্ষেত্রে (ফায়ারফক্স + উবুন্টু 16) ব্রাউজারটি সংযুক্ত ছিল, তবে একটি ফাঁকা পৃষ্ঠা দেখাচ্ছে (ট্যাবে টেনসরবোর্ডের লোগো সহ), এবং কোনও লগের ক্রিয়াকলাপ দেখানো হয়নি। আমি এখনও জানি না এর কারণ কী হতে পারে (এটি তেমনভাবে দেখেনি তবে যদি কেউ জানে তবে দয়া করে জানান!) তবে আমি উবুন্টুর ডিফল্ট ব্রাউজারে স্যুইচ করে এটি সমাধান করেছি। এখানে ঠিক পদক্ষেপগুলি, @ অলিভিয়ার মাইন্ড্রোটের উত্তরের মতোই:
tensorboard --logdir=. --host=localhost --port=6006
ssh -p 23 <USER>@<SERVER> -N -f -L localhost:16006:localhost:6006
Browser
এবং দেখুন localhost:16006
। টেনসরবোর্ড পৃষ্ঠাটি বেশি দেরি না করে লোড করা উচিত।এসএসএইচ টানেল কার্যকরভাবে কাজ করছে কিনা তা পরীক্ষা করতে, এই অজগর স্ক্রিপ্টের মতো একটি সাধারণ ইকো সার্ভার সহায়তা করতে পারে:
<ECHO>.py
সার্ভারে একটি ফাইলের মধ্যে রাখুন এবং এটি দিয়ে চালান python <ECHO>.py
। এখন সার্ভারের ইকো স্ক্রিপ্ট 0.0.0.0:5555 এ শুনবে ।ssh -p <SSH_PORT> <USER>@<SERVER> -N -f -L localhost:12345:localhost:5555
telnet localhost 12345
সার্ভারে চলমান ইকো স্ক্রিপ্টের সাথে সংযুক্ত হবে connect টাইপিং hello
এবং এন্টার টিপে hello
আবার মুদ্রণ করা উচিত । যদি এটি হয় তবে আপনার এসএসএইচ টানেলটি কাজ করছে। এটি আমার ক্ষেত্রে ছিল এবং এই সিদ্ধান্তে ব্রাউজারটি জড়িত সে সিদ্ধান্তে আমাকে নিয়ে যায়। অন্য কোনও টার্মিনাল থেকে সংযোগের চেষ্টা করার ফলে টার্মিনাল হিমশীতল হয়ে গেছে।আমি যেমন বলেছি, আশা করি এটি সাহায্য করবে!
চিয়ার্স,
আন্দ্রেস
https://github.com/dmlc/tensorboard
তার থেকে পৃথক ... কেবলমাত্র আরও বিকল্প যুক্ত করার জন্য সেটআপ। চিয়ার্স
টেন্সরবোর্ড চালানোর জন্য আপনি সরাসরি আপনার দূরবর্তী সার্ভারের টার্মিনালে নিম্নলিখিত কমান্ডটি চালাতে পারেন:
tensorboard --logdir {tf_log directory path} --host "0.0.0.0" --port 6006
অথবা আপনি আপনার আইপথন নোটবুকের মধ্যে টেনসরবোর্ড শুরু করতে পারেন:
%load_ext tensorboard
%tensorboard --logdir {tf_log directory path} --host "0.0.0.0" --port 6006
আপনাকে পোর্ট ফরওয়ার্ডিং ব্যবহার করে একটি এসএসএস সংযোগ তৈরি করতে হবে:
ssh -L 16006:127.0.0.1:6006 user@host
তারপরে আপনি tensorboard
কমান্ডটি চালাবেন :
tensorboard --logdir=/path/to/logs
তারপরে আপনি tensorboard
নিজের ব্রাউজারের নীচে সহজেই অ্যাক্সেস করতে পারবেন :
localhost:16006/
টেনসরবোর্ড চালানোর সময় আপনার সিস্টেমের আরও একটি বিকল্প --host = ip দিন এবং তারপরে আপনি আপনার হোস্ট সিস্টেমের http: // আইপি ব্যবহার করে অন্যান্য সিস্টেম থেকে এটি অ্যাক্সেস করতে পারবেন : 6006
অন্য পদ্ধতির একটি বিপরীত প্রক্সি ব্যবহার করা হয় , যা আপনাকে এসএসএইচিং ছাড়াই কোনও ইন্টারনেট সংযুক্ত ডিভাইস থেকে টেনসরবোর্ড দেখতে দেয় । উদাহরণস্বরূপ, মোবাইল ডিভাইসগুলিতে টেনসরবোর্ডটি দেখার জন্য এই পদ্ধতিটি এটিকে আরও সহজ / ট্র্যাকটেবল করে তুলতে পারে।
পদক্ষেপ:
1) আপনার রিমোট মেশিনে হোস্টিং টেনসরবোর্ডে বিপরীত প্রক্সি এনগ্রোক ডাউনলোড করুন। Https://ngrok.com/download দেখুননির্দেশাবলীর জন্য (minute 5 মিনিটের সেটআপ)।
2) চালান ngrok http 6006
(ধরে নিচ্ছেন আপনি 6006 বন্দরে টেনসরবোর্ড হোস্ট করছেন)
3) ইউআরএল সংরক্ষণ করুন যা আউটপুটগুলি এনগ্রোক করে:
4) টেনসরবোর্ড দেখতে যে কোনও ব্রাউজারে এটি প্রবেশ করুন:
স্যাম কার্কিলসকে বিশেষ ধন্যবাদ