loss=tf.losses.sigmoid_cross_entropy
我的问题出在loss=tf.losses.sigmoid_cross_entropy(training_labels, logits=logits)
它告诉我更改为ObservableList,但是如果要更改为ObservableList,则无法访问public void calculateTotal(){
int wheelIndex = wheels.getSelectionModel().getSelectedIndex();
int deckIndex = decks.getSelectionModel().getSelectedIndex();
int truckIndex = trucks.getSelectionModel().getSelectedIndex();
int [] miscArray = misc.getSelectionModel().getSelectedIndices();
int miscTotal = 0;
for(int i = 0; i < miscArray.length; i++){
miscTotal += miscPrices[miscArray[i]];
}
}
或int [] miscArray = misc.getSelectionModel().getSelectedIndices();
索引。有人可以帮忙吗?
答案 0 :(得分:1)
方法selectionModel.getSelectedIndices()
返回一个ObservableList<Integer>
而不是一个数组。因此,您必须使用该列表,或者将该列表转换为数组。
要获取列表的大小,您可以仅使用list.size()
方法。要从列表中获取元素,可以使用list.get(index)
。 Here是ObservableList
的完整Java文档。
public void calculateTotal(){
int wheelIndex = wheels.getSelectionModel().getSelectedIndex();
int deckIndex = decks.getSelectionModel().getSelectedIndex();
int truckIndex = trucks.getSelectionModel().getSelectedIndex();
ObservableList<Integer> miscList = misc.getSelectionModel().getSelectedIndices();
int miscTotal = 0;
for(int i = 0; i < miscList.size(); i++){
miscTotal += miscPrices[miscList.get(i)];
}
}
或者,您可以使用Java流:
int miscTotal = miscList.stream().mapToInt(i -> miscPrices[i]).sum();
如果要将ObervableList
转换为数组(我不会这样做),则可以使用list.toArray()
方法。