คำถามติดแท็ก keras

Keras เป็นไลบรารีเครือข่ายประสาทที่มี API ระดับสูงใน Python และ R ใช้แท็กนี้สำหรับคำถามเกี่ยวกับวิธีใช้ API นี้ โปรดใส่แท็กสำหรับภาษา / แบ็กเอนด์ ([python], [r], [tensorflow], [theano], [cntk]) ที่คุณใช้ หากคุณใช้ Keras ในตัวของ tensorflow ให้ใช้แท็ก [tf.keras]

3
ทำความเข้าใจกับ Keras LSTMs
ฉันพยายามที่จะกระทบยอดความเข้าใจของฉันเกี่ยวกับ LSTM และชี้ให้เห็นที่นี่ในโพสต์นี้โดย Christopher Olahนำมาใช้ใน Keras ฉันกำลังติดตามบล็อกที่เขียนโดย Jason Brownleeสำหรับบทช่วยสอนของ Keras สิ่งที่ฉันสับสนเป็นหลักคือ การปรับแต่งชุดข้อมูลใหม่เข้า[samples, time steps, features]และ LSTM stateful ให้ความสนใจกับคำถามสองข้อข้างต้นโดยอ้างอิงจากรหัสที่วางไว้ด้านล่าง: # reshape into X=t and Y=t+1 look_back = 3 trainX, trainY = create_dataset(train, look_back) testX, testY = create_dataset(test, look_back) # reshape input to be [samples, time steps, features] trainX = numpy.reshape(trainX, (trainX.shape[0], …

2
คำอธิบายอินพุต Keras: input_shape, หน่วย, batch_size, dim, ฯลฯ
สำหรับการใด ๆ ชั้น Keras ( Layerclass), คนที่สามารถอธิบายวิธีการที่จะเข้าใจความแตกต่างระหว่างinput_shape, units, dimฯลฯ ? ตัวอย่างเช่น doc says unitsระบุรูปร่างผลลัพธ์ของเลเยอร์ ในภาพของโครงข่ายประสาทด้านล่างhidden layer1มี 4 หน่วย สิ่งนี้แปลโดยตรงกับunitsคุณสมบัติของLayerวัตถุหรือไม่ หรือunitsใน Keras มีรูปร่างเท่ากันทุกน้ำหนักในเลเยอร์ที่ซ่อนอยู่คูณด้วยจำนวนของหน่วย? ในระยะสั้นหนึ่งจะเข้าใจ / แสดงคุณลักษณะของโมเดล - โดยเฉพาะเลเยอร์ - ด้วยภาพด้านล่างได้อย่างไร

7
ฉันจะเรียกใช้ฟังก์ชัน BatchNormalization ใน Keras ได้ที่ไหน
ถ้าฉันต้องการใช้ฟังก์ชั่น BatchNormalization ใน Keras ฉันต้องโทรหามันแค่ครั้งแรกตอนเริ่มต้นหรือไม่? ฉันอ่านเอกสารนี้แล้ว: http://keras.io/layers/normalization/ ฉันไม่เห็นที่ฉันควรจะเรียกมันว่า ด้านล่างเป็นรหัสของฉันพยายามใช้: model = Sequential() keras.layers.normalization.BatchNormalization(epsilon=1e-06, mode=0, momentum=0.9, weights=None) model.add(Dense(64, input_dim=14, init='uniform')) model.add(Activation('tanh')) model.add(Dropout(0.5)) model.add(Dense(64, init='uniform')) model.add(Activation('tanh')) model.add(Dropout(0.5)) model.add(Dense(2, init='uniform')) model.add(Activation('softmax')) sgd = SGD(lr=0.1, decay=1e-6, momentum=0.9, nesterov=True) model.compile(loss='binary_crossentropy', optimizer=sgd) model.fit(X_train, y_train, nb_epoch=20, batch_size=16, show_accuracy=True, validation_split=0.2, verbose = 2) ฉันถามเพราะถ้าฉันเรียกใช้รหัสด้วยบรรทัดที่สองรวมถึงการทำให้เป็นมาตรฐานชุดงานและถ้าฉันเรียกใช้รหัสโดยไม่มีบรรทัดที่สองฉันได้รับผลลัพธ์ที่คล้ายกัน ดังนั้นฉันไม่ได้เรียกฟังก์ชั่นในตำแหน่งที่ถูกต้องหรือฉันเดาว่ามันไม่ได้สร้างความแตกต่างมากนัก

11
ทำไม binary_crossentropy และ categorical_crossentropy ให้การแสดงต่างกันสำหรับปัญหาเดียวกัน?
ฉันพยายามฝึก CNN เพื่อจัดหมวดหมู่ข้อความตามหัวข้อ เมื่อฉันใช้ไบนารีข้ามเอนโทรปีฉันจะได้รับความแม่นยำประมาณ 80% และจากการข้ามเอนโทรปีอย่างเด็ดขาดฉันจะได้รับความแม่นยำ 50% ฉันไม่เข้าใจว่าทำไมถึงเป็นเช่นนี้ มันเป็นปัญหามัลติคลาสนั่นไม่ได้หมายความว่าฉันต้องใช้การข้ามเอนโทรปีแบบเด็ดขาดและผลลัพธ์ที่ได้จากการข้ามเอนโทรปีแบบไบนารีนั้นไร้ความหมาย? model.add(embedding_layer) model.add(Dropout(0.25)) # convolution layers model.add(Conv1D(nb_filter=32, filter_length=4, border_mode='valid', activation='relu')) model.add(MaxPooling1D(pool_length=2)) # dense layers model.add(Flatten()) model.add(Dense(256)) model.add(Dropout(0.25)) model.add(Activation('relu')) # output layer model.add(Dense(len(class_id_index))) model.add(Activation('softmax')) จากนั้นฉันก็คอมไพล์มันแบบนี้โดยใช้categorical_crossentropyเป็นฟังก์ชันการสูญเสีย: model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) หรือ model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) โดยสัญชาตญาณมันสมเหตุสมผลแล้วว่าทำไมฉันถึงต้องการใช้เอนโทรปีแบบข้ามหมวดหมู่ฉันไม่เข้าใจว่าทำไมฉันถึงได้ผลลัพธ์ที่ดีด้วยเลขฐานสองและผลลัพธ์ที่ไม่ดีกับการจัดหมวดหมู่

10
Keras, วิธีรับเอาต์พุตของแต่ละเลเยอร์
ฉันได้ฝึกรูปแบบการจำแนกเลขฐานสองด้วย CNN และนี่คือรหัสของฉัน model = Sequential() model.add(Convolution2D(nb_filters, kernel_size[0], kernel_size[1], border_mode='valid', input_shape=input_shape)) model.add(Activation('relu')) model.add(Convolution2D(nb_filters, kernel_size[0], kernel_size[1])) model.add(Activation('relu')) model.add(MaxPooling2D(pool_size=pool_size)) # (16, 16, 32) model.add(Convolution2D(nb_filters*2, kernel_size[0], kernel_size[1])) model.add(Activation('relu')) model.add(Convolution2D(nb_filters*2, kernel_size[0], kernel_size[1])) model.add(Activation('relu')) model.add(MaxPooling2D(pool_size=pool_size)) # (8, 8, 64) = (2048) model.add(Flatten()) model.add(Dense(1024)) model.add(Activation('relu')) model.add(Dropout(0.5)) model.add(Dense(2)) # define a binary classification problem model.add(Activation('softmax')) model.compile(loss='categorical_crossentropy', optimizer='adadelta', …

10
ฉันจะใช้การโทรกลับ Tensorboard ของ Keras ได้อย่างไร
ฉันได้สร้างโครงข่ายประสาทเทียมด้วย Keras ฉันจะเห็นภาพข้อมูลของมันโดย Tensorboard ดังนั้นฉันจึงใช้: keras.callbacks.TensorBoard(log_dir='/Graph', histogram_freq=0, write_graph=True, write_images=True) ตามที่อธิบายไว้ในkeras.io เมื่อฉันเรียกใช้การโทรกลับฉันได้รับ<keras.callbacks.TensorBoard at 0x7f9abb3898>แต่ฉันไม่ได้รับไฟล์ใด ๆ ในโฟลเดอร์ของฉัน "กราฟ" มีวิธีการที่ฉันใช้โทรกลับนี้ผิดหรือไม่?
143 keras  tensorboard 

2
ทำไม TensorFlow 2 ช้ากว่า TensorFlow 1 มาก
มันถูกอ้างถึงโดยผู้ใช้หลายคนว่าเป็นเหตุผลของการเปลี่ยนไปใช้ Pytorch แต่ฉันยังไม่พบเหตุผล / คำอธิบายสำหรับการเสียสละคุณภาพความเร็วที่สำคัญที่สุดสำหรับการปฏิบัติจริง ด้านล่างเป็นรหัสประสิทธิภาพการเปรียบเทียบกับ TF1 TF2 - TF1 กับการทำงานที่ใดก็ได้จาก47% ถึง 276% เร็ว คำถามของฉันคืออะไรที่กราฟหรือระดับฮาร์ดแวร์ที่ทำให้เกิดการชะลอตัวที่สำคัญ? กำลังมองหาคำตอบโดยละเอียด - ฉันคุ้นเคยกับแนวคิดที่กว้างขวางแล้ว Git ที่เกี่ยวข้อง ข้อมูลจำเพาะ : CUDA 10.0.130, cuDNN 7.4.2, Python 3.7.4, Windows 10, GTX 1070 ผลการเกณฑ์มาตรฐาน : อัปเดต : การปิดใช้งานการเรียกใช้ Eager ตามรหัสด้านล่างไม่ได้ช่วยอะไร อย่างไรก็ตามพฤติกรรมนั้นไม่สอดคล้องกัน: บางครั้งการทำงานในโหมดกราฟช่วยได้มากบางครั้งก็ทำงานช้าลงเมื่อเทียบกับ Eager เนื่องจากผู้ที่ชื่นชอบ TF ไม่ปรากฏที่ใด ๆ ฉันจะตรวจสอบเรื่องนี้ด้วยตัวเอง - สามารถติดตามความคืบหน้าในปัญหา Github …

10
Tensorflow 2.0 - AttributeError: โมดูล 'tensorflow' ไม่มีแอตทริบิวต์ 'Session'
เมื่อฉันดำเนินการคำสั่งsess = tf.Session()ในสภาพแวดล้อม Tensorflow 2.0 ฉันได้รับข้อความแสดงข้อผิดพลาดดังต่อไปนี้: Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: module 'tensorflow' has no attribute 'Session' ข้อมูลระบบ: แพลตฟอร์ม OS และการกระจาย: Windows 10 เวอร์ชัน Python: 3.7.1.1 Tensorflow เวอร์ชัน: 2.0.0-alpha0 (ติดตั้งด้วย pip) ขั้นตอนในการผลิตซ้ำ: การติดตั้ง: pip install - อัพเกรด pip pip ติดตั้ง tensorflow == 2.0.0-alpha0 …

5
ฉันสามารถรัน Keras model บน gpu ได้หรือไม่?
ฉันใช้โมเดล Keras โดยมีกำหนดส่ง 36 ชั่วโมงถ้าฉันฝึกโมเดลของฉันบน cpu จะใช้เวลาประมาณ 50 ชั่วโมงมีวิธีเรียกใช้ Keras บน gpu หรือไม่ ฉันใช้แบ็กเอนด์ Tensorflow และใช้งานบนสมุดบันทึก Jupyter โดยไม่ได้ติดตั้งอนาคอนดา

18
วิธีแก้ไข 'Object arrays ไม่สามารถโหลดได้เมื่อ allow_pickle = False' สำหรับฟังก์ชัน imdb.load_data ()
ฉันพยายามที่จะดำเนินการเช่นการจัดหมวดหมู่ไบนารีโดยใช้ชุดข้อมูลที่ไอเอ็มในGoogle Colab ฉันเคยใช้โมเดลนี้มาก่อน แต่เมื่อฉันพยายามทำอีกครั้งหลังจากผ่านไปสองสามวันมันกลับมีข้อผิดพลาดค่า: 'Object arrays ไม่สามารถโหลดได้เมื่อ allow_pickle = False' สำหรับฟังก์ชัน load_data () ฉันได้ลองแก้ปัญหานี้แล้วโดยอ้างถึงคำตอบที่มีอยู่สำหรับปัญหาที่คล้ายกัน: วิธีแก้ไข 'Object arrays ไม่สามารถโหลดได้เมื่อ allow_pickle = False' ในอัลกอริทึม sketch_rnn แต่ปรากฎว่าการเพิ่มอาร์กิวเมนต์ allow_pickle นั้นไม่เพียงพอ รหัสของฉัน: from keras.datasets import imdb (train_data, train_labels), (test_data, test_labels) = imdb.load_data(num_words=10000) ข้อผิดพลาด: ValueError Traceback (most recent call last) <ipython-input-1-2ab3902db485> in <module>() 1 from keras.datasets …
114 python  numpy  keras 

5
บทบาทของ“ Flatten” ใน Keras คืออะไร?
ฉันพยายามที่จะเข้าใจบทบาทของFlattenฟังก์ชั่นใน Keras ด้านล่างนี้คือรหัสของฉันซึ่งเป็นเครือข่ายสองชั้นที่เรียบง่าย ใช้ข้อมูล 2 มิติของรูปร่าง (3, 2) และส่งออกข้อมูลรูปร่าง 1 มิติ (1, 4): model = Sequential() model.add(Dense(16, input_shape=(3, 2))) model.add(Activation('relu')) model.add(Flatten()) model.add(Dense(4)) model.compile(loss='mean_squared_error', optimizer='SGD') x = np.array([[[1, 2], [3, 4], [5, 6]]]) y = model.predict(x) print y.shape สิ่งนี้จะพิมพ์ออกมาที่yมีรูปร่าง (1, 4) อย่างไรก็ตามถ้าฉันลบFlattenเส้นมันก็จะพิมพ์ออกมาที่yมีรูปร่าง (1, 3, 4) ฉันไม่เข้าใจเรื่องนี้ จากความเข้าใจของฉันเกี่ยวกับโครงข่ายประสาทเทียมmodel.add(Dense(16, input_shape=(3, 2)))ฟังก์ชันนี้กำลังสร้างเลเยอร์ที่เชื่อมต่อเต็มรูปแบบที่ซ่อนอยู่โดยมี 16 โหนด …

2
ตัวอย่าง LSTM แบบหลายต่อหนึ่งและหลายตัวใน Keras
ฉันพยายามทำความเข้าใจ LSTM และวิธีสร้างด้วย Keras ฉันพบว่าโดยหลักแล้วมี 4 โหมดในการเรียกใช้ RNN (4 โหมดที่ถูกต้องในภาพ) แหล่งที่มาของภาพ: Andrej Karpathy ตอนนี้ฉันสงสัยว่าข้อมูลโค้ดแบบเรียบง่ายสำหรับแต่ละส่วนจะเป็นอย่างไรใน Keras ดังนั้นสิ่งที่ชอบ model = Sequential() model.add(LSTM(128, input_shape=(timesteps, data_dim))) model.add(Dense(1)) สำหรับแต่ละ 4 งานอาจมีคำอธิบายเล็กน้อย

1
พารามิเตอร์ใดที่ควรใช้ในการหยุดก่อนกำหนด
ฉันกำลังฝึกโครงข่ายประสาทเทียมสำหรับโครงการของฉันโดยใช้ Keras Keras ได้จัดเตรียมฟังก์ชันสำหรับการหยุดก่อนกำหนด ฉันขอทราบได้ไหมว่าควรปฏิบัติตามพารามิเตอร์ใดเพื่อหลีกเลี่ยงไม่ให้เครือข่ายประสาทเทียมของฉันติดตั้งมากเกินไปโดยใช้การหยุดก่อน

6
กำลังโหลดโมเดล Keras ที่ผ่านการฝึกอบรมแล้วทำการฝึกต่อไป
ฉันสงสัยว่าเป็นไปได้หรือไม่ที่จะบันทึกโมเดล Keras ที่ผ่านการฝึกอบรมแล้วบางส่วนและทำการฝึกต่อหลังจากโหลดโมเดลอีกครั้ง เหตุผลนี้คือฉันจะมีข้อมูลการฝึกอบรมมากขึ้นในอนาคตและฉันไม่ต้องการฝึกโมเดลทั้งหมดอีกครั้ง ฟังก์ชั่นที่ฉันใช้คือ: #Partly train model model.fit(first_training, first_classes, batch_size=32, nb_epoch=20) #Save partly trained model model.save('partly_trained.h5') #Load partly trained model from keras.models import load_model model = load_model('partly_trained.h5') #Continue training model.fit(second_training, second_classes, batch_size=32, nb_epoch=20) แก้ไข 1: เพิ่มตัวอย่างการทำงานอย่างสมบูรณ์ ด้วยชุดข้อมูลแรกหลังจาก 10 ยุคความสูญเสียของยุคสุดท้ายจะเท่ากับ 0.0748 และความแม่นยำ 0.9863 หลังจากบันทึกการลบและโหลดโมเดลใหม่แล้วการสูญเสียและความแม่นยำของโมเดลที่ฝึกในชุดข้อมูลที่สองจะเป็น 0.1711 และ 0.9504 ตามลำดับ เกิดจากข้อมูลการฝึกอบรมใหม่หรือจากรูปแบบการฝึกอบรมใหม่ทั้งหมดหรือไม่ """ …

7
Keras ที่มีแบ็กเอนด์ Tensorflow สามารถบังคับให้ใช้ CPU หรือ GPU ได้หรือไม่
ฉันติดตั้ง Keras พร้อมกับแบ็กเอนด์ Tensorflow และ CUDA ฉันต้องการบังคับให้ Keras ใช้ CPU ในบางครั้งตามความต้องการ สามารถทำได้โดยไม่ต้องบอกว่าติดตั้ง Tensorflow เฉพาะ CPU แยกต่างหากในสภาพแวดล้อมเสมือนจริงหรือไม่? ถ้าเป็นอย่างไร หากแบ็กเอนด์เป็น Theano แฟล็กสามารถตั้งค่าได้ แต่ฉันไม่เคยได้ยินเกี่ยวกับแฟล็ก Tensorflow ที่เข้าถึงได้ผ่าน Keras

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.