我正在構建一個神經網絡模型,其數據矩陣的列數(行爲)相同但行數不同,因此訓練標籤的大小也不相同。我使用logit作爲損失函數的交叉熵。Tensorflow - softmax與不同大小的數據
例如,我有數據是這樣的:
data1 = np.array([[0.1,0.2,0.3],[0.2,0.3,0.4],[0.3,0.4,0.5]])
data2 = np.array([[0.2,0.3,0.4],[0.3,0.4,0.5]])
label_1 = np.array([0,0,1])
label_2 = np.array([1,0])
所以我們有尺寸(3×)和偏差b的權重向量,並且我們的損失函數是:
loss = -1*(log(label_1*softmax(data1*weight+b)) + log(label_2*softmax(data2*weight+b)))
在Tensorflow,我知道我可以定義一個佔位符無維度,例如:
tf_data = tf.placeholder(tf.float32, shape=(batch_size, None, feature_size))
tf_labels = tf.placeholder(tf.float32, shape=(batch_size, None))
我的問題是,我怎麼能養活DAT a到feed_dict
?由於data = np.array([data1,data2])
返回numpy的陣列中存儲兩個numpy的陣列和導致:
ValueError: setting an array element with a sequence
此外,什麼tensorflow函數I可以用它來計算data*weight? tf.matmul(data,weight)
結果在形狀必須秩2但爲秩3「MATMUL」