คำถามติดแท็ก neural-network

โครงสร้างเครือข่ายที่ได้รับแรงบันดาลใจจากแบบจำลองที่เรียบง่ายของเซลล์ประสาททางชีววิทยา (เซลล์สมอง) โครงข่ายประสาทเทียมได้รับการฝึกฝนให้ "เรียนรู้" โดยใช้เทคนิคภายใต้การดูแลและไม่ได้รับการดูแลและสามารถใช้เพื่อแก้ปัญหาการเพิ่มประสิทธิภาพปัญหาการประมาณจำแนกรูปแบบและการผสมผสานดังกล่าว

6
tf.nn.conv2d ทำอะไรใน tensorflow?
ฉันถูกมองที่เอกสารของ tensorflow เกี่ยวกับที่นี่tf.nn.conv2d แต่ฉันไม่เข้าใจว่ามันทำอะไรหรือพยายามทำอะไร มันบอกในเอกสาร # 1: แผ่ฟิลเตอร์เป็นเมทริกซ์ 2 มิติที่มีรูปร่าง [filter_height * filter_width * in_channels, output_channels]. ตอนนี้ทำอะไร? นั่นคือการคูณอย่างชาญฉลาดขององค์ประกอบหรือการคูณเมทริกซ์ธรรมดา? ฉันยังไม่เข้าใจอีกสองประเด็นที่กล่าวถึงในเอกสาร ฉันได้เขียนไว้ด้านล่าง: # 2: ดึงแพทช์รูปภาพจากเทนเซอร์อินพุตเพื่อสร้างเทนเซอร์เสมือนของรูปร่าง [batch, out_height, out_width, filter_height * filter_width * in_channels]. # 3: สำหรับแต่ละแพตช์ให้คูณเมทริกซ์ตัวกรองและเวกเตอร์แพทช์รูปภาพ มันจะมีประโยชน์มากถ้าใครสามารถยกตัวอย่างโค้ด (มีประโยชน์มาก) อาจจะและอธิบายว่าเกิดอะไรขึ้นที่นั่นและทำไมการดำเนินการจึงเป็นเช่นนี้ ฉันได้ลองเข้ารหัสส่วนเล็ก ๆ แล้วพิมพ์รูปร่างของการทำงาน ยังไงก็ไม่เข้าใจ ฉันลองทำสิ่งนี้: op = tf.shape(tf.nn.conv2d(tf.random_normal([1,10,10,10]), tf.random_normal([2,10,10,10]), strides=[1, 2, 2, 1], …


2
ทำไมเราต้องเรียก zero_grad () ใน PyTorch
zero_grad()ต้องมีการเรียกวิธีการนี้ในระหว่างการฝึกอบรม แต่เอกสารประกอบก็ไม่ค่อยมีประโยชน์ | zero_grad(self) | Sets gradients of all model parameters to zero. ทำไมเราต้องเรียกวิธีนี้?

9
การสั่งซื้อชุดงานปกติและการออกกลางคัน?
คำถามเดิมนั้นเกี่ยวกับการใช้งาน TensorFlow โดยเฉพาะ อย่างไรก็ตามคำตอบสำหรับการใช้งานโดยทั่วไป คำตอบทั่วไปนี้เป็นคำตอบที่ถูกต้องสำหรับ TensorFlow เมื่อใช้ batch normalization และ dropout ใน TensorFlow (โดยเฉพาะการใช้ Contrib.layers) ฉันต้องกังวลเกี่ยวกับการสั่งซื้อหรือไม่ ดูเหมือนเป็นไปได้ว่าถ้าฉันใช้การออกกลางคันตามด้วยการทำให้เป็นมาตรฐานแบทช์ทันทีอาจมีปัญหา ตัวอย่างเช่นหากการเปลี่ยนแปลงในการปรับมาตรฐานแบตช์ไปสู่จำนวนสเกลที่ใหญ่ขึ้นของผลลัพธ์การฝึกอบรม แต่การเปลี่ยนแปลงเดียวกันนั้นจะถูกนำไปใช้กับตัวเลขสเกลที่เล็กลง (เนื่องจากการชดเชยสำหรับการมีเอาต์พุตมากกว่า) โดยไม่ต้องออกกลางคันระหว่างการทดสอบ กะอาจจะปิด เลเยอร์การปรับมาตรฐานแบตช์ TensorFlow ชดเชยสิ่งนี้โดยอัตโนมัติหรือไม่ หรือไม่เกิดขึ้นด้วยเหตุผลบางอย่างที่ฉันหายไป? นอกจากนี้ยังมีข้อผิดพลาดอื่น ๆ ที่ควรระวังเมื่อใช้ทั้งสองอย่างร่วมกัน? ตัวอย่างเช่นสมมติว่าผมใช้พวกเขาในลำดับที่ถูกต้องในการไปถึงข้างต้น (สมมติว่ามีเป็นคำสั่งที่ถูกต้อง) อาจมีปัญหาเกี่ยวกับการใช้ทั้งการฟื้นฟูชุดและการออกกลางคันในแต่ละชั้นหลาย ฉันไม่เห็นปัญหาในทันที แต่ฉันอาจจะขาดอะไรไป ขอบคุณมาก! อัพเดท: การทดสอบการทดลองดูเหมือนจะชี้ให้เห็นว่าการสั่งซื้อไม่ว่า ฉันรันเครือข่ายเดียวกันสองครั้งโดยมีเพียงบรรทัดฐานแบทช์และย้อนกลับกลางคัน เมื่อการออกกลางคันอยู่ก่อนบรรทัดฐานของแบทช์การสูญเสียการตรวจสอบความถูกต้องดูเหมือนจะเพิ่มขึ้นเนื่องจากการสูญเสียการฝึกกำลังจะลดลง พวกเขาทั้งสองจะลดลงในอีกกรณีหนึ่ง แต่ในกรณีของฉันการเคลื่อนไหวช้าดังนั้นสิ่งต่างๆอาจเปลี่ยนไปหลังจากการฝึกฝนมากขึ้นและเป็นการทดสอบเพียงครั้งเดียว คำตอบที่ชัดเจนและมีข้อมูลมากขึ้นจะยังคงได้รับการชื่นชม

4
Tensorflow Strides Argument
ฉันพยายามเข้าใจอาร์กิวเมนต์stridesใน tf.nn.avg_pool, tf.nn.max_pool, tf.nn.conv2d เอกสารซ้ำแล้วซ้ำอีกว่า strides: รายการ ints ที่มีความยาว> = 4 ขั้นตอนของหน้าต่างบานเลื่อนสำหรับแต่ละมิติของอินพุตเทนเซอร์ คำถามของฉันคือ: จำนวนเต็ม 4+ แต่ละตัวแสดงถึงอะไร เหตุใดพวกเขาจึงต้องมีความก้าวหน้า [0] = ก้าว [3] = 1 สำหรับ Convnets ในตัวอย่างนี้tf.reshape(_X,shape=[-1, 28, 28, 1])เราจะเห็น ทำไม -1? น่าเศร้าที่ตัวอย่างในเอกสารสำหรับการสร้างรูปร่างใหม่โดยใช้ -1 แปลได้ไม่ดีนักกับสถานการณ์นี้

4
Pytorch อาร์กิวเมนต์ไล่ระดับคืออะไร
ฉันกำลังอ่านเอกสารของ PyTorch และพบตัวอย่างที่พวกเขาเขียน gradients = torch.FloatTensor([0.1, 1.0, 0.0001]) y.backward(gradients) print(x.grad) โดยที่ x เป็นตัวแปรเริ่มต้นซึ่ง y ถูกสร้างขึ้น (เวกเตอร์ 3 ตัว) คำถามคืออาร์กิวเมนต์ 0.1, 1.0 และ 0.0001 ของเทนเซอร์ไล่ระดับสีคืออะไร? เอกสารประกอบยังไม่ชัดเจนในเรื่องนี้

3
sparse_softmax_cross_entropy_with_logits กับ softmax_cross_entropy_with_logits ต่างกันอย่างไร
ฉันเพิ่งมาข้ามtf.nn.sparse_softmax_cross_entropy_with_logitsและผมก็ไม่สามารถคิดออกสิ่งที่แตกต่างเมื่อเทียบกับtf.nn.softmax_cross_entropy_with_logits ความแตกต่างเพียงอย่างเดียวที่เวกเตอร์การฝึกอบรมyต้องเข้ารหัสแบบร้อนเดียวเมื่อใช้sparse_softmax_cross_entropy_with_logits? อ่าน API ที่ผมไม่สามารถที่จะค้นหาความแตกต่างอื่น ๆ softmax_cross_entropy_with_logitsเมื่อเทียบกับ แต่ทำไมเราถึงต้องการฟังก์ชันพิเศษ? ไม่ควรsoftmax_cross_entropy_with_logitsให้ผลลัพธ์เช่นเดียวsparse_softmax_cross_entropy_with_logitsกับที่มาพร้อมกับข้อมูลการฝึกอบรม / เวกเตอร์ที่เข้ารหัสร้อนเดียวหรือไม่?

16
แหล่งข้อมูลที่ดีสำหรับการเรียนรู้เกี่ยวกับโครงข่ายประสาทเทียมมีอะไรบ้าง [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน6 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันสนใจเครือข่ายประสาทเทียมมาก แต่กำลังมองหาจุดเริ่มต้น มีทรัพยากรอะไรบ้างและโครงการเริ่มต้นที่ดีคืออะไร?

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 งานอาจมีคำอธิบายเล็กน้อย

9
เหตุใดจึงควรกำหนดน้ำหนักของโครงข่ายประสาทเทียมให้เป็นตัวเลขสุ่ม [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน28 วันที่ผ่านมา ปรับปรุงคำถามนี้ ฉันกำลังพยายามสร้างเครือข่ายประสาทตั้งแต่เริ่มต้น ในวรรณคดี AI ทั้งหมดมีความเห็นตรงกันว่าน้ำหนักควรเริ่มต้นเป็นตัวเลขสุ่มเพื่อให้เครือข่ายมาบรรจบกันได้เร็วขึ้น แต่ทำไมน้ำหนักเริ่มต้นของโครงข่ายประสาทเทียมจึงเริ่มต้นเป็นตัวเลขสุ่ม ฉันเคยอ่านที่ไหนสักแห่งว่าสิ่งนี้ทำเพื่อ "ทำลายสมมาตร" และทำให้โครงข่ายประสาทเทียมเรียนรู้ได้เร็วขึ้น การทำลายสมมาตรทำให้เรียนรู้เร็วขึ้นได้อย่างไร จะไม่เริ่มต้นน้ำหนักเป็น 0 เป็นความคิดที่ดีกว่าหรือ? ด้วยวิธีนี้น้ำหนักจะสามารถหาค่า (ไม่ว่าจะเป็นบวกหรือลบ) ได้เร็วขึ้น? มีปรัชญาพื้นฐานอื่น ๆ ที่อยู่เบื้องหลังการสุ่มน้ำหนักนอกเหนือจากการหวังว่าค่าเหล่านี้จะอยู่ใกล้ค่าที่เหมาะสมที่สุดเมื่อเริ่มต้นหรือไม่?

4
สถาปัตยกรรม perceptron (MLP) หลายชั้น: เกณฑ์ในการเลือกจำนวนชั้นที่ซ่อนและขนาดของชั้นที่ซ่อนอยู่?
ถ้าเรามี eigenvectors 10 ตัวเราก็จะมี 10 โหนดประสาทในชั้นอินพุตได้ถ้าเรามีเอาต์พุต 5 คลาสเราจะมี 5 โหนดในเลเยอร์เอาต์พุต แต่เกณฑ์ในการเลือกจำนวนเลเยอร์ที่ซ่อนอยู่ใน MLP คืออะไรและมีกี่นิวรัล โหนดใน 1 ชั้นที่ซ่อนอยู่?

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 ตามลำดับ เกิดจากข้อมูลการฝึกอบรมใหม่หรือจากรูปแบบการฝึกอบรมใหม่ทั้งหมดหรือไม่ """ …

3
วิธีการต่อสองชั้นใน keras?
ฉันมีตัวอย่างของโครงข่ายประสาทเทียมที่มีสองชั้น เลเยอร์แรกรับสองอาร์กิวเมนต์และมีหนึ่งเอาต์พุต ข้อที่สองควรใช้อาร์กิวเมนต์หนึ่งอันเนื่องจากเลเยอร์แรกและอาร์กิวเมนต์เพิ่มเติมอีกหนึ่งอาร์กิวเมนต์ ควรมีลักษณะดังนี้: x1 x2 x3 \ / / y1 / \ / y2 ดังนั้นผมต้องการสร้างรูปแบบที่มีสองชั้นและพยายามที่จะตัดพวกเขา แต่มันกลับข้อผิดพลาด: ในบรรทัดThe first layer in a Sequential model must get an "input_shape" or "batch_input_shape" argument.result.add(merged) รุ่น: first = Sequential() first.add(Dense(1, input_shape=(2,), activation='sigmoid')) second = Sequential() second.add(Dense(1, input_shape=(1,), activation='sigmoid')) result = Sequential() merged = Concatenate([first, …

10
จะเพิ่มการทำให้เป็นระเบียบใน TensorFlow ได้อย่างไร?
ฉันพบในรหัสเครือข่ายประสาทเทียมที่มีอยู่จำนวนมากที่ใช้งานโดยใช้ TensorFlow ว่าเงื่อนไขการทำให้เป็นมาตรฐานมักจะถูกนำมาใช้โดยการเพิ่มคำเพิ่มเติมด้วยตนเองเพื่อมูลค่าการสูญเสีย คำถามของฉันคือ: มีวิธีการทำให้เป็นมาตรฐานที่หรูหรากว่าหรือที่แนะนำมากกว่าการทำด้วยตนเองหรือไม่? ฉันยังพบว่ามีการโต้แย้งget_variable regularizerควรใช้อย่างไร? จากการสังเกตของฉันถ้าเราส่ง Regularizer ไปที่มัน (เช่นtf.contrib.layers.l2_regularizerเทนเซอร์ที่เป็นตัวแทนของคำศัพท์ปกติจะถูกคำนวณและเพิ่มลงในคอลเลกชันกราฟที่มีชื่อtf.GraphKeys.REGULARIZATOIN_LOSSESTensorFlow จะใช้คอลเล็กชันนั้นโดยอัตโนมัติหรือไม่ (เช่นใช้โดยเครื่องมือเพิ่มประสิทธิภาพเมื่อฝึก) หรือ คาดว่าฉันควรใช้คอลเลกชันนั้นด้วยตัวเองหรือไม่?

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