Keras - โมดูล

ดังที่เราได้เรียนรู้ไปก่อนหน้านี้โมดูล Keras ประกอบด้วยคลาสฟังก์ชันและตัวแปรที่กำหนดไว้ล่วงหน้าซึ่งมีประโยชน์สำหรับอัลกอริทึมการเรียนรู้เชิงลึก ให้เราเรียนรู้โมดูลที่ Keras ให้ไว้ในบทนี้

โมดูลที่มี

ก่อนอื่นให้เราดูรายการโมดูลที่มีอยู่ใน Keras

  • Initializers- แสดงรายการฟังก์ชัน initializers เราสามารถเรียนรู้ได้ในรายละเอียดใน Keras ชั้นบท ระหว่างขั้นตอนการสร้างโมเดลของการเรียนรู้ของเครื่อง

  • Regularizers- แสดงรายการของฟังก์ชัน Regularizers เราสามารถเรียนรู้รายละเอียดได้ในบทKeras Layers

  • Constraints- แสดงรายการฟังก์ชันข้อ จำกัด เราสามารถเรียนรู้รายละเอียดได้ในบทKeras Layers

  • Activations- แสดงรายการฟังก์ชันตัวกระตุ้น เราสามารถเรียนรู้รายละเอียดได้ในบทKeras Layers

  • Losses- แสดงรายการฟังก์ชันการสูญเสีย เราสามารถเรียนรู้รายละเอียดได้ในบทการฝึกโมเดล

  • Metrics- แสดงรายการฟังก์ชันเมตริก เราสามารถเรียนรู้รายละเอียดได้ในบทการฝึกโมเดล

  • Optimizers- แสดงรายการฟังก์ชันเครื่องมือเพิ่มประสิทธิภาพ เราสามารถเรียนรู้รายละเอียดได้ในบทการฝึกโมเดล

  • Callback- แสดงรายการฟังก์ชันการโทรกลับ เราสามารถใช้ในระหว่างขั้นตอนการฝึกเพื่อพิมพ์ข้อมูลระดับกลางรวมทั้งหยุดการฝึกอบรมได้ (EarlyStopping วิธีการ) ขึ้นอยู่กับเงื่อนไขบางประการ

  • Text processing- มีฟังก์ชันในการแปลงข้อความเป็นอาร์เรย์ NumPy ที่เหมาะสำหรับการเรียนรู้ของเครื่อง เราสามารถใช้ในขั้นตอนการเตรียมข้อมูลของการเรียนรู้ของเครื่อง

  • Image processing- มีฟังก์ชันในการแปลงรูปภาพเป็นอาร์เรย์ NumPy ที่เหมาะสำหรับการเรียนรู้ของเครื่อง เราสามารถใช้ในขั้นตอนการเตรียมข้อมูลของการเรียนรู้ของเครื่อง

  • Sequence processing- จัดเตรียมฟังก์ชันในการสร้างข้อมูลตามเวลาจากข้อมูลอินพุตที่กำหนด เราสามารถใช้ในขั้นตอนการเตรียมข้อมูลของการเรียนรู้ของเครื่อง

  • Backend- ให้การทำงานของห้องสมุดแบ็กเอนด์เช่นTensorFlowและTheano

  • Utilities - มีฟังก์ชันยูทิลิตี้มากมายที่เป็นประโยชน์ในการเรียนรู้เชิงลึก

ให้เราดู backend โมดูลและ utils แบบจำลองในบทนี้

โมดูลแบ็กเอนด์

backend moduleใช้สำหรับการดำเนินการแบ็กเอนด์ keras โดยค่าเริ่มต้น Keras จะทำงานที่ด้านบนของแบ็กเอนด์ TensorFlow หากต้องการคุณสามารถเปลี่ยนไปใช้แบ็กเอนด์อื่น ๆ เช่น Theano หรือ CNTK การกำหนดค่าแบ็กเอนด์เริ่มต้นถูกกำหนดไว้ภายในไดเร็กทอรีรากของคุณภายใต้ไฟล์. keras / keras.json

สามารถนำเข้าโมดูลแบ็กเอนด์ Keras ได้โดยใช้โค้ดด้านล่าง

>>> from keras import backend as k

หากเรากำลังใช้TensorFlowแบ็กเอนด์เริ่มต้นฟังก์ชันด้านล่างจะส่งคืนข้อมูลตามTensorFlowตามที่ระบุด้านล่าง -

>>> k.backend() 
'tensorflow'
>>> k.epsilon() 
1e-07
>>> k.image_data_format() 
'channels_last'
>>> k.floatx() 
'float32'

ให้เราเข้าใจฟังก์ชันแบ็กเอนด์ที่สำคัญบางอย่างที่ใช้สำหรับการวิเคราะห์ข้อมูลโดยสังเขป -

get_uid ()

เป็นตัวระบุสำหรับกราฟเริ่มต้น มีการกำหนดไว้ด้านล่าง -

>>> k.get_uid(prefix='') 
1 
>>> k.get_uid(prefix='') 2

reset_uids

ใช้รีเซ็ตค่า uid

>>> k.reset_uids()

ตอนนี้เรียกใช้get_uid ()อีกครั้ง สิ่งนี้จะถูกรีเซ็ตและเปลี่ยนอีกครั้งเป็น 1

>>> k.get_uid(prefix='') 
1

ตัวยึด

ใช้เป็นอินสแตนซ์ตัวยึดตำแหน่งเทนเซอร์ ตัวยึดที่เรียบง่ายเพื่อยึดรูปร่าง 3 มิติดังแสดงด้านล่าง -

>>> data = k.placeholder(shape = (1,3,3)) 
>>> data 
<tf.Tensor 'Placeholder_9:0' shape = (1, 3, 3) dtype = float32> 

If you use int_shape(), it will show the shape. 

>>> k.int_shape(data) (1, 3, 3)

จุด

ใช้ในการคูณสองเทนเซอร์ พิจารณา a และ b เป็นสองเทนเซอร์และ c จะเป็นผลลัพธ์ของการคูณของ ab สมมติว่ารูปร่างคือ (4,2) และรูปร่าง b คือ (2,3) มีการกำหนดไว้ด้านล่าง

>>> a = k.placeholder(shape = (4,2)) 
>>> b = k.placeholder(shape = (2,3)) 
>>> c = k.dot(a,b) 
>>> c 
<tf.Tensor 'MatMul_3:0' shape = (4, 3) dtype = float32> 
>>>

คน

ใช้เพื่อเริ่มต้นทั้งหมดเป็นไฟล์ one มูลค่า.

>>> res = k.ones(shape = (2,2)) 

#print the value 

>>> k.eval(res) 
array([[1., 1.], [1., 1.]], dtype = float32)

batch_dot

มันถูกใช้เพื่อดำเนินการผลคูณของข้อมูลสองชุดในแบทช์ มิติข้อมูลอินพุตต้องเป็น 2 หรือสูงกว่า ดังแสดงด้านล่าง -

>>> a_batch = k.ones(shape = (2,3)) 
>>> b_batch = k.ones(shape = (3,2)) 
>>> c_batch = k.batch_dot(a_batch,b_batch) 
>>> c_batch 
<tf.Tensor 'ExpandDims:0' shape = (2, 1) dtype = float32>

ตัวแปร

ใช้เพื่อเริ่มต้นตัวแปร ให้เราดำเนินการเปลี่ยนอย่างง่ายในตัวแปรนี้

>>> data = k.variable([[10,20,30,40],[50,60,70,80]]) 
#variable initialized here 
>>> result = k.transpose(data) 
>>> print(result) 
Tensor("transpose_6:0", shape = (4, 2), dtype = float32) 
>>> print(k.eval(result)) 
   [[10. 50.] 
   [20. 60.] 
   [30. 70.] 
   [40. 80.]]

หากคุณต้องการเข้าถึงจาก numpy -

>>> data = np.array([[10,20,30,40],[50,60,70,80]]) 

>>> print(np.transpose(data)) 
   [[10 50] 
   [20 60] 
   [30 70] 
   [40 80]] 

>>> res = k.variable(value = data) 
>>> print(res) 
<tf.Variable 'Variable_7:0' shape = (2, 4) dtype = float32_ref>

is_sparse (เทนเซอร์)

ใช้ตรวจสอบว่าเทนเซอร์เบาบางหรือไม่

>>> a = k.placeholder((2, 2), sparse=True) 

>>> print(a) SparseTensor(indices =       
   Tensor("Placeholder_8:0", 
   shape = (?, 2), dtype = int64), 
values = Tensor("Placeholder_7:0", shape = (?,), 
dtype = float32), dense_shape = Tensor("Const:0", shape = (2,), dtype = int64)) 

>>> print(k.is_sparse(a)) True

to_dense ()

ใช้เพื่อแปลงเบาบางเป็นหนาแน่น

>>> b = k.to_dense(a) 
>>> print(b) Tensor("SparseToDense:0", shape = (2, 2), dtype = float32) 
>>> print(k.is_sparse(b)) False

random_uniform_variable

ใช้เพื่อเริ่มต้นโดยใช้ไฟล์ uniform distribution แนวคิด.

k.random_uniform_variable(shape, mean, scale)

ที่นี่

  • shape - หมายถึงแถวและคอลัมน์ในรูปแบบของ tuples

  • mean - ค่าเฉลี่ยของการกระจายสม่ำเสมอ

  • scale - ค่าเบี่ยงเบนมาตรฐานของการกระจายสม่ำเสมอ

ให้เราดูตัวอย่างการใช้งานด้านล่าง -

>>> a = k.random_uniform_variable(shape = (2, 3), low=0, high = 1) 
>>> b = k. random_uniform_variable(shape = (3,2), low = 0, high = 1) 
>>> c = k.dot(a, b) 
>>> k.int_shape(c) 
(2, 2)

โมดูลยูทิลิตี้

utilsมีฟังก์ชันยูทิลิตี้ที่เป็นประโยชน์สำหรับการเรียนรู้เชิงลึก วิธีการบางอย่างที่มีให้โดยไฟล์utils โมดูลมีดังนี้ -

HDF5Matrix

ใช้เพื่อแสดงข้อมูลอินพุตในรูปแบบ HDF5

from keras.utils import HDF5Matrix data = HDF5Matrix('data.hdf5', 'data')

to_categorical

ใช้เพื่อแปลงเวกเตอร์คลาสเป็นเมทริกซ์คลาสไบนารี

>>> from keras.utils import to_categorical 
>>> labels = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
>>> to_categorical(labels) 
array([[1., 0., 0., 0., 0., 0., 0., 0., 0., 0.], 
   [0., 1., 0., 0., 0., 0., 0., 0., 0., 0.], 
   [0., 0., 1., 0., 0., 0., 0., 0., 0., 0.], 
   [0., 0., 0., 1., 0., 0., 0., 0., 0., 0.], 
   [0., 0., 0., 0., 1., 0., 0., 0., 0., 0.], 
   [0., 0., 0., 0., 0., 1., 0., 0., 0., 0.], 
   [0., 0., 0., 0., 0., 0., 1., 0., 0., 0.], 
   [0., 0., 0., 0., 0., 0., 0., 1., 0., 0.], 
   [0., 0., 0., 0., 0., 0., 0., 0., 1., 0.], 
   [0., 0., 0., 0., 0., 0., 0., 0., 0., 1.]], dtype = float32)
>>> from keras.utils import normalize 
>>> normalize([1, 2, 3, 4, 5]) 
array([[0.13483997, 0.26967994, 0.40451992, 0.53935989, 0.67419986]])

print_summary

ใช้เพื่อพิมพ์ข้อมูลสรุปของโมเดล

from keras.utils import print_summary print_summary(model)

plot_model

ใช้เพื่อสร้างการแสดงโมเดลในรูปแบบจุดและบันทึกลงในไฟล์

from keras.utils import plot_model 
plot_model(model,to_file = 'image.png')

นี้ plot_model จะสร้างภาพเพื่อทำความเข้าใจประสิทธิภาพของโมเดล