1. 程式人生 > >【TensorFlow】ValueError: Shape must be rank 1 but is rank 0 for ' ’ with input shapes: [].問題

【TensorFlow】ValueError: Shape must be rank 1 but is rank 0 for ' ’ with input shapes: [].問題

基於TensorFlow訓練mnist資料集出現如下錯誤:

檢測程式碼,發現是偏置設定格式錯誤導致。

1、錯誤程式碼: 

# 定義權重和偏置
n_input = 784
n_output = 10
weights = {
    'wc1': tf.Variable(tf.random_normal([3, 3, 1, 64], stddev=0.1)),
    'wc2': tf.Variable(tf.random_normal([3, 3, 64, 128], stddev=0.1)),
    'wd1': tf.Variable(tf.random_normal([7 * 7 * 128, 1024], stddev=0.1)),
    'wd2': tf.Variable(tf.random_normal([1024, n_output], stddev=0.1))
}
biases = {
    'bc1': tf.Variable(tf.random_normal(64), stddev=0.1),
    'bc2': tf.Variable(tf.random_normal(128), stddev=0.1),
    'bd1': tf.Variable(tf.random_normal(1024), stddev=0.1),
    'bd2': tf.Variable(tf.random_normal(n_output), stddev=0.1)
}

2、修改後的程式碼如下:

把biases的"()"改為"[]"

#定義權重和偏置
n_input = 784
n_output= 10
weights = {
    'wc1':tf.Variable(tf.random_normal([3,3,1,64], stddev=0.1)),
    'wc2':tf.Variable(tf.random_normal([3,3,64,128],stddev=0.1)),
    'wd1':tf.Variable(tf.random_normal([7*7*128,1024],stddev=0.1)),
    'wd2':tf.Variable(tf.random_normal([1024,n_output],stddev=0.1))
}
biases = {
    'bc1':tf.Variable(tf.random_normal([64], stddev=0.1)),
    'bc2':tf.Variable(tf.random_normal([128],stddev=0.1)),
    'bd1':tf.Variable(tf.random_normal([1024],stddev=0.1)),
    'bd2':tf.Variable(tf.random_normal([n_output],stddev=0.1))
}