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 จะสร้างภาพเพื่อทำความเข้าใจประสิทธิภาพของโมเดล