เครือข่ายประสาท Tensorflow TypeError: อาร์กิวเมนต์การดึงข้อมูลมีประเภทที่ไม่ถูกต้อง


11

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

ความผิดพลาด:

TypeError: ดึงข้อมูลอาร์กิวเมนต์ 2861.6152 จาก 2861.6152 มีประเภทที่ไม่ถูกต้องจะต้องเป็นสตริงหรือ Tensor (ไม่สามารถแปลง float32 เป็น Tensor หรือ Operation)

ข้อผิดพลาดอ้างถึงบรรทัดต่อไปนี้ในรหัสของฉัน:

_, cost = tf_session.run([optimizer, cost], feed_dict = {champion_data: batch_input, item_data: batch_output})

ฉันพบแล้วว่าข้อผิดพลาดจะไม่เกิดขึ้นเมื่อฉันใส่ความคิดเห็นในบรรทัดต่อไปนี้ในรหัสของฉัน:

prediction = neural_network_model(champion_data)
cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(prediction, item_data))
optimizer = tf.train.AdamOptimizer().minimize(cost)
_, cost = tf_session.run([optimizer, cost], feed_dict = {champion_data: batch_input, item_data: batch_output})

ดังนั้นหนึ่งในบรรทัดเหล่านี้จะได้รับสิ่งที่ดูไม่เหมือนที่คาดไว้ ฉันได้ลองแล้วชัดเจน (ลบ np.array () จาก batch_input และ batch_output หรือแทนที่ด้วย list ()) แต่นั่นไม่ได้แก้ปัญหา สมมติฐานปัจจุบันของฉันคือการส่งออกของ neural_network_model (แชมป์_data) เป็นอย่างใดอย่างหนึ่งของรูปร่างหรือประเภทที่ไม่ถูกต้อง แต่ฉันไม่แน่ใจว่าจะทดสอบวิธีการนั้น

รหัสเต็มสามารถดูได้ที่นี่: https://gist.github.com/HasseIona/4bcaf9f95ae828e056d5210a2ea07f88

แก้ไข: ฉันได้ตรวจสอบแล้วว่าข้อมูลแชมเปี้ยนที่ป้อนเข้าสู่ neural_network_model การทำนายและค่าใช้จ่ายเป็นเมตริกซ์ทั้งหมด ฉันพยายามที่จะแก้ปัญหาโดยใช้สมมุติฐานว่าปัญหาอยู่ในส่วนของ feed_dict = {} ของรหัส แต่ไม่ได้ไปไหนไกล

คำตอบ:


17

ปัญหาอยู่ที่การใช้ชื่อ 'ต้นทุน' สองครั้งปัญหาได้รับการแก้ไขโดยการเปลี่ยนแปลงสิ่งนี้:

_, cost = tf_session.run([optimizer, cost], feed_dict = {champion_data: batch_input, item_data: batch_output})

สำหรับสิ่งนี้:

_, c = tf_session.run([optimizer, cost], feed_dict = {champion_data: batch_input, item_data: batch_output})

วิธีนี้ชื่อของตัวแปร 'c' จะไม่ขัดแย้งกันอีกต่อไปด้วยส่วนของ [optimizer, cost] ของโค้ด


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