来自tensorflow白皮书和来自@mrry的https://devcenter.heroku.com/articles/nodejs-support,tensorFlow添加Rendezvous
操作来复制数据跨设备边界,并使用noblocking send, blocking recv
来完成实际工作。在张量流中交叉不同设备的通信方法是Send
。
在从输入数据队列中读取,解析和批处理后,似乎(请纠正我)如果我使用GPU进行训练,批量示例将从CPU发送到GPU。
我想知道何时使用多GPU,CPU中的批量示例是如何发送到多GPU的? CPU中是否有多个Send
操作符,每个操作符都与一个GPU匹配,每个GPU获得一个batch_size示例?或者CPU中只有一个inter_op_parallelism_threads
op?
从文档this answer,Recv
选项配置并行执行的线程池,如注释所述:
//执行阻塞操作的节点在一个池中排队 // inter_op_parallelism_threads可用于每个流程。
是否意味着在设置inter_op_parallelism_threads
选项时,可以在多线程中执行阻塞操作class SecondViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {
@IBOutlet weak var textbox1: UILabel!
@IBOutlet weak var textbox2: UILabel!
@IBOutlet weak var dropdown1: UIPickerView!
@IBOutlet weak var dropdown2: UIPickerView!
var age = ["10-20", "20-30", "30-40"]
var Gender = ["Male", "Female"]
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
var countrows : Int = age.count
if pickerView == dropdown2 {
countrows = self.Gender.count
}
return countrows
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
if pickerView == dropdown1 {
let titleRow = age[row]
return titleRow
} else if pickerView == dropdown2 {
let titleRow = Gender[row]
return titleRow
}
return ""
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
if pickerView == dropdown1 {
self.textbox1.text = self.age[row]
} else if pickerView == dropdown2 {
self.textbox2.text = self.Gender[row]
}
}
}
?
如果对问题的描述不清楚,请进一步询问我。感谢。
答案 0 :(得分:0)
根据我对源代码的深入了解后对tensorflow的理解:
done
回调。