前几天我和一位朋友在午餐时讨论神经网络(NN),他声称用Java编写的NN的性能类似于用C++编写的.我知道,通过'及时'编译技术,Java可以做得很好,但不知怎的,我只是不买它.有没有人有经验可以解释这个问题? 这个页面是我对这个主题的阅读程度.
我准备谈谈我从人工智能领域(神经网络)中选择的一些话题.我正在寻找一些有趣的东西,在现实生活中使用,最好不要太复杂(越简单,学生越容易理解,他们就越感兴趣).我认为这是寻找建议的好地方;)
是否有一种标准的高性能方法可以快速编辑/绘制 CVImageBuffer/CVPixelBuffer?
我在网上找到的所有视频编辑演示都将绘图(矩形或文本)覆盖在屏幕上,并且不直接编辑 CVPixelBuffer。
更新我尝试使用 CGContext 但保存的视频不显示上下文绘图
private var adapter: AVAssetWriterInputPixelBufferAdaptor?
extension TrainViewController: CameraFeedManagerDelegate {
func didOutput(sampleBuffer: CMSampleBuffer) {
let time = CMTime(seconds: timestamp - _time, preferredTimescale: CMTimeScale(600))
let pixelBuffer: CVPixelBuffer? = CMSampleBufferGetImageBuffer(sampleBuffer)
guard let context = CGContext(data: CVPixelBufferGetBaseAddress(pixelBuffer),
width: width,
height: height,
bitsPerComponent: 8,
bytesPerRow: CVPixelBufferGetBytesPerRow(pixelBuffer),
space: colorSpace,
bitmapInfo: alphaInfo.rawValue)
else {
return nil
}
context.setFillColor(red: 1, green: 0, blue: 0, alpha: 1.0)
context.fillEllipse(in: CGRect(x: 0, y: 0, width: width, height: height))
context.flush()
adapter?.append(pixelBuffer, withPresentationTime: time)
}
}
Run Code Online (Sandbox Code Playgroud) 我是一名商务专业,三分之二通过我的学位课程,有一点PHP经验,参加过一门C++入门课程,现在后悔选择了编程/计算机科学的业务.
我有兴趣学习更高级的编程; 特别是C,并最终进展到使用CUDA架构进行人工神经网络数据分析(不是用于AI,视觉或语音处理,而是用于查找大数据集和一般数据/统计分析中的数据点之间的相关性).
关于我应该如何开始学习C的任何建议?以及用于分析数据的ANN /贝叶斯技术?那里有很多书,我不知道该选择什么.
由于CUDA是相当新的,因此似乎没有太多学习者友好(即愚蠢的)材料.除了NVIDIA文档之外,CUDA还有学习资源吗?
此外,您会向我推荐哪些资源来讨论GPGPU计算和大规模并行编程,这对我有帮助?
我想删除,如果可能的话,从我的类头文件中包含<vector>和<string>.string和vector都是头文件中声明的函数的返回类型.
我希望我可以这样做:
namespace std {
template <class T>
class vector;
}
Run Code Online (Sandbox Code Playgroud)
并且,在标头中声明向量并将其包含在源文件中.
是否有参考文献,包括您必须在标题中包含的情况,以及您可以将包含纳入源文件的情况?
在数字食谱中,他们使用我以前从未见过的东西,并且无法轻易找到以下信息:
void fun( std::vector<double> derivatives(const double, const std::vector<double> &) ) { ...; derivatives(...); ...; }
Run Code Online (Sandbox Code Playgroud)
我猜测是通过引用传递函数(这是正确的)吗?为什么这对使用函数指针有利?在哪种情况下,每种方法都优先?
我有第二个问题: 当我第一次调用该函数时,程序会挂起几秒钟.现在,我传入的参数函数本身从函数指针调用不同的函数,即
vector<double>(*pfI)(const double) = NULL;
...
pfI = pointedToFun;
void argFun() { ...; deRefPointedFun = (*Theta::pfI)(t); deRefPointedFun(); }
Run Code Online (Sandbox Code Playgroud)
处理2级引用/指针函数的更好方法是什么?
我曾经generate scaffold设置过基本的RESTful操作,但我想扩展操作以包含"购买"之类的内容.有没有办法使用命令行生成样板文件(控制器文件中的存根函数和更新的路径文件?)?
据我所知generate controller擦拭或离开现有文件 - 没有很好的方法来合并它们.
我正在创建一个神经网络,并希望使用hash_map来保持每个神经元的输出神经元的权重参考:
class Neuron; //forward declaration was there (sorry I forgot to show it earlier)
typedef double WEIGHT;
typedef stdext::hash_map<boost::shared_ptr<Neuron>,WEIGHT> NeuronWeightMap;
class Neuron
{
private:
NeuronWeightMap m_outputs;
//...
public:
Neuron();
~Neuron();
//...
WEIGHT GetWeight(const boost::shared_ptr<Neuron>& neuron) const
{
NeuronWeightMap::const_iterator itr = m_outputs.find(neuron);
if( itr != m_outputs.end() )
{
return itr->second;
}
return 0.0f;
}
};
Run Code Online (Sandbox Code Playgroud)
我意识到我不能使用boost :: shared_ptr作为stdext :: hash_map的键,那么另一个建议是什么呢?是否有任何解决方法或是使用不同密钥或切换到std :: map的唯一选择?谢谢!
这是错误:
1>c:\program files (x86)\microsoft visual studio 8\vc\include\xhash(61) : error C2440: 'type cast' : cannot convert from 'const boost::shared_ptr<T>' to …Run Code Online (Sandbox Code Playgroud) 我有一个小的bash函数来将我的Macports输出记录到一个文件中(因为安装经常会发出一些很容易在终端噪音中丢失的花絮),然后我只是把文件传到终端:
function porti {
command sudo port install $@ >> $1.log 2>&1; cat $1.log
}
Run Code Online (Sandbox Code Playgroud)
有没有办法同时做到这一点?
顺便说一句,我传递$ @来安装,但文件名只需1美元,这样我就可以这样做:
porti git-gore +bash_completion
Run Code Online (Sandbox Code Playgroud)
并且只获取文件git-core.log但是其他人可能更喜欢在文件名中包含变体...