fann https://www.e-learn.cn/tag/fann zh-hans RSA加密 https://www.e-learn.cn/topic/3903844 <span>RSA加密</span> <span><span lang="" about="/user/168" typeof="schema:Person" property="schema:name" datatype="">心已入冬</span></span> <span>2020-11-08 07:53:22</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"> <p>  今天头疼了一下午心情非常不美好,所以什么都不想干,找点好玩的RSA加密嘻嘻嘻。。。就找到了一个视频</p> <p>HASH算法:</p> <p>特点:对于相同的数据加密结果是一样的,不同的数据加密的长度是一样的,没有办法进行逆运算。</p> <p>也被称为数据指纹。</p> <p>通过散列碰撞解密,</p> <p>企业级的开发中:用户密码服务器保存的是密码的HASH值。这个老师讲的不太好,用户密码加严,</p> <p>可以对每一个用户加一个随机key然后再加密,有一个随机hash算法是hmac,对每一个密码都有一个key进行加密</p> <p>用户注册账号密码客户端会把密码转换成hash值然后上传服务器,服务器保存,在传递的过程中账号和hash值,</p> <p>黑客可以抓包拦截数据包,呃,30分钟的视频20分钟没有说到说好的RSA加密算法,行吧,还是自己看吧</p> <p>费马小定理:假设a是一个整数,p是一个素数,a的p次方减去a一定是p的倍数,验证方式杨辉三角。</p> <p>RSA算法是一个关于素数的应用,</p> <p>欧拉φ函数又称为欧拉总计函数,φ(n)其中n是正整数,φ(n)表示在小于或者等于n的正整数当中,与n互素的数的个数。</p> <p>互素也叫互质,如果两个整数的最大公约数是1则称为它们互素。如果n是一个素数,那么φ(n)=n-1,是这个函数的一个基本性质。</p> <p> </p> <p> </p> <p> </p> <p><img alt="" class="b-lazy" data-src="https://oscimg.oschina.net/oscnet/2f1461d9f07df88a653771341e3a0d70e5f.png" data-original="https://oscimg.oschina.net/oscnet/2f1461d9f07df88a653771341e3a0d70e5f.png" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" /></p> <p> 用python 实现一下吧</p> <div class="cnblogs_Highlighter"> <pre class="brush:python;gutter:true;"><code>class RSA: """ RSA加密算法 """ def __init__(self): self.__create_key() pass def rsa_encrypt(self, plain_text): # 加密 plain_text &lt; n return self.__quick_pow_mod(plain_text, self.__e, self.__n) def rsa_decrypt(self, cipher_text): # 解密 return self.__quick_pow_mod(cipher_text, self.__d, self.__n) @staticmethod def __create_prime_list(): l = list(range(2, 10000)) for n, i in enumerate(l): for j in l[n + 1:]: if j % i == 0: l.remove(j) return l def get_public_key(self): return "自动生成公钥对:{%d, %d}" % (self.__e, self.__n) def get_private_key(self): return "自动生成私钥对:{%d, %d}" % (self.__d, self.__n) def __gcd_x_y(self, x, y): if y == 0: return x else: return self.__gcd_x_y(y, x % y) @staticmethod def __quick_pow_mod(a, b, c): ans = 1 a = a % c while b != 0: if b &amp; 1: ans = (ans * a) % c b &gt;&gt;= 1 a = (a * a) % c return ans def __create_key(self): prime_list = self.__create_prime_list() import random # 得到两个素数 p = prime_list[random.randint(0, len(prime_list) - 1)] q = prime_list[random.randint(0, len(prime_list) - 1)] self.__fanN = (p - 1) * (q - 1) while True: self.__e = random.randint(2, self.__fanN) if self.__gcd_x_y(self.__e, self.__fanN) == 1: break for i in range(self.__fanN): if i * self.__e % self.__fanN == 1: self.__d = i break self.__n = q * p # 得到公钥{e, n} 私钥{d, n} if __name__ == "__main__": rsa = RSA() print(rsa.get_public_key()) print(rsa.get_private_key()) plain_text = int(input("请输入要加密的明文:")) cipher = rsa.rsa_encrypt(plain_text) print("%d 经过加密后为:%d" % (plain_text, cipher)) print("%d 经过解密后为:%d" % (cipher, rsa.rsa_decrypt(cipher)))</code></pre> </div> <p><img alt="" class="b-lazy" data-src="https://oscimg.oschina.net/oscnet/2c2b6acd88b64c702b7e1a035be2a538cf6.png" data-original="https://oscimg.oschina.net/oscnet/2c2b6acd88b64c702b7e1a035be2a538cf6.png" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" /></p> <p> </p> <p> 有点丑,大概就是这个意思吧。。。。</p> <div class="alert alert-success" role="alert"><p>来源:<code>oschina</code></p><p>链接:<code>https://my.oschina.net/u/4273739/blog/3562183</code></p></div></div> <div class="field field--name-field-tags field--type-entity-reference field--label-above"> <div class="field--label">标签</div> <div class="field--items"> <div class="field--item"><a href="/tag/def" hreflang="zh-hans">def</a></div> <div class="field--item"><a href="/tag/fann" hreflang="zh-hans">fann</a></div> </div> </div> Sat, 07 Nov 2020 23:53:22 +0000 心已入冬 3903844 at https://www.e-learn.cn 苹果收购热门天气App:用AI精准预测天气,还能制作风暴动画 https://www.e-learn.cn/topic/3590389 <span>苹果收购热门天气App:用AI精准预测天气,还能制作风暴动画</span> <span><span lang="" about="/user/66" typeof="schema:Person" property="schema:name" datatype="">自古美人都是妖i</span></span> <span>2020-04-24 12:44:46</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"> <div> <p style="text-align: center"><img class="b-lazy" data-src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy8wMHlHb1FKOFBIZlhwcVlIcFlpY2JpYVBnSEprVDAxMWtranRpYTJrVHR1elppYW1EaWJqQlJaeUd3aWJoRVowQ1hmUVRCVjZYNTZZWWlhSmljYWdhdWROY3QwdVBnLzY0MA?x-oss-process=image/format,png" data-original="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy8wMHlHb1FKOFBIZlhwcVlIcFlpY2JpYVBnSEprVDAxMWtranRpYTJrVHR1elppYW1EaWJqQlJaeUd3aWJoRVowQ1hmUVRCVjZYNTZZWWlhSmljYWdhdWROY3QwdVBnLzY0MA?x-oss-process=image/format,png" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" /></p> <p><span>近期,CNN等多家媒体报道了苹果公司对天气应用Dark Sky的收购,称苹果计划在7月前把该款App从安卓平台下架。这是苹果首次收购第三方天气应用。</span></p> <p><span>粗略统计,仅与iOS13系统兼容的天气App就有100多个,苹果自家也有天气应用。在这种前提下,Dark Sky凭借什么优势得到科技巨头苹果的青睐?被纳入到iOS闭环生态之中?</span></p> <p><span>传统天气预报播报未来24小时天气,不够准确也已过时,而在开源的世界里,播报未来10分钟的天气变化并不是难题。</span></p> <p><span>Dark Sky正是一款以分钟级别准确预测用户所在地未来一小时降雨情况的应用。</span><span>随时随地,只要用户打开应用,它会迅速基于用户定位播报天气。比如,当前地区5分钟后有强降雨、将持续15分钟等。</span></p> <p><span>正如其所标榜的那样,Dark Sky是目前“最准确的超本地化天气信息来源”App。</span></p> <p><span>有趣的是,Dark Sky并不是基于气象学方法做出天气预测,而是别出心裁地只采用了大数据分析模型。</span></p> <p><span>Dark Sky的主创团队也十分“特别”。三位创始人中,Adam Grossman是物理学出身,Jay LaPorte和Jack Turner研究计算机科学。团队其他成员则是网络开发人员和后端工程师。换句话说,整个团队都没有气象学背景。</span></p> <p><span>就是这样一群半路出家的“气象工作者”,做出了这款倍受好评的天气应用。</span></p> <p><img class="b-lazy" data-src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy96N1pEMVdhZ1NMaHcySVJHeXRJQlo2OGdXU3BHOGdYZFpnZ0RqaWFPNzhkTmYwMWVDSnhTMzBZN1k0SWljaEFNQk85N1luaWFRUGFiZGR3czdFcVdqWG42QS82NDA?x-oss-process=image/format,png" data-original="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy96N1pEMVdhZ1NMaHcySVJHeXRJQlo2OGdXU3BHOGdYZFpnZ0RqaWFPNzhkTmYwMWVDSnhTMzBZN1k0SWljaEFNQk85N1luaWFRUGFiZGR3czdFcVdqWG42QS82NDA?x-oss-process=image/format,png" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" /></p> <p style="text-align: center"><span>▲Dark Sky联合创始人:Jay LaPorte(左),Adam Grossman(中),Jack Turner(右)</span></p> <p style="text-align: center"><span><strong>1</strong></span></p> <span id="OSC_h2_1"></span> <h2><span><strong><span>大数据分析:剥离干烧信息,准确差值预测</span></strong></span></h2> <p><span>据Dark Sky联合创始人亚当·格罗斯曼(Adam Grossman)介绍,Dark Sky使用的雷达数据均来自美国国家海洋和大气管理局(NOAA)。</span></p> <p><span>NOAA运营着一个覆盖面极广的气象监控网络。该网络由超过140个雷达组成,对美国全境和一些其他地方形成了覆盖。法律规定美国公民可以免费获取这些雷达数据。</span></p> <p><span>Dark Sky团队以二进制格式下载这些数据,之后再进行必要的四步处理。</span></p> <p><span>1、FANN分离噪声和非噪声</span></p> <p><span>除了有用的气象数据,雷达网络还会收集到一些噪声,比如地面反射波、虫鸟的迁徙活动和一些人类活动等。这些信息有可能被误认为是降水信号。因此,第一步要对雷达数据进行筛选。</span></p> <p><img class="b-lazy" data-src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy96N1pEMVdhZ1NMaHcySVJHeXRJQlo2OGdXU3BHOGdYZGdZNUdyTk9ESGpEamhkY1ZBM1ZXRkM4OWZkaWJpYWdvUzlTNG8zTlRrY1dQT1RrQTVpYnRyd2ljaWJRLzY0MA?x-oss-process=image/format,png" data-original="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy96N1pEMVdhZ1NMaHcySVJHeXRJQlo2OGdXU3BHOGdYZGdZNUdyTk9ESGpEamhkY1ZBM1ZXRkM4OWZkaWJpYWdvUzlTNG8zTlRrY1dQT1RrQTVpYnRyd2ljaWJRLzY0MA?x-oss-process=image/format,png" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" /></p> <p><span>据悉,噪声大部分由低强度数据组成(即图中浅蓝色区域)。Dark Sky团队会先将所有低强度数据不加区分地删除。但是,除了噪声数据以外,这一步操作也移除了风暴前缘和后缘的有价值数据。而这部分丢失的数据对于预测降雨情况至关重要。</span></p> <p><span>为了弥补这部分数据的丢失,Dark Sky团队引入了AI技术,使用快速人工神经网络库(FANN)建立模型。</span></p> <p><span>研究人员发现,噪声数据不仅是低强度的,而且具有一种可识别的“纹理”。</span><span>经过大量的数据训练后,FANN模型能够准确地识别出这种“纹理”,进而将数以千计的雷达数据分为两类:噪声和非噪声。</span></p> <p><img class="b-lazy" data-src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy96N1pEMVdhZ1NMaHcySVJHeXRJQlo2OGdXU3BHOGdYZHV0dkpGUFdpY2Q1MVdhaWN1cFduNnE4bGlhNzRFY2VpYmVpYkgwSU1pYWlhQk00VFF0M1VRQXZZcUxrN0EvNjQw?x-oss-process=image/format,png" data-original="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy96N1pEMVdhZ1NMaHcySVJHeXRJQlo2OGdXU3BHOGdYZHV0dkpGUFdpY2Q1MVdhaWN1cFduNnE4bGlhNzRFY2VpYmVpYkgwSU1pYWlhQk00VFF0M1VRQXZZcUxrN0EvNjQw?x-oss-process=image/format,png" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" /></p> <p><span>研究人员称训练过程需要持续一段时间,但最终得到了一个简洁、快速的程序。该模型可以识别90~95%的噪音,几乎没有误报。</span></p> <p><img class="b-lazy" data-src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy96N1pEMVdhZ1NMaHcySVJHeXRJQlo2OGdXU3BHOGdYZHZwZFlCY3N5bmZ4SVlRcEY4ZFZwS2NMeGlhU3JTdzJ6eGlhcnlYV3M4cGFjaHFmYlFTVXhqa2xRLzY0MA?x-oss-process=image/format,png" data-original="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy96N1pEMVdhZ1NMaHcySVJHeXRJQlo2OGdXU3BHOGdYZHZwZFlCY3N5bmZ4SVlRcEY4ZFZwS2NMeGlhU3JTdzJ6eGlhcnlYV3M4cGFjaHFmYlFTVXhqa2xRLzY0MA?x-oss-process=image/format,png" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" /></p> <p style="text-align: center"><span>▲数据分离结果</span></p> <p><span>2、CV算法,提取风暴速度</span></p> <p><span>气象系统是典型的非线性动力系统,十分混乱复杂。在进行天气预测时,要考虑到许多因素,比如复杂的流体动力学原理、地球的旋转角度、地势的不平坦情况、注入系统的太阳能等等。</span></p> <p><span>这也是一个世纪以来,气象学家设计出了各种复杂模型,但仍无法提供准确天气预测的原因。</span></p> <p><span>但是,Dark Sky团队注意到,气象系统的变化在更小的时间尺度上会趋于线性。例如,在天空飘动的积云会更倾向于以相对直线运动。</span></p> <p><span>当把时间尺度缩小时,降水带也会更加连贯,甚至在几分钟的时间间隔内表现为线性变化。有一些情况下,这个线性过程可以持续一个小时或更久。</span></p> <p><span>为了量化这个过程,研究人员引入了计算机视觉(CV)模型。</span><span>利用开源计算机视觉库OpenCV中的光流与目标跟踪算法,研究团队对多个雷达图像帧进行了比较,创建出了一个速度分布图。</span></p> <p><img class="b-lazy" data-src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy96N1pEMVdhZ1NMaHcySVJHeXRJQlo2OGdXU3BHOGdYZFFZb3dKajJYQkRpYTZFdFExcGRkaG9DaWJjQ2liWktGeEZnalZjYmliNlZVU0VDSUN3UHpUMU1zdGcvNjQw?x-oss-process=image/format,png" data-original="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy96N1pEMVdhZ1NMaHcySVJHeXRJQlo2OGdXU3BHOGdYZFFZb3dKajJYQkRpYTZFdFExcGRkaG9DaWJjQ2liWktGeEZnalZjYmliNlZVU0VDSUN3UHpUMU1zdGcvNjQw?x-oss-process=image/format,png" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" /></p> <p><span>为了使结果更加直观,研究人员用颜色替换箭头,制作出一张三通道图像。图像中,红色代表x方向的速度,蓝色代表y方向的速度,绿色代表风暴强度的变化。</span></p> <p><img class="b-lazy" data-src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy96N1pEMVdhZ1NMaHcySVJHeXRJQlo2OGdXU3BHOGdYZFdvdm9kM2VMNEEyVTdma2oyQTljbTQzVmoyM3hQY3dWRFRTYmtFOXFjYjdFWHZhRzdOM0Fldy82NDA?x-oss-process=image/format,png" data-original="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy96N1pEMVdhZ1NMaHcySVJHeXRJQlo2OGdXU3BHOGdYZFdvdm9kM2VMNEEyVTdma2oyQTljbTQzVmoyM3hQY3dWRFRTYmtFOXFjYjdFWHZhRzdOM0Fldy82NDA?x-oss-process=image/format,png" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" /></p> <p><span>3、GPU完成预测和动画制作</span></p> <p><span>研究人员会将速度图像输入iPhone或iPad上的GPU,风暴预测过程和动画制作过程都在GPU中完成。</span></p> <p><span>研究人员指出,由于不同风暴的特征差异、地理环境的不同等,预测结果会有所出入。</span><span>例如,如果风暴更连贯和稳定,能够预测的时间就会更长。</span></p> <div class="csdn-video-box"> <p></p> </div> <p style="text-align: center"><span>▲动画效果</span></p> <p><span>4、误码监测</span></p> <p><span>为了保证预测的准确性,Dark Sky团队会对每一次预测进行误码监测。</span></p> <p><span>据介绍,研究人员会用预测结果与实际天气情况进行对比,从而确定预测的误差有多大。</span><span>此外,研究人员还会对每个雷达站进行实时检查,从而保证预测结果的准确性。</span></p> <p><img class="b-lazy" data-src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X2dpZi96N1pEMVdhZ1NMaHcySVJHeXRJQlo2OGdXU3BHOGdYZGJEYWNoQ3ZZMDJUZnhWaWJzNGVpYmljM3U5TE1PdWtGNmlhZUJIV1lZV1lIRTdHaWNUSHNvczRUdDRRLzY0MA?x-oss-process=image/format,png" data-original="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X2dpZi96N1pEMVdhZ1NMaHcySVJHeXRJQlo2OGdXU3BHOGdYZGJEYWNoQ3ZZMDJUZnhWaWJzNGVpYmljM3U5TE1PdWtGNmlhZUJIV1lZV1lIRTdHaWNUSHNvczRUdDRRLzY0MA?x-oss-process=image/format,png" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" /></p> <p><span>根据ForcastWatch4月份报道,去年一年DarkSky在美国加利福尼亚州圣荷西的预报准确率达到了80.91%,今年三月份达到87.93%。</span></p> <p><img class="b-lazy" data-src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy96N1pEMVdhZ1NMaHcySVJHeXRJQlo2OGdXU3BHOGdYZFpoS04wT1lySk45N2FnVm00UWNqdnppY2hRSFB3TG5TcUlxSGliTlNsaWFQaWNOTXRxUEwwclB4bUEvNjQw?x-oss-process=image/format,png" data-original="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy96N1pEMVdhZ1NMaHcySVJHeXRJQlo2OGdXU3BHOGdYZFpoS04wT1lySk45N2FnVm00UWNqdnppY2hRSFB3TG5TcUlxSGliTlNsaWFQaWNOTXRxUEwwclB4bUEvNjQw?x-oss-process=image/format,png" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" /></p> <p style="text-align: center"><span>2</span></p> <span id="OSC_h2_2"></span> <h2><strong><span>集成GPS定位,进行微气候调整</span></strong></h2> <p><span>除了准确的预测,Dark Sky的另一大卖点是“超本地化(Hyper-local)”。</span><span>为了实现超本地化的功能,Dark Sky需要获取用户的准确定位信息。</span></p> <p><span>根据外媒FastCompany报道,Dark Sky会根据地球上某个点的物理参数,对雷达图像的预测结果进行调整。这些参数包括用户所在地的海拔、坡度、到最近水域的距离、热岛效应情况等。</span></p> <p><span>进行微气候调整后,预测结果会更加精准。</span><span>例如,假如GPS信号显示用户正在湖边,预测的气温可能就会略微升高,更符合用户的体感温度。</span></p> <p><img class="b-lazy" data-src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy96N1pEMVdhZ1NMaHcySVJHeXRJQlo2OGdXU3BHOGdYZGljT0pYYW1YaWNIcjZvVjNZU0ZMQkRhRFJFWEZsdjdYM1pGallBRVQ1QjZ6MzJ0YnNqa1lranNRLzY0MA?x-oss-process=image/format,png" data-original="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy96N1pEMVdhZ1NMaHcySVJHeXRJQlo2OGdXU3BHOGdYZGljT0pYYW1YaWNIcjZvVjNZU0ZMQkRhRFJFWEZsdjdYM1pGallBRVQ1QjZ6MzJ0YnNqa1lranNRLzY0MA?x-oss-process=image/format,png" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" /></p> <p style="text-align: center"><span>3</span></p> <span id="OSC_h2_3"></span> <h2><span><strong><span>宗旨:向用户呈现所有可能性</span></strong></span></h2> <p><span>研究团队认为,大数据分析提供了一种提高天气预报准确性的手段,但是人类永远不可能100%地准确预测天气。</span><span>为了向用户传达这种观念,Dark Sky中的预测结果总是以百分比形式显示。</span></p> <p><span>Dark Sky联合创始人格罗斯曼认为这种显示方式提供了一定的透明度。</span><span>“(以往的)天气预报缺少的最重要的东西是误差和不确定性。”他说到。</span></p> <p><img class="b-lazy" data-src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy96N1pEMVdhZ1NMaHcySVJHeXRJQlo2OGdXU3BHOGdYZDVoaWNNR2pkMDJ4T2haanVLQm5oQ0lqNzdsVnUxcVRNU0llWU5oUGVrUDRUMklGMGFyRUxnSUEvNjQw?x-oss-process=image/format,png" data-original="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy96N1pEMVdhZ1NMaHcySVJHeXRJQlo2OGdXU3BHOGdYZDVoaWNNR2pkMDJ4T2haanVLQm5oQ0lqNzdsVnUxcVRNU0llWU5oUGVrUDRUMklGMGFyRUxnSUEvNjQw?x-oss-process=image/format,png" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" /></p> <p style="text-align: center"><span>4</span></p> <span id="OSC_h2_4"></span> <h2><span><strong><span>结语:Dark Sky指明天气预报新思路</span></strong></span></h2> <p><span>Dark Sky按照大数据分析而非气象学方法来做天气预测,还集成了GPS定位功能,实现了在较短时间内的精准预测,由此吸引了大批受众,被称为最准确的天气预报App。</span></p> <p><span>但是,研究团队也指出Dark Sky的短板是无法进行较长时间范围的预测,</span><span>正如创始人格罗斯曼所说:“我们的系统无法预测未来6个小时内的状况。”</span></p> <p><span>有相关人士指出,苹果正是看中了Dark Sky在短时间内的精准预测能力,或将把Dark Sky整合到自己的天气应用中。</span><span>目前苹果未就这种说法发表评论,但品牌战略家、用户体验设计师Parker Ortolani据此设计出了一版概念图。</span></p> <p><img class="b-lazy" data-src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy96N1pEMVdhZ1NMaHcySVJHeXRJQlo2OGdXU3BHOGdYZFo5bEkxVFVOUTc1RjRrbFVqZGg3aDFzMk9Ra0JDMm9ENGRvVENqakFPaWNsQWljQWliY1JGTEVuUS82NDA?x-oss-process=image/format,png" data-original="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy96N1pEMVdhZ1NMaHcySVJHeXRJQlo2OGdXU3BHOGdYZFo5bEkxVFVOUTc1RjRrbFVqZGg3aDFzMk9Ra0JDMm9ENGRvVENqakFPaWNsQWljQWliY1JGTEVuUS82NDA?x-oss-process=image/format,png" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" /></p> <p style="text-align: center"><span><span>R</span><span>E</span><span>C</span><span>O</span><span>M</span><span>M</span><span>E</span><span>N</span><span>D</span></span></p> <p><span>推</span></p> <p><span>荐</span></p> <p><span>阅</span></p> <p><span>读</span></p> <p style="text-align: center"><a href="http://mp.weixin.qq.com/s?__biz=MzI3NTU3ODk1MQ%3D%3D&amp;chksm=eb002015dc77a903d7e11284518959d5214394715a8c14fc7775b13892c52ba793796b14ce57&amp;idx=1&amp;mid=2247502141&amp;scene=21&amp;sn=dcef42a6a21bf7e77c22b27f7ec9bd22#wechat_redirect" rel="nofollow"><span><img class="b-lazy" data-src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy8wMHlHb1FKOFBIZWJaTVBSaWFJV1JpYmljOGRHa0dob1pyeTAxbFdpYnJMVG05UDdJdTdrOVFWdmpGVXJmdXBVTzhoYm5ublJyR2dySXNtREJIaWN2bmlhRE9WZy82NDA?x-oss-process=image/format,png" data-original="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy8wMHlHb1FKOFBIZWJaTVBSaWFJV1JpYmljOGRHa0dob1pyeTAxbFdpYnJMVG05UDdJdTdrOVFWdmpGVXJmdXBVTzhoYm5ublJyR2dySXNtREJIaWN2bmlhRE9WZy82NDA?x-oss-process=image/format,png" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" /></span></a></p> <p style="text-align: center"><a href="http://mp.weixin.qq.com/s?__biz=MzI3NTU3ODk1MQ%3D%3D&amp;chksm=eb00204edc77a95867b44724f4f3756b796e1d361882a00bb82458ea0b22701f2d02ddc9088f&amp;idx=1&amp;mid=2247502182&amp;scene=21&amp;sn=e21ad2eadfd69b322f64d4d053cf40ae#wechat_redirect" rel="nofollow"><span><img class="b-lazy" data-src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy8wMHlHb1FKOFBIZWJaTVBSaWFJV1JpYmljOGRHa0dob1pyeWN3WlYwWTBiYnliT3lpYnpJQmhBZGp0eWJRQ01LZzNYYTU3U2Q5bEFFakVvWmV5TFppY3JaM0pRLzY0MA?x-oss-process=image/format,png" data-original="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy8wMHlHb1FKOFBIZWJaTVBSaWFJV1JpYmljOGRHa0dob1pyeWN3WlYwWTBiYnliT3lpYnpJQmhBZGp0eWJRQ01LZzNYYTU3U2Q5bEFFakVvWmV5TFppY3JaM0pRLzY0MA?x-oss-process=image/format,png" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" /></span></a></p> <p style="text-align: center"><a href="http://mp.weixin.qq.com/s?__biz=MzI3NTU3ODk1MQ%3D%3D&amp;chksm=eb002015dc77a9033843cf67660d77f63430c7cddfc7bcb1dfe814b93ec7f6167bbfe24f56d8&amp;idx=2&amp;mid=2247502141&amp;scene=21&amp;sn=4bf87da009951f0702da7563f1e5df43#wechat_redirect" rel="nofollow"><span><img class="b-lazy" data-src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy8wMHlHb1FKOFBIZWJaTVBSaWFJV1JpYmljOGRHa0dob1pyeVJrUVFKd0Y2ZE5jQjM1bW9DV2JhTTdDVGFTZ3BtaWFURk9QNGlhekRKWTBpYmZwMnA5SE40RFFjZy82NDA?x-oss-process=image/format,png" data-original="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy8wMHlHb1FKOFBIZWJaTVBSaWFJV1JpYmljOGRHa0dob1pyeVJrUVFKd0Y2ZE5jQjM1bW9DV2JhTTdDVGFTZ3BtaWFURk9QNGlhekRKWTBpYmZwMnA5SE40RFFjZy82NDA?x-oss-process=image/format,png" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" /></span></a></p> <p><span><strong><span><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span></span></strong><br /></span></p> <p><span><strong><span><span> </span><span> </span><span>A</span><span>I</span><span>社</span><span>群</span><span> </span><span> </span></span></strong></span></p> <p><span><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span></span></p> <p><span><span>对</span><strong><span>AI</span></strong><span>感</span><span>兴</span><span>趣</span><span>的</span><span>小</span><span>伙</span><span>伴</span><span>,</span></span></p> <p><span><span><strong><span>网易智能</span></strong><span>有</span><strong><span>12个不同垂直领域社群</span></strong><span>等你来</span></span><br /><span><span>添加</span><strong><span>智能菌</span></strong><span>微信:</span><strong><span>kaiwu_club</span></strong><strong></strong></span><br /></span></p> <p><span><span>和</span><span>我</span><span>们</span><span>一</span><span>起</span><span>探</span><span>讨</span><span>A</span><span>I</span><span>的</span><span>故</span><span>事</span><span>~</span></span></p> <p><img class="b-lazy" data-src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X2dpZi8wMHlHb1FKOFBIZlhwcVlIcFlpY2JpYVBnSEprVDAxMWtrQTVIemRzaDFTSWVLd3Z3RUtsVnNKTmVSNmhxVWtEMFpSVk9zNXhSN1FaaDJ2VTVEQWhkNzh3LzY0MA?x-oss-process=image/format,png" data-original="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X2dpZi8wMHlHb1FKOFBIZlhwcVlIcFlpY2JpYVBnSEprVDAxMWtrQTVIemRzaDFTSWVLd3Z3RUtsVnNKTmVSNmhxVWtEMFpSVk9zNXhSN1FaaDJ2VTVEQWhkNzh3LzY0MA?x-oss-process=image/format,png" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" /></p> <p><img title="qrcode_for_gh_d218f7576767_430 (1).jpg" class="b-lazy" data-src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X2pwZy8wMHlHb1FKOFBIZlhwcVlIcFlpY2JpYVBnSEprVDAxMWtrTzFORzA1TlFzY2hWNUhMRkFtSVc2akxKcFhYY0x1UVRUWUVmdDFJUnM2THltazBKZm9hdEVRLzY0MA?x-oss-process=image/format,png" data-original="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X2pwZy8wMHlHb1FKOFBIZlhwcVlIcFlpY2JpYVBnSEprVDAxMWtrTzFORzA1TlFzY2hWNUhMRkFtSVc2akxKcFhYY0x1UVRUWUVmdDFJUnM2THltazBKZm9hdEVRLzY0MA?x-oss-process=image/format,png" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" /></p> <p><img class="b-lazy" data-src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X2dpZi8wMHlHb1FKOFBIZlhwcVlIcFlpY2JpYVBnSEprVDAxMWtrQTVIemRzaDFTSWVLd3Z3RUtsVnNKTmVSNmhxVWtEMFpSVk9zNXhSN1FaaDJ2VTVEQWhkNzh3LzY0MA?x-oss-process=image/format,png" data-original="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X2dpZi8wMHlHb1FKOFBIZlhwcVlIcFlpY2JpYVBnSEprVDAxMWtrQTVIemRzaDFTSWVLd3Z3RUtsVnNKTmVSNmhxVWtEMFpSVk9zNXhSN1FaaDJ2VTVEQWhkNzh3LzY0MA?x-oss-process=image/format,png" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" /></p> <p><span><strong><span><span>网</span><span>易</span><span>新</span><span>闻</span><span> </span><span>|</span><span> </span><span>智</span><span>能</span><span>工</span><span>作</span><span>室</span><span>出</span><span>品</span></span></strong></span></p> </div> <div class="alert alert-success" role="alert"><p>来源:<code>oschina</code></p><p>链接:<code>https://my.oschina.net/u/4275665/blog/3677699</code></p></div></div> <div class="field field--name-field-tags field--type-entity-reference field--label-above"> <div class="field--label">标签</div> <div class="field--items"> <div class="field--item"><a href="/tag/dashuju" hreflang="zh-hans">大数据</a></div> <div class="field--item"><a href="/tag/fann" hreflang="zh-hans">fann</a></div> <div class="field--item"><a href="/tag/jisuanjishijue" hreflang="zh-hans">计算机视觉</a></div> <div class="field--item"><a href="/tag/rengongzhineng" hreflang="zh-hans">人工智能</a></div> <div class="field--item"><a href="/tag/ios" hreflang="zh-hans">ios</a></div> <div class="field--item"><a href="/tag/android" hreflang="zh-hans">android</a></div> <div class="field--item"><a href="/tag/shenjingwangluo" hreflang="zh-hans">神经网络</a></div> <div class="field--item"><a href="/tag/hyper" hreflang="zh-hans">hyper</a></div> <div class="field--item"><a href="/tag/opencv" hreflang="zh-hans">OpenCV</a></div> </div> </div> Fri, 24 Apr 2020 04:44:46 +0000 自古美人都是妖i 3590389 at https://www.e-learn.cn FANN XOR training https://www.e-learn.cn/topic/2795711 <span>FANN XOR training</span> <span><span lang="" about="/user/222" typeof="schema:Person" property="schema:name" datatype="">为君一笑</span></span> <span>2019-12-23 05:25:06</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><h3>问题</h3><br /><p>I am developing a piece of software that uses FANN, the Fast Artificial Neural Network library. I have tried after numerous failed attempts at writing my own ANN code to compile a FANN sample program, here the C++ XOR approximation program. Here is the source.</p> <pre class="lang-cpp prettyprint-override"><code>#include "../include/floatfann.h" #include "../include/fann_cpp.h" #include &lt;ios&gt; #include &lt;iostream&gt; #include &lt;iomanip&gt; using std::cout; using std::cerr; using std::endl; using std::setw; using std::left; using std::right; using std::showpos; using std::noshowpos; // Callback function that simply prints the information to cout int print_callback(FANN::neural_net &amp;net, FANN::training_data &amp;train, unsigned int max_epochs, unsigned int epochs_between_reports, float desired_error, unsigned int epochs, void *user_data) { cout &lt;&lt; "Epochs " &lt;&lt; setw(8) &lt;&lt; epochs &lt;&lt; ". " &lt;&lt; "Current Error: " &lt;&lt; left &lt;&lt; net.get_MSE() &lt;&lt; right &lt;&lt; endl; return 0; } // Test function that demonstrates usage of the fann C++ wrapper void xor_test() { cout &lt;&lt; endl &lt;&lt; "XOR test started." &lt;&lt; endl; const float learning_rate = 0.7f; const unsigned int num_layers = 3; const unsigned int num_input = 2; const unsigned int num_hidden = 3; const unsigned int num_output = 1; const float desired_error = 0.001f; const unsigned int max_iterations = 300000; const unsigned int iterations_between_reports = 10000; ////Make array for create_standard() workaround (prevent "FANN Error 11: Unable to allocate memory.") const unsigned int num_input_num_hidden_num_output__array[3] = {num_input, num_hidden, num_output}; cout &lt;&lt; endl &lt;&lt; "Creating network." &lt;&lt; endl; FANN::neural_net net; // cout&lt;&lt;"Debug 1"&lt;&lt;endl; //net.create_standard(num_layers, num_input, num_hidden, num_output);//doesn't work net.create_standard_array(num_layers, num_input_num_hidden_num_output__array);//this might work -- create_standard() workaround net.set_learning_rate(learning_rate); net.set_activation_steepness_hidden(1.0); net.set_activation_steepness_output(1.0); //Sample Code, changed below net.set_activation_function_hidden(FANN::SIGMOID_SYMMETRIC_STEPWISE); net.set_activation_function_output(FANN::SIGMOID_SYMMETRIC_STEPWISE); //changed above to sigmoid //net.set_activation_function_hidden(FANN::SIGMOID); //net.set_activation_function_output(FANN::SIGMOID); // Set additional properties such as the training algorithm //net.set_training_algorithm(FANN::TRAIN_QUICKPROP); // Output network type and parameters cout &lt;&lt; endl &lt;&lt; "Network Type : "; switch (net.get_network_type()) { case FANN::LAYER://only connected to next layer cout &lt;&lt; "LAYER" &lt;&lt; endl; break; case FANN::SHORTCUT://connected to all other layers cout &lt;&lt; "SHORTCUT" &lt;&lt; endl; break; default: cout &lt;&lt; "UNKNOWN" &lt;&lt; endl; break; } net.print_parameters(); cout &lt;&lt; endl &lt;&lt; "Training network." &lt;&lt; endl; FANN::training_data data; if (data.read_train_from_file("xor.data")) { // Initialize and train the network with the data net.init_weights(data); cout &lt;&lt; "Max Epochs " &lt;&lt; setw(8) &lt;&lt; max_iterations &lt;&lt; ". " &lt;&lt; "Desired Error: " &lt;&lt; left &lt;&lt; desired_error &lt;&lt; right &lt;&lt; endl; net.set_callback(print_callback, NULL); net.train_on_data(data, max_iterations, iterations_between_reports, desired_error); cout &lt;&lt; endl &lt;&lt; "Testing network. (not really)" &lt;&lt; endl; //I don't really get this code --- the funny for loop. Whatever. I'll skip it. for (unsigned int i = 0; i &lt; data.length_train_data(); ++i) { // Run the network on the test data fann_type *calc_out = net.run(data.get_input()[i]); cout &lt;&lt; "XOR test (" &lt;&lt; showpos &lt;&lt; data.get_input()[i][0] &lt;&lt; ", " &lt;&lt; data.get_input()[i][1] &lt;&lt; ") -&gt; " &lt;&lt; *calc_out &lt;&lt; ", should be " &lt;&lt; data.get_output()[i][0] &lt;&lt; ", " &lt;&lt; "difference = " &lt;&lt; noshowpos &lt;&lt; fann_abs(*calc_out - data.get_output()[i][0]) &lt;&lt; endl; } cout &lt;&lt; endl &lt;&lt; "Saving network." &lt;&lt; endl; // Save the network in floating point and fixed point net.save("xor_float.net"); unsigned int decimal_point = net.save_to_fixed("xor_fixed.net"); data.save_train_to_fixed("xor_fixed.data", decimal_point); cout &lt;&lt; endl &lt;&lt; "XOR test completed." &lt;&lt; endl; } } /* Startup function. Synchronizes C and C++ output, calls the test function and reports any exceptions */ int main(int argc, char **argv) { try { std::ios::sync_with_stdio(); // Synchronize cout and printf output xor_test(); } catch (...) { cerr &lt;&lt; endl &lt;&lt; "Abnormal exception." &lt;&lt; endl; } return 0; } </code></pre> <p>Here's my output.</p> <pre><code>XOR test started. Creating network. Network Type : LAYER Input layer : 2 neurons, 1 bias Hidden layer : 3 neurons, 1 bias Output layer : 1 neurons Total neurons and biases : 8 Total connections : 13 Connection rate : 1.000 Network type : FANN_NETTYPE_LAYER Training algorithm : FANN_TRAIN_RPROP Training error function : FANN_ERRORFUNC_TANH Training stop function : FANN_STOPFUNC_MSE Bit fail limit : 0.350 Learning rate : 0.700 Learning momentum : 0.000 Quickprop decay : -0.000100 Quickprop mu : 1.750 RPROP increase factor : 1.200 RPROP decrease factor : 0.500 RPROP delta min : 0.000 RPROP delta max : 50.000 Cascade output change fraction : 0.010000 Cascade candidate change fraction : 0.010000 Cascade output stagnation epochs : 12 Cascade candidate stagnation epochs : 12 Cascade max output epochs : 150 Cascade min output epochs : 50 Cascade max candidate epochs : 150 Cascade min candidate epochs : 50 Cascade weight multiplier : 0.400 Cascade candidate limit :1000.000 Cascade activation functions[0] : FANN_SIGMOID Cascade activation functions[1] : FANN_SIGMOID_SYMMETRIC Cascade activation functions[2] : FANN_GAUSSIAN Cascade activation functions[3] : FANN_GAUSSIAN_SYMMETRIC Cascade activation functions[4] : FANN_ELLIOT Cascade activation functions[5] : FANN_ELLIOT_SYMMETRIC Cascade activation functions[6] : FANN_SIN_SYMMETRIC Cascade activation functions[7] : FANN_COS_SYMMETRIC Cascade activation functions[8] : FANN_SIN Cascade activation functions[9] : FANN_COS Cascade activation steepnesses[0] : 0.250 Cascade activation steepnesses[1] : 0.500 Cascade activation steepnesses[2] : 0.750 Cascade activation steepnesses[3] : 1.000 Cascade candidate groups : 2 Cascade no. of candidates : 80 Training network. Max Epochs 300000. Desired Error: 0.001 Epochs 1. Current Error: 0.25 Epochs 10000. Current Error: 0.25 Epochs 20000. Current Error: 0.25 Epochs 30000. Current Error: 0.25 Epochs 40000. Current Error: 0.25 Epochs 50000. Current Error: 0.25 Epochs 60000. Current Error: 0.25 Epochs 70000. Current Error: 0.25 Epochs 80000. Current Error: 0.25 Epochs 90000. Current Error: 0.25 Epochs 100000. Current Error: 0.25 Epochs 110000. Current Error: 0.25 Epochs 120000. Current Error: 0.25 Epochs 130000. Current Error: 0.25 Epochs 140000. Current Error: 0.25 Epochs 150000. Current Error: 0.25 Epochs 160000. Current Error: 0.25 Epochs 170000. Current Error: 0.25 Epochs 180000. Current Error: 0.25 Epochs 190000. Current Error: 0.25 Epochs 200000. Current Error: 0.25 Epochs 210000. Current Error: 0.25 Epochs 220000. Current Error: 0.25 Epochs 230000. Current Error: 0.25 Epochs 240000. Current Error: 0.25 Epochs 250000. Current Error: 0.25 Epochs 260000. Current Error: 0.25 Epochs 270000. Current Error: 0.25 Epochs 280000. Current Error: 0.25 Epochs 290000. Current Error: 0.25 Epochs 300000. Current Error: 0.25 Testing network. (not really) XOR test (+0, -1.875) -&gt; +0, should be +0, difference = -0 XOR test (+0, -1.875) -&gt; +0, should be +0, difference = -0 XOR test (+0, +1.875) -&gt; +0, should be +0, difference = -0 XOR test (+0, +1.875) -&gt; +0, should be +0, difference = -0 Saving network. XOR test completed. </code></pre> <p>The training data (<code>xor.data</code>) is here:</p> <pre><code>4 2 1 -1 -1 -1 -1 1 1 1 -1 1 1 1 -1 </code></pre> <p>What explains the eerie lack of learning in the ANN? I'm pretty convinced that I have something configured very wrong somewhere, especially given that this is the <em>sample program</em>. ANN experts, any advice?</p> <br /><h3>回答1:</h3><br /><p>Apply the FANN patch and make sure that all references to <code>floatfann</code>, <code>doublefann</code>, etc. are congruent.</p> <br /><br /><p>来源:<code>https://stackoverflow.com/questions/20776191/fann-xor-training</code></p></div> <div class="field field--name-field-tags field--type-entity-reference field--label-above"> <div class="field--label">标签</div> <div class="field--items"> <div class="field--item"><a href="/tag/c-0" hreflang="zh-hans">c++</a></div> <div class="field--item"><a href="/tag/artificial-intelligence" hreflang="zh-hans">artificial-intelligence</a></div> <div class="field--item"><a href="/tag/neural-network" hreflang="zh-hans">neural-network</a></div> <div class="field--item"><a href="/tag/fann" hreflang="zh-hans">fann</a></div> </div> </div> Sun, 22 Dec 2019 21:25:06 +0000 为君一笑 2795711 at https://www.e-learn.cn Link errors using FANN https://www.e-learn.cn/topic/2306999 <span>Link errors using FANN</span> <span><span lang="" about="/user/163" typeof="schema:Person" property="schema:name" datatype="">荒凉一梦</span></span> <span>2019-12-11 22:05:02</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><h3>问题</h3><br /><p>I'm trying to build a basic FANN (Fast Artificial Neural Network) project on Windows with MinGW. However, whenever I try to link the executable, I run into a bunch of <code>undefined reference to</code> errors. Interestingly, if I don't link the library at all, I get more errors, implying that at least some of the library is working. The code for the file I'm trying to compile and link is:</p> <pre><code>#include "doublefann.h" int main() { const unsigned int num_input_neurons = 9; const unsigned int num_output_neurons = 1; const unsigned int num_layers = 3; const unsigned int num_hidden_neurons = 9; const float desired_error = (const float) 0; const unsigned int max_epochs = 500000; const unsigned int epochs_between_reports = 1000; struct fann *ann = fann_create_standard(num_layers, num_input_neurons, num_hidden_neurons, num_output_neurons); fann_set_activation_function_hidden(ann, FANN_SIGMOID_SYMMETRIC); fann_set_activation_function_output(ann, FANN_SIGMOID_SYMMETRIC); fann_train_on_file(ann, "titanic-training.data", max_epochs, epochs_between_reports, desired_error); fann_save(ann, "titanic.net"); fann_destroy(ann); return 0; } </code></pre> <p>and the command I'm using to compile and link is:</p> <pre><code>gcc -Wall -Ifann\src\include titanic-train.c -Lfann\bin -lfanndouble -o titanic-train.exe </code></pre> <p>The errors I'm getting back are:</p> <pre><code>C:\Users\kunkelwe\AppData\Local\Temp\ccsWQg66.o:titanic-train.c:(.text+0x7f): undefined reference to `fann_set_activation_function_hidden' C:\Users\kunkelwe\AppData\Local\Temp\ccsWQg66.o:titanic-train.c:(.text+0x93): undefined reference to `fann_set_activation_function_output' C:\Users\kunkelwe\AppData\Local\Temp\ccsWQg66.o:titanic-train.c:(.text+0xbf): undefined reference to `fann_train_on_file' C:\Users\kunkelwe\AppData\Local\Temp\ccsWQg66.o:titanic-train.c:(.text+0xd3): undefined reference to `fann_save' C:\Users\kunkelwe\AppData\Local\Temp\ccsWQg66.o:titanic-train.c:(.text+0xdf): undefined reference to `fann_destroy' c:/fragileprograms/mingw-native/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: C:\Users\kunkelwe\AppData\Local\Temp\ccsWQg66.o: bad reloc address 0x64 in section `.rdata' c:/fragileprograms/mingw-native/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: final link failed: Invalid operation collect2.exe: error: ld returned 1 exit status </code></pre> <p>If I don't link the library at all, I instead get:</p> <pre><code>C:\Users\kunkelwe\AppData\Local\Temp\ccyOO3jL.o:titanic-train.c:(.text+0x67): undefined reference to `fann_create_standard' C:\Users\kunkelwe\AppData\Local\Temp\ccsWQg66.o:titanic-train.c:(.text+0x7f): undefined reference to `fann_set_activation_function_hidden' C:\Users\kunkelwe\AppData\Local\Temp\ccsWQg66.o:titanic-train.c:(.text+0x93): undefined reference to `fann_set_activation_function_output' C:\Users\kunkelwe\AppData\Local\Temp\ccsWQg66.o:titanic-train.c:(.text+0xbf): undefined reference to `fann_train_on_file' C:\Users\kunkelwe\AppData\Local\Temp\ccsWQg66.o:titanic-train.c:(.text+0xd3): undefined reference to `fann_save' C:\Users\kunkelwe\AppData\Local\Temp\ccsWQg66.o:titanic-train.c:(.text+0xdf): undefined reference to `fann_destroy' c:/fragileprograms/mingw-native/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: C:\Users\kunkelwe\AppData\Local\Temp\ccsWQg66.o: bad reloc address 0x64 in section `.rdata' c:/fragileprograms/mingw-native/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: final link failed: Invalid operation collect2.exe: error: ld returned 1 exit status </code></pre> <p><strong>Edit:</strong></p> <p>As per Haroogan's request, I ran <code>nm fanndouble.lib</code>. The output is rather extensive, so rather than paste it all here, I've made it available via pastebin here: http://pastebin.com/raw.php?i=vybFhEcX</p> <p>I'm not familiar with <code>nm</code>, but it appears that the missing symbols do exist in the file.</p> <p><strong>Edit #2:</strong></p> <p>The contents of doublefann.h are: http://pastebin.com/mrHKJi8C</p> <p>and the contents of fann.h, which it includes are: http://pastebin.com/gTrHCYAg</p> <p>Could the problem just be solved by recompiling the library with MinGW?</p> <p><strong>Edit #3:</strong></p> <p>Making the changes that Haroogan suggested worked! In addition to those changes, I had to modify the CMakeLists.txt file for FANN by adding:</p> <pre><code>if (WIN32) ADD_DEFINITIONS(-DFANN_DLL_EXPORTS) endif (WIN32) </code></pre> <p>Then, running <code>cmake -G "MinGW Makefiles"</code> and then <code>mingw32-make</code> in the root of the project produced a file, libdoublefann.dll, that when linked against and included in the directory of the .exe, allowed me, <em>finally</em>, to run my program.</p> <br /><h3>回答1:</h3><br /><p>In <code>doublefann.h</code> on the line #116:</p> <pre><code>#if (_MSC_VER &gt; 1300) </code></pre> <p>change to:</p> <pre><code>#if (_MSC_VER &gt; 1300) || defined(__MINGW32__) || defined(__MINGW64__) </code></pre> <p>Furthermore, on the line #121:</p> <pre><code>#if defined(_MSC_VER) &amp;&amp; (defined(FANN_USE_DLL) || defined(FANN_DLL_EXPORTS)) </code></pre> <p>change to:</p> <pre><code>#if (defined(_MSC_VER) || defined(__MINGW32__) || defined(__MINGW64__)) &amp;&amp; \ (defined(FANN_USE_DLL) || defined(FANN_DLL_EXPORTS)) </code></pre> <br /><br /><p>来源:<code>https://stackoverflow.com/questions/19286450/link-errors-using-fann</code></p></div> <div class="field field--name-field-tags field--type-entity-reference field--label-above"> <div class="field--label">标签</div> <div class="field--items"> <div class="field--item"><a href="/tag/c-1" hreflang="zh-hans">c</a></div> <div class="field--item"><a href="/tag/linker" hreflang="zh-hans">linker</a></div> <div class="field--item"><a href="/tag/mingw" hreflang="zh-hans">mingw</a></div> <div class="field--item"><a href="/tag/fann" hreflang="zh-hans">fann</a></div> </div> </div> Wed, 11 Dec 2019 14:05:02 +0000 荒凉一梦 2306999 at https://www.e-learn.cn Training on a fitness function https://www.e-learn.cn/topic/2283578 <span>Training on a fitness function</span> <span><span lang="" about="/user/54" typeof="schema:Person" property="schema:name" datatype="">↘锁芯ラ</span></span> <span>2019-12-11 16:35:06</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><h3>问题</h3><br /><p>I am looking at FANN (Fast Artificial Neural Network) to create a neural network to drive a car around a track in a simulation.</p> <p>It's possible to train on a fixed data set, but this isn't suitable for training a car to drive. I would like to use a fitness function to train my NN. Is this possible?</p> <p>Is it possible to tell FANN to use a fitness function rather than a fixed data set to train a NN?</p> <br /><h3>回答1:</h3><br /><blockquote> <p>I would like to use a fitness function to train my NN. Is this possible?</p> </blockquote> <p>Fitness functions judge efficiency (to label- or select from generated data); not a function of the network itself.</p> <blockquote> <p>Is it possible to tell FANN to use a fitness function rather than a fixed data set to train a NN?</p> </blockquote> <p>fann_train adjusts weights per individual set using FANN_TRAIN_INCREMENTAL.</p> <br /><br /><p>来源:<code>https://stackoverflow.com/questions/47239418/training-on-a-fitness-function</code></p></div> <div class="field field--name-field-tags field--type-entity-reference field--label-above"> <div class="field--label">标签</div> <div class="field--items"> <div class="field--item"><a href="/tag/neural-network" hreflang="zh-hans">neural-network</a></div> <div class="field--item"><a href="/tag/artificial-intelligence" hreflang="zh-hans">artificial-intelligence</a></div> <div class="field--item"><a href="/tag/fann" hreflang="zh-hans">fann</a></div> <div class="field--item"><a href="/tag/fitness" hreflang="zh-hans">fitness</a></div> </div> </div> Wed, 11 Dec 2019 08:35:06 +0000 ↘锁芯ラ 2283578 at https://www.e-learn.cn What is the purpose of bit fail in FANN? https://www.e-learn.cn/topic/2101054 <span>What is the purpose of bit fail in FANN?</span> <span><span lang="" about="/user/8" typeof="schema:Person" property="schema:name" datatype="">寵の児</span></span> <span>2019-12-10 12:38:41</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><h3>问题</h3><br /><p>im having a response like below from fann</p> <pre><code> Epochs 1. Current error: 0.2500066161. Bit fail 4. Epochs 58. Current error: 0.0000930788. Bit fail 0. </code></pre> <p>what does Bit fail mean here?</p> <br /><h3>回答1:</h3><br /><p>The bit fail limit is the maximum difference between the expected and actual output neuron value that is allowed.The default bit fail limit is 0.35. If the difference between the expected and actual output neuron value is more that the bit fail limit, this counts as 1 bit fail. In the sample output you gave, at 58 epochs all the output neurons gave actual outputs close enough to the expected outputs and hence the bit fail was 0 and training stopped. In other words all the training examples gave outputs that were close enough to the expected outputs. During the first epoch, 4 of the training samples gave outputs resulting in bit fails.</p> <br /><br /><br /><h3>回答2:</h3><br /><p>from documentation of FANN</p> <p>The number of fail bits; means the number of output neurons which differ more than the bit fail limit http://leenissen.dk/fann/html/files/fann_train-h.html#fann_get_bit_fail</p> <br /><br /><br /><h3>回答3:</h3><br /><p>Yea I have found this confusing as well and thought that it may have been a bug in 'ruby-fann'.</p> <p>The FANN manual states that it is the number of output neurons failing but doesn't say that it is the total sum of the number of output neurons for the provided sample set. Therefore the worst case 'Bit fail' is ALL of the output neurons failing (beyond the specified bit fail limit) for ALL of the samples.</p> <br /><br /><p>来源:<code>https://stackoverflow.com/questions/12921798/what-is-the-purpose-of-bit-fail-in-fann</code></p></div> <div class="field field--name-field-tags field--type-entity-reference field--label-above"> <div class="field--label">标签</div> <div class="field--items"> <div class="field--item"><a href="/tag/artificial-intelligence" hreflang="zh-hans">artificial-intelligence</a></div> <div class="field--item"><a href="/tag/neural-network" hreflang="zh-hans">neural-network</a></div> <div class="field--item"><a href="/tag/fann" hreflang="zh-hans">fann</a></div> </div> </div> Tue, 10 Dec 2019 04:38:41 +0000 寵の児 2101054 at https://www.e-learn.cn Error “undefined reference to `sin'” when compiling (with -lm) https://www.e-learn.cn/topic/2079709 <span>Error “undefined reference to `sin&#039;” when compiling (with -lm)</span> <span><span lang="" about="/user/69" typeof="schema:Person" property="schema:name" datatype="">本秂侑毒</span></span> <span>2019-12-10 09:22:36</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><h3>问题</h3><br /><p>I've downloaded and compiled: http://leenissen.dk/fann/wp/</p> <ul><li>cmake version 2.8.11.2</li> <li>gcc (Ubuntu/Linaro 4.8.1-10ubuntu8) 4.8.1</li> </ul><p>Command used to compile:</p> <pre><code>cmake -D CMAKE_INSTALL_PREFIX:PATH=/usr . </code></pre> <p>Installation:</p> <pre><code>sudo make &amp;&amp; sudo make install </code></pre> <p>Then I go to examples/ directory inside fann project and try to compile examples by running:</p> <pre><code>make all </code></pre> <p>I'm getting an error:</p> <pre><code>gcc -O3 xor_train.c -o xor_train -lfann -lm /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libfann.so: undefined reference to `sin' /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libfann.so: undefined reference to `exp' /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libfann.so: undefined reference to `cos' /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libfann.so: undefined reference to `log' /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libfann.so: undefined reference to `pow' /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libfann.so: undefined reference to `sqrt' /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libfann.so: undefined reference to `floor' collect2: error: ld returned 1 exit status make: *** [xor_train] Error 1 </code></pre> <p>Update:</p> <ul><li>I've followed an instruction given by a library</li> <li>I've checked on another machine and provided instruction works as intended so I guess my environment is in a some way misconfigured.</li> </ul><p>Some more info about shared library dependencies:</p> <pre><code>ldd /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libfann.so linux-vdso.so.1 =&gt; (0x00007fff3abfe000) libc.so.6 =&gt; /lib/x86_64-linux-gnu/libc.so.6 (0x00007f6f3997c000) /lib64/ld-linux-x86-64.so.2 (0x00007f6f39f84000) </code></pre> <p>As suggested by @michael-burr compiled with -Wl,-v</p> <pre><code>/usr/bin/ld --sysroot=/ \ --build-id --eh-frame-hdr -m elf_x86_64 \ --hash-style=gnu --as-needed \ -dynamic-linker /lib64/ld-linux-x86-64.so.2 \ -z relro -o xor_train \ /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crt1.o \ /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crti.o \ /usr/lib/gcc/x86_64-linux-gnu/4.8/crtbegin.o \ -L/usr/lib/gcc/x86_64-linux-gnu/4.8 \ -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu \ -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib \ -L/lib/x86_64-linux-gnu \ -L/lib/../lib -L/usr/lib/x86_64-linux-gnu \ -L/usr/lib/../lib \ -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../.. \ -v /tmp/cc0AHZgU.o -lfann -lm -lgcc --as-needed -lgcc_s --no-as-needed \ -lc -lgcc --as-needed -lgcc_s --no-as-needed \ /usr/lib/gcc/x86_64-linux-gnu/4.8/crtend.o \ /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crtn.o GNU ld (GNU Binutils for Ubuntu) 2.23.52.20130913 </code></pre> <br /><h3>回答1:</h3><br /><p><strong>Root cause</strong>: missing dependencies in FANN library (Will send a patch to author). Such a dependency is called "inter library dependency".</p> <p>It may happen that one build a shared library <strong>A</strong> and doesn't have correct dependencies set (let's say <strong>B</strong>). In such a case a shared library <strong>A</strong> will be build without any error msg as it's not required to provide implementation during compiling.</p> <p>The problem will appear as a lack of library <strong>B</strong> when one try to create an executable file which depends on <strong>A</strong>.</p> <p>In this specific case a solution is to modify a CMake configuration file according to CMake manual</p> <p>Example changeline:</p> <pre><code>TARGET_LINK_LIBRARIES(fann m) </code></pre> <br /><br /><br /><h3>回答2:</h3><br /><p>It looks like you're compiling your own program as 64-bit, but the FANN library is 32-bit. You might need to specify an architecture for FANN when you compile, which might mean modifying GCC flags in the makefile, unless there are autoconf settings to do it for you. Assuming that you want 64-bit FANN.</p> <p>Alternatively, you could specify 32-bit architecture when you compile your own code.</p> <br /><br /><p>来源:<code>https://stackoverflow.com/questions/19693753/error-undefined-reference-to-sin-when-compiling-with-lm</code></p></div> <div class="field field--name-field-tags field--type-entity-reference field--label-above"> <div class="field--label">标签</div> <div class="field--items"> <div class="field--item"><a href="/tag/c-1" hreflang="zh-hans">c</a></div> <div class="field--item"><a href="/tag/gcc" hreflang="zh-hans">gcc</a></div> <div class="field--item"><a href="/tag/cmake" hreflang="zh-hans">cmake</a></div> <div class="field--item"><a href="/tag/linker-errors" hreflang="zh-hans">linker-errors</a></div> <div class="field--item"><a href="/tag/fann" hreflang="zh-hans">fann</a></div> </div> </div> Tue, 10 Dec 2019 01:22:36 +0000 本秂侑毒 2079709 at https://www.e-learn.cn Error “undefined reference to `sin'” when compiling (with -lm) https://www.e-learn.cn/topic/1729221 <span>Error “undefined reference to `sin&#039;” when compiling (with -lm)</span> <span><span lang="" about="/user/212" typeof="schema:Person" property="schema:name" datatype="">三世轮回</span></span> <span>2019-12-05 17:15:23</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><div class="alert alert-danger" role="alert"> <p>I've downloaded and compiled: <a href="http://leenissen.dk/fann/wp/" rel="nofollow">http://leenissen.dk/fann/wp/</a></p> <ul><li>cmake version 2.8.11.2</li> <li>gcc (Ubuntu/Linaro 4.8.1-10ubuntu8) 4.8.1</li> </ul><p>Command used to compile:</p> <pre><code>cmake -D CMAKE_INSTALL_PREFIX:PATH=/usr . </code></pre> <p>Installation:</p> <pre><code>sudo make &amp;&amp; sudo make install </code></pre> <p>Then I go to examples/ directory inside fann project and try to compile examples by running:</p> <pre><code>make all </code></pre> <p>I'm getting an error:</p> <pre><code>gcc -O3 xor_train.c -o xor_train -lfann -lm /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libfann.so: undefined reference to `sin' /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libfann.so: undefined reference to `exp' /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libfann.so: undefined reference to `cos' /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libfann.so: undefined reference to `log' /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libfann.so: undefined reference to `pow' /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libfann.so: undefined reference to `sqrt' /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libfann.so: undefined reference to `floor' collect2: error: ld returned 1 exit status make: *** [xor_train] Error 1 </code></pre> <p>Update:</p> <ul><li>I've followed an instruction given by a library</li> <li>I've checked on another machine and provided instruction works as intended so I guess my environment is in a some way misconfigured.</li> </ul><p>Some more info about shared library dependencies:</p> <pre><code>ldd /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libfann.so linux-vdso.so.1 =&gt; (0x00007fff3abfe000) libc.so.6 =&gt; /lib/x86_64-linux-gnu/libc.so.6 (0x00007f6f3997c000) /lib64/ld-linux-x86-64.so.2 (0x00007f6f39f84000) </code></pre> <p>As suggested by @michael-burr compiled with -Wl,-v</p> <pre><code>/usr/bin/ld --sysroot=/ \ --build-id --eh-frame-hdr -m elf_x86_64 \ --hash-style=gnu --as-needed \ -dynamic-linker /lib64/ld-linux-x86-64.so.2 \ -z relro -o xor_train \ /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crt1.o \ /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crti.o \ /usr/lib/gcc/x86_64-linux-gnu/4.8/crtbegin.o \ -L/usr/lib/gcc/x86_64-linux-gnu/4.8 \ -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu \ -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib \ -L/lib/x86_64-linux-gnu \ -L/lib/../lib -L/usr/lib/x86_64-linux-gnu \ -L/usr/lib/../lib \ -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../.. \ -v /tmp/cc0AHZgU.o -lfann -lm -lgcc --as-needed -lgcc_s --no-as-needed \ -lc -lgcc --as-needed -lgcc_s --no-as-needed \ /usr/lib/gcc/x86_64-linux-gnu/4.8/crtend.o \ /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crtn.o GNU ld (GNU Binutils for Ubuntu) 2.23.52.20130913 </code></pre> </div><div class="panel panel-info"><div class="panel-heading"></div><div class="panel-body"> <p><strong>Root cause</strong>: missing dependencies in FANN library (Will send a patch to author). Such a dependency is called "<a href="http://www.gnu.org/software/libtool/manual/html_node/Inter_002dlibrary-dependencies.html" rel="nofollow">inter library dependency</a>".</p> <p>It may happen that one build a shared library <strong>A</strong> and doesn't have correct dependencies set (let's say <strong>B</strong>). In such a case a shared library <strong>A</strong> will be build without any error msg as it's not required to provide implementation during compiling.</p> <p>The problem will appear as a lack of library <strong>B</strong> when one try to create an executable file which depends on <strong>A</strong>.</p> <p>In this specific case a solution is to modify a CMake configuration file according to <a href="http://www.cmake.org/cmake/help/v2.8.12/cmake.html#command%3aset_target_properties" rel="nofollow">CMake manual</a></p> <p>Example changeline:</p> <pre><code>TARGET_LINK_LIBRARIES(fann m) </code></pre> </div></div><div class="panel panel-info"><div class="panel-heading"></div><div class="panel-body"> <p>It looks like you're compiling your own program as 64-bit, but the FANN library is 32-bit. You might need to specify an architecture for FANN when you compile, which might mean modifying GCC flags in the makefile, unless there are autoconf settings to do it for you. Assuming that you want 64-bit FANN.</p> <p>Alternatively, you could specify 32-bit architecture when you compile your own code.</p> </div></div><div class="alert alert-warning" role="alert"><p>来源:<code>https://stackoverflow.com/questions/19693753/error-undefined-reference-to-sin-when-compiling-with-lm</code></p></div></div> <div class="field field--name-field-tags field--type-entity-reference field--label-above"> <div class="field--label">标签</div> <div class="field--items"> <div class="field--item"><a href="/tag/c-1" hreflang="zh-hans">c</a></div> <div class="field--item"><a href="/tag/gcc" hreflang="zh-hans">gcc</a></div> <div class="field--item"><a href="/tag/cmake" hreflang="zh-hans">cmake</a></div> <div class="field--item"><a href="/tag/linker-errors" hreflang="zh-hans">linker-errors</a></div> <div class="field--item"><a href="/tag/fann" hreflang="zh-hans">fann</a></div> </div> </div> Thu, 05 Dec 2019 09:15:23 +0000 三世轮回 1729221 at https://www.e-learn.cn FANN - I get incorrect results (near 0) at simply task [closed] https://www.e-learn.cn/topic/1172528 <span>FANN - I get incorrect results (near 0) at simply task [closed]</span> <span><span lang="" about="/user/35" typeof="schema:Person" property="schema:name" datatype="">99封情书</span></span> <span>2019-12-02 22:46:53</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><h3>问题</h3><br /><aside class="s-notice s-notice__info js-post-notice mb16" aria-hidden="false" role="status"><div class="grid fd-column fw-nowrap"> <div class="grid fw-nowrap"> <div class="grid--cell fl1 lh-lg"> <div class="grid--cell fl1 lh-lg"> <b>Closed</b>. This question needs details or clarity. It is not currently accepting answers. </div> </div> </div> </div> <hr class="my12 outline-none baw0 bb bc-powder-2" /><div class="grid fw-nowrap fc-black-600"> <div class="grid--cell mr8"> <svg aria-hidden="true" class="svg-icon iconLightbulb" width="18" height="18" viewbox="0 0 18 18"><path d="M9.5.5a.5.5 0 0 0-1 0v.25a.5.5 0 0 0 1 0V.5zm5.6 2.1a.5.5 0 0 0-.7-.7l-.25.25a.5.5 0 0 0 .7.7l.25-.25zM1 7.5c0-.28.22-.5.5-.5H2a.5.5 0 0 1 0 1h-.5a.5.5 0 0 1-.5-.5zm14.5 0c0-.28.22-.5.5-.5h.5a.5.5 0 0 1 0 1H16a.5.5 0 0 1-.5-.5zM2.9 1.9c.2-.2.5-.2.7 0l.25.25a.5.5 0 1 1-.7.7L2.9 2.6a.5.5 0 0 1 0-.7z" fill-opacity=".4"></path><path opacity=".4" d="M7 16h4v1a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1v-1z" fill="#3F3F3F"></path><path d="M15 8a6 6 0 0 1-3.5 5.46V14a1 1 0 0 1-1 1h-3a1 1 0 0 1-1-1v-.54A6 6 0 1 1 15 8zm-4.15-3.85a.5.5 0 0 0-.7.7l2 2a.5.5 0 0 0 .7-.7l-2-2z" fill="#FFC166"></path></svg></div> <div class="grid--cell lh-md"> <p class="mb0"> <b>Want to improve this question?</b> Add details and clarify the problem by editing this post. </p> <p class="mb0 mt6">Closed <span title="2018-08-10 22:14:33Z" class="relativetime">last year</span>.</p> </div> </div> </aside><pre><code>#include "doublefann.h" #include "fann_cpp.h" #include &lt;iostream&gt; using namespace std; int main() { FANN::neural_net* sth = new FANN::neural_net(); sth-&gt;create_standard(3, 1, 2, 1); double inputs[1] = {0.000005}; double outputs[1] = {0.8}; double *wynik; for(int i = 0; i &lt; 1000; i++) { sth-&gt;train(inputs, outputs); wynik = sth-&gt;run(inputs); cout &lt;&lt; wynik[0] &lt;&lt; endl; } } </code></pre> <p>I've got: 5.20981e-315, 5.201e-315, 5.19371e-315, 5.18769e-315, 5.18269e-315, 5.1786e-315.</p> <p>What I am doing wrong?</p> <br /><h3>回答1:</h3><br /><p>Ok. I've got it. On http://leenissen.dk/fann/forum/viewtopic.php?t=354 is a solution. If you include "doublefann.h" you should link "-ldoublefann" instead "-lfann" in compiler options.</p> <br /><br /><p>来源:<code>https://stackoverflow.com/questions/9795468/fann-i-get-incorrect-results-near-0-at-simply-task</code></p></div> <div class="field field--name-field-tags field--type-entity-reference field--label-above"> <div class="field--label">标签</div> <div class="field--items"> <div class="field--item"><a href="/tag/c-0" hreflang="zh-hans">c++</a></div> <div class="field--item"><a href="/tag/fann" hreflang="zh-hans">fann</a></div> </div> </div> Mon, 02 Dec 2019 14:46:53 +0000 99封情书 1172528 at https://www.e-learn.cn What is the format of training data in pyfann? https://www.e-learn.cn/topic/902872 <span>What is the format of training data in pyfann?</span> <span><span lang="" about="/user/93" typeof="schema:Person" property="schema:name" datatype="">送分小仙女□</span></span> <span>2019-12-01 07:01:28</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><div class="alert alert-danger" role="alert"> <p>What is the format of thraining data in pyfann? Concretely I would like to use the init_weight function of pyfann, but it does not take a range, but finds the range from traning data. Therefore I would like to create a small fake dataset, which has the lowest and the highes value of what can be expected in the programm.</p> </div><div class="panel panel-info"><div class="panel-heading"></div><div class="panel-body"> <p>Frist Line, 3 arguments: number of data to train, number of inputs, number of outputs from there, goes one line of inputs and one of outputs e.g. (AND logic matrix): </p> <pre><code>4 2 1 1 1 1 0 1 0 0 0 0 1 0 0 </code></pre> <p>Above:</p> <ul><li><p>4 datas to train:</p> <p>1 AND 1 = 1<br /> 0 AND 1 = 0<br /> 0 AND 0 = 0<br /> 1 AND 0 = 0 </p></li> <li><p>2 inputs</p></li> <li><p>1 output</p></li> </ul></div></div><div class="panel panel-info"><div class="panel-heading">mviana</div><div class="panel-body"> <p>Now you can also use <code>train_on_data</code>, which receives the same arguments as <code>train_on_file</code>, but you change the filename with an object <code>libfann.training_data()</code> and set the lists of lists of input and output as (for the xor case):</p> <pre><code>training = libfann.training_data() training.set_train_data([[-1,-1],[-1,1],[1,-1],[1,1]],[[-1],[1],[1],[-1]]) </code></pre> </div></div><div class="panel panel-info"><div class="panel-heading"></div><div class="panel-body"> <p>you might find help on this page.</p> <p><a href="http://leenissen.dk/fann/html/files2/gettingstarted-txt.html#Execution" rel="nofollow">http://leenissen.dk/fann/html/files2/gettingstarted-txt.html#Execution</a></p> <p>half-way down the page there is a description of the training data format.</p> </div></div><div class="alert alert-warning" role="alert"><p>来源:<code>https://stackoverflow.com/questions/12063340/what-is-the-format-of-training-data-in-pyfann</code></p></div></div> <div class="field field--name-field-tags field--type-entity-reference field--label-above"> <div class="field--label">标签</div> <div class="field--items"> <div class="field--item"><a href="/tag/python" hreflang="zh-hans">python</a></div> <div class="field--item"><a href="/tag/neural-network" hreflang="zh-hans">neural-network</a></div> <div class="field--item"><a href="/tag/fann" hreflang="zh-hans">fann</a></div> </div> </div> Sat, 30 Nov 2019 23:01:28 +0000 送分小仙女□ 902872 at https://www.e-learn.cn