ห้องสมุดที่มีน้ำหนักเบาสำหรับกราฟเครือข่ายประสาทและตัวชี้วัดการฝึกอบรมสำหรับ Pytorch, Tensorflow และ Keras
HiddenLayer นั้นง่ายต่อการขยายและทำงานได้ดีกับสมุดบันทึก Jupyter มันไม่ได้มีวัตถุประสงค์เพื่อแทนที่เครื่องมือขั้นสูงเช่น Tensorboard แต่สำหรับกรณีที่เครื่องมือขั้นสูงมีขนาดใหญ่เกินไปสำหรับงาน Hiddenlayer เขียนโดย Waleed Abdulla และ Phil Ferriere และได้รับใบอนุญาตภายใต้ใบอนุญาต MIT
ใช้ HiddenLayer เพื่อแสดงกราฟของเครือข่ายประสาทของคุณในสมุดบันทึก Jupyter หรือไปยังไฟล์ PDF หรือ PNG ดูตัวอย่างสมุดบันทึก Jupyter สำหรับ Tensorflow, Pytorch และ Keras

กราฟได้รับการออกแบบมาเพื่อสื่อสารสถาปัตยกรรมระดับสูง ดังนั้นรายละเอียดระดับต่ำจะถูกซ่อนไว้โดยค่าเริ่มต้น (เช่นการเริ่มต้นน้ำหนัก ops, การไล่ระดับสี, ops ภายในของประเภทเลเยอร์ทั่วไป, ... ฯลฯ ) HiddenLayer ยังพับลำดับของเลเยอร์ที่ใช้กันทั่วไปด้วยกัน ตัวอย่างเช่นลำดับ convolution -> relu -> maxpool เป็นเรื่องธรรมดามากดังนั้นพวกเขาจึงถูกรวมเข้ากับกล่องเดียวเพื่อความเรียบง่าย
การปรับแต่งกราฟ
กฎสำหรับการซ่อนและพับสามารถปรับแต่งได้อย่างสมบูรณ์ คุณสามารถใช้ graph expressions และ transforms เพื่อเพิ่มกฎของคุณเอง ตัวอย่างเช่นกฎนี้จะพับโหนดทั้งหมดของบล็อกคอขวดของ resnet101 เป็นหนึ่งโหนด
# Fold bottleneck blocks
ht.Fold("((ConvBnRelu > ConvBnRelu > ConvBn) | ConvBn) > Add > Relu",
"BottleneckBlock", "Bottleneck Block"),

หากคุณเรียกใช้การทดลองฝึกอบรมในสมุดบันทึก Jupyter คุณอาจพบว่าสิ่งนี้มีประโยชน์ คุณสามารถใช้เพื่อพล็อตการสูญเสียและความแม่นยำฮิสโตแกรมของน้ำหนักหรือแสดงภาพการเปิดใช้งานของสองสามชั้น

Outside Jupyter Notebook:
คุณสามารถใช้ HiddenLayer นอกสมุดบันทึก Jupyter ได้เช่นกัน ในสคริปต์ Python ที่ทำงานจากบรรทัดคำสั่งมันจะเปิดหน้าต่างแยกต่างหากสำหรับตัวชี้วัด และถ้าคุณใช้เซิร์ฟเวอร์ที่ไม่มี GUI คุณสามารถบันทึกสแน็ปช็อตของกราฟลงในไฟล์ PNG สำหรับการตรวจสอบในภายหลัง ดู history_canvas.py สำหรับตัวอย่างของกรณีการใช้งานนี้
Hiddenlayer เป็นห้องสมุดขนาดเล็ก มันครอบคลุมพื้นฐาน แต่คุณอาจต้องขยายมันสำหรับกรณีการใช้งานของคุณเอง ตัวอย่างเช่นสมมติว่าคุณต้องการแสดงถึงความแม่นยำของโมเดลเป็นแผนภูมิวงกลมมากกว่าพล็อต สามารถทำได้โดยการขยายคลาส Canvas และเพิ่มวิธีการใหม่เช่น:
class MyCanvas(hl.Canvas):
"""Extending Canvas to add a pie chart method."""
def draw_pie(self, metric):
# set square aspect ratio
self.ax.axis('equal')
# Get latest value of the metric
value = np.clip(metric.data[-1], 0, 1)
# Draw pie chart
self.ax.pie([value, 1-value], labels=["Accuracy", ""])
ดู pytorch_train.ipynb หรือ tf_train.ipynb สำหรับตัวอย่าง

สมุดบันทึก keras_train.ipynb มีตัวอย่างการฝึกอบรมจริงที่แสดงวิธีการสร้าง Canvas ที่กำหนดเองเพื่อพล็อตเมทริกซ์ความสับสนควบคู่ไปกับการตรวจสอบความถูกต้อง:

Pytorch:
pytorch_graph.ipynb : สมุดบันทึกนี้แสดงวิธีการสร้างกราฟสำหรับรุ่น pytorch ยอดนิยมสองสามpytorch_train.ipynb : อธิบายการติดตามและแสดงตัวชี้วัดการฝึกอบรมhistory_canvas.py : ตัวอย่างของการใช้ hiddenlayer โดยไม่มี GUITensorflow:
tf_graph.ipynb : โน้ตบุ๊กนี้แสดงวิธีสร้างกราฟสำหรับรุ่น TF Slim ต่างๆtf_train.ipynb : แสดงให้เห็นถึงการติดตามและแสดงภาพการฝึกอบรมการฝึกอบรมด้วย tensorflowhistory_canvas.py : ตัวอย่างของการใช้ hiddenlayer โดยไม่มี GUIKeras:
keras_graph.ipynb : สมุดบันทึกนี้แสดงวิธีสร้างกราฟสำหรับรุ่น Keras ต่างๆkeras_train.ipynb : แสดงให้เห็นถึงการสร้างกราฟแบบจำลองการสร้างภาพของตัวชี้วัดการฝึกอบรมและวิธีการสร้างการโทรกลับ keras ที่กำหนดเองที่ใช้ผืน Canvas subclassed เพื่อพล็อตเมทริกซ์ความสับสนในตอนท้ายของการฝึกอบรมแต่ละครั้งHiddenlayer ได้รับการปล่อยตัวภายใต้ใบอนุญาต MIT อย่าลังเลที่จะขยายหรือปรับแต่งตามความต้องการของคุณ หากคุณค้นพบข้อบกพร่องซึ่งน่าจะเป็นเพราะนี่เป็นการเปิดตัวก่อนเวลาโปรดรายงานหรือส่งคำขอดึง
หากคุณต้องการมีส่วนร่วมในคุณสมบัติใหม่นี่คือบางสิ่งที่เราต้องการเพิ่ม แต่ไม่เคยมีมาก่อน:
. Python3, Numpy, Matplotlib และ Jupyter Notebook
ข. Tensorflow หรือ Pytorch
ค. GraphViz และ Wrapper Python เพื่อสร้างกราฟเครือข่าย วิธีที่ง่ายที่สุดในการติดตั้งคือ
ถ้าคุณใช้ Conda:
conda install graphviz python-graphvizมิฉะนั้น:
pip3 install graphvizใช้สิ่งนี้หากคุณต้องการแก้ไขหรือปรับแต่งไลบรารีในเครื่อง
# Clone the repository
git clone [email protected]:waleedka/hiddenlayer.git
cd hiddenlayer
# Install in dev mode
pip install -e .pip install hiddenlayersite-packages ของคุณโดยตรงจาก gitHubใช้สิ่งต่อไปนี้หากคุณต้องการติดตั้งไลบรารีเวอร์ชันล่าสุด:
pip install git+https://github.com/waleedka/hiddenlayer.git