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

ไลบรารีเครือข่ายประสาทเทียมระดับสูงแบบโอเพนซอร์สสำหรับ Python และ R สามารถใช้ TensorFlow หรือ Theano เป็นแบ็กเอนด์ได้

4
ขนาดแบทช์ในเครือข่ายประสาทเทียมคืออะไร
ฉันใช้Python Keras packageสำหรับเครือข่ายประสาท นี่คือการเชื่อมโยง มีbatch_sizeเท่ากับจำนวนตัวอย่างทดสอบ? จาก Wikipedia เรามีข้อมูลนี้ : อย่างไรก็ตามในกรณีอื่น ๆ การประเมินผลรวมของการไล่ระดับสีอาจต้องมีการประเมินราคาแพงของการไล่ระดับสีจากฟังก์ชั่นการสรุปทั้งหมด เมื่อชุดฝึกอบรมมีขนาดใหญ่และไม่มีสูตรง่าย ๆ อยู่การประเมินผลรวมของการไล่ระดับสีจะมีราคาแพงมากเนื่องจากการประเมินการไล่ระดับสีนั้นจำเป็นต้องประเมินการไล่ระดับสีของฟังก์ชันสรุปทั้งหมด เพื่อประหยัดค่าใช้จ่ายในการคำนวณทุกการทำซ้ำการไล่ระดับสีแบบสุ่มสุ่มตัวอย่างของฟังก์ชั่นการสรุปในทุกขั้นตอน สิ่งนี้มีประสิทธิภาพมากในกรณีที่เกิดปัญหาการเรียนรู้ของเครื่องขนาดใหญ่ ข้อมูลข้างต้นอธิบายถึงข้อมูลการทดสอบหรือไม่ เหมือนกับbatch_sizeใน keras (จำนวนตัวอย่างต่อการไล่ระดับสี) หรือไม่

2
เลเยอร์ Keras 'การฝัง' ทำงานอย่างไร
จำเป็นต้องเข้าใจการทำงานของเลเยอร์ 'การฝัง' ในไลบรารี Keras ฉันรันโค้ดต่อไปนี้ใน Python import numpy as np from keras.models import Sequential from keras.layers import Embedding model = Sequential() model.add(Embedding(5, 2, input_length=5)) input_array = np.random.randint(5, size=(1, 5)) model.compile('rmsprop', 'mse') output_array = model.predict(input_array) ซึ่งให้ผลลัพธ์ต่อไปนี้ input_array = [[4 1 3 3 3]] output_array = [[[ 0.03126476 0.00527241] [-0.02369716 -0.02856163] [ …

5
ฟังก์ชั่นการสูญเสียสำหรับงานการจำแนกประเภทหลายคลาสและหลายฉลากในเครือข่ายประสาทเทียมคืออะไร?
ฉันกำลังฝึกโครงข่ายประสาทเทียมเพื่อจัดกลุ่มวัตถุเป็นคลาส n แต่ละวัตถุสามารถเป็นของหลายคลาสในเวลาเดียวกัน (หลายคลาสหลายป้าย) ฉันอ่านว่าสำหรับปัญหาหลายคลาสแนะนำโดยทั่วไปให้ใช้ softmax และหมวดหมู่ข้ามเอนโทรปีเป็นฟังก์ชั่นการสูญเสียแทน mse และฉันเข้าใจมากขึ้นหรือน้อยลงว่าทำไม สำหรับปัญหาของฉันเกี่ยวกับมัลติ - เลเบลมันไม่สมเหตุสมผลที่จะใช้ซอฟต์แม็กซ์แน่นอนเพราะความน่าจะเป็นในแต่ละชั้นควรเป็นอิสระจากที่อื่น ดังนั้นชั้นสุดท้ายของฉันคือหน่วย sigmoid ที่สควอชใส่ลงในช่วงความน่าจะเป็น 0..1 สำหรับทุกชั้น ตอนนี้ฉันไม่แน่ใจว่าฟังก์ชั่นการสูญเสียที่ฉันควรใช้สำหรับสิ่งนี้ เมื่อพิจารณาถึงคำจำกัดความของ crossentropy ที่เป็นหมวดหมู่ฉันเชื่อว่ามันจะใช้ไม่ได้กับปัญหานี้เพราะมันจะคำนึงถึงผลลัพธ์ของเซลล์ประสาทที่ควรจะเป็น 1 เท่านั้นและไม่สนใจสิ่งอื่น เอนโทรปีของ Binary cross ดูเหมือนว่าจะเหมาะกว่า แต่ฉันเห็นเพียงว่ามันเคยถูกกล่าวถึงสำหรับปัญหาการจำแนกเลขฐานสองด้วยเซลล์ประสาทเอาท์พุทเดี่ยว ฉันใช้ python และ keras เพื่อฝึกฝนในกรณีที่มันสำคัญ

5
ฉันจะทำให้เครือข่ายประสาทของฉันดีขึ้นในการทำนายคลื่นไซน์ได้อย่างไร
ดูที่นี่: คุณสามารถดูได้ว่าข้อมูลการฝึกอบรมสิ้นสุดลงที่ใด การฝึกอบรมข้อมูลไปจากที่จะ1- 1-1-1111 ฉันใช้ Keras และเครือข่ายหนาแน่น 1-100-100-2 ด้วยการเปิดใช้งาน tanh ฉันคำนวณผลลัพธ์จากสองค่าคือ p และ q เป็น p / q ด้วยวิธีนี้ฉันสามารถบรรลุขนาดใดก็ได้โดยใช้ค่าน้อยกว่า 1 ค่า โปรดทราบว่าฉันยังเป็นผู้เริ่มต้นในสาขานี้ดังนั้นไปง่าย ๆ กับฉัน

3
การทำความเข้าใจกับพารามิเตอร์ input_shape ใน LSTM ด้วย Keras
ฉันพยายามใช้ตัวอย่างที่อธิบายไว้ในเอกสารประกอบของ Kerasชื่อ "Stacked LSTM สำหรับการจำแนกลำดับ" (ดูรหัสด้านล่าง) และไม่สามารถหาinput_shapeพารามิเตอร์ในบริบทของข้อมูลของฉัน ฉันมีเป็น input เมทริกซ์ของลำดับของ 25 ตัวอักษรที่เป็นไปได้เข้ารหัสในจำนวนเต็มลำดับเบาะของความยาวสูงสุด 31 เป็นผลให้ฉันx_trainมีรูปร่างความหมาย(1085420, 31)(n_observations, sequence_length) from keras.models import Sequential from keras.layers import LSTM, Dense import numpy as np data_dim = 16 timesteps = 8 num_classes = 10 # expected input data shape: (batch_size, timesteps, data_dim) model = Sequential() model.add(LSTM(32, …
20 lstm  keras  shape  dimensions 

4
Conv1D และ Conv2D แตกต่างกันอย่างไร?
ฉันกำลังดำเนินการเอกสารการแปลงแบบ keras และพบ Convivuion Conv1 สองประเภทและ Conv2D สองประเภท ฉันค้นหาเว็บและนี่คือสิ่งที่ฉันเข้าใจเกี่ยวกับ Conv1D และ Conv2D; Conv1D ใช้สำหรับซีเควนซ์และ Conv2D ใช้สำหรับอิมเมจ ฉันมักจะคิดว่าเครือข่ายที่ใช้ร่วมกันของ convolution นั้นใช้สำหรับรูปภาพและซีเอ็นเอ็นด้วยวิธีนี้เท่านั้น ภาพนั้นถือเป็นเมทริกซ์ขนาดใหญ่จากนั้นฟิลเตอร์จะเลื่อนผ่านเมทริกซ์นี้และคำนวณผลคูณของจุด ฉันเชื่อว่าสิ่งที่ keras กล่าวถึงในฐานะ Conv2D ถ้า Conv2D ทำงานในลักษณะนี้แล้วกลไกของ Conv1D คืออะไรและเราจะจินตนาการกลไกของมันได้อย่างไร

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

1
เหตุใด ReLU เดียวจึงไม่สามารถเรียนรู้ ReLU ได้
จากการติดตามเครือข่ายประสาทของฉันไม่สามารถเรียนรู้ระยะทางแบบยุคลิดฉันได้ง่ายขึ้นและพยายามฝึกฝน ReLU เดี่ยว (ด้วยน้ำหนักสุ่ม) ไปยัง ReLU เดียว นี่คือเครือข่ายที่ง่ายที่สุดที่มีอยู่และยังครึ่งหนึ่งของเวลาที่มันไม่มาบรรจบกัน หากการเดาเริ่มต้นอยู่ในทิศทางเดียวกับเป้าหมายมันจะเรียนรู้ได้อย่างรวดเร็วและแปลงเป็นน้ำหนักที่ถูกต้อง 1: หากการเดาเริ่มต้นคือ "ถอยหลัง" มันจะติดอยู่ที่น้ำหนักเป็นศูนย์และไม่ผ่านไปยังพื้นที่ที่มีการสูญเสียต่ำกว่า: ฉันไม่เข้าใจว่าทำไม โคตรลาดชันไม่ควรทำตามโค้งการสูญเสียไปสู่มินิมาระดับโลกอย่างง่ายดายหรือไม่? รหัสตัวอย่าง: from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense, ReLU from tensorflow import keras import numpy as np import matplotlib.pyplot as plt batch = 1000 def tests(): while True: test = np.random.randn(batch) # Generate ReLU …

2
วิธีการฝึกเลเยอร์การฝังในเลเยอร์ Keras การฝัง
เลเยอร์การฝังได้รับการฝึกฝนในเลเยอร์ Keras อย่างไร (พูดโดยใช้ tensorflow แบ็กเอนด์ความหมายมันคล้ายกับ word2vec, ถุงมือหรือข้อความอย่างรวดเร็ว) สมมติว่าเราไม่ใช้การฝังที่ถูกเตรียมไว้

3
CIFAR-10 ไม่สามารถรับความแม่นยำสูงกว่า 60% ได้ Keras พร้อมแบ็กเอนด์ Tensorflow [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามดังนั้นจึงเป็นหัวข้อสำหรับการตรวจสอบข้าม ปิดเมื่อปีที่แล้ว การฝึกอบรมหลังจาก 15 epochs บนชุดข้อมูล CIFAR-10 ดูเหมือนว่าจะทำให้การสูญเสียการตรวจสอบความถูกต้องไม่ลดลงอีกต่อไปโดยประมาณ 1.4 (มีความแม่นยำในการตรวจสอบ 60%) ฉันได้สับชุดฝึกอบรมแล้วหารด้วย 255 และนำเข้าเป็น float32 ฉันได้ลองสถาปัตยกรรมจำนวนมากทั้งที่มีและไม่มีการออกกลางคันในชั้น Conv2D และดูเหมือนว่าจะไม่มีอะไรทำงาน สถาปัตยกรรมเดียวกันมีความแม่นยำถึง 99.7% สำหรับชุดทดสอบสำหรับ MNIST โปรดดูสถาปัตยกรรมด้านล่าง: (หมายเหตุ: ฉันได้ลองเพิ่มการออกกลางคันและเพิ่ม / ลดอัตราการเรียนรู้ของเครื่องมือเพิ่มประสิทธิภาพ Adam เพื่อป้องกันการ overfitting ทั้งหมดนี้เป็นการป้องกันการ overfitting แต่ด้วยชุดฝึกอบรมและการทดสอบที่มีความแม่นยำต่ำประมาณ 60%) with tf.device('/gpu:0'): tf.placeholder(tf.float32, shape=(None, 20, 64)) #placeholder initialized (pick /cpu:0 or /gpu:0) …

1
เครือข่ายประสาทของฉันไม่สามารถเรียนรู้ระยะทางแบบยุคลิด
ดังนั้นฉันจึงพยายามสอนตัวเองเกี่ยวกับโครงข่ายประสาทเทียม (สำหรับแอพพลิเคชั่นการถดถอยไม่แบ่งภาพแมว) การทดลองครั้งแรกของฉันคือการฝึกอบรมเครือข่ายเพื่อใช้ตัวกรอง FIR และการแปลงฟูริเยร์แบบไม่ต่อเนื่อง (การฝึกอบรมเรื่อง "ก่อน" และ "หลัง") เนื่องจากการดำเนินการเชิงเส้นทั้งสองนั้นสามารถใช้งานได้ในชั้นเดียว ทั้งสองทำงานได้ดี ดังนั้นฉันอยากดูว่าฉันสามารถเพิ่มabs()และทำให้เรียนรู้สเปกตรัมแอมพลิจูด ครั้งแรกที่ฉันคิดเกี่ยวกับจำนวนโหนดที่มันจะต้องอยู่ในชั้นที่ซ่อนอยู่และตระหนักว่า 3 ReLUs นั้นเพียงพอสำหรับการประมาณที่หยาบกabs(x+jy) = sqrt(x² + y²)ร้านดังนั้นฉันจึงทดสอบการทำงานด้วยตัวเองบนตัวเลขที่ซับซ้อนโดดเดี่ยว (2 อินพุต→ 3 ReLU โหนดที่ซ่อนชั้น→ 1 เอาท์พุท) มันทำงานเป็นครั้งคราว: แต่ส่วนใหญ่เวลาที่ฉันลองมันติดอยู่ในขั้นต่ำในท้องถิ่นและล้มเหลวในการหารูปร่างที่เหมาะสม: ฉันลองใช้เครื่องมือเพิ่มประสิทธิภาพและชุดรูปแบบ ReLU ทั้งหมดใน Keras แต่พวกเขาไม่ได้สร้างความแตกต่างมากนัก มีอะไรอีกบ้างที่ฉันสามารถทำได้เพื่อทำให้เครือข่ายง่าย ๆ เช่นนี้มาบรรจบกันอย่างน่าเชื่อถือ? หรือฉันกำลังเข้าใกล้สิ่งนี้ด้วยทัศนคติที่ไม่ถูกต้องและคุณควรจะทิ้งโหนดมากกว่าที่จำเป็นในปัญหาและถ้าครึ่งหนึ่งของพวกเขาตายมันไม่ถือว่าเป็นเรื่องใหญ่อะไร?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.