淘优惠

淘优惠

Name already in use

热门文章 0

#!/usr/bin/env python
import numpy as np
import pycuda.driver as drv
from neon.backends.nervanagpu import NervanaGPU
from openai_gemm import matmul_test
ng = NervanaGPU()
print drv.Context.get_current().get_device().name()
ones =
out =
# for i in range(1000): # np.float32, np.float16
# matmul_test(ng, np.float32, "TN", 4096*4, 4096*4, 33, ones=ones, out=out) # update
# if i % 100==0: print i
# exit()
small_1 = (1,2,3,4,5,6,7,8,9,16,32,64,65,72,120,127,128,192)
medium_1 = (32,64,128,192,778,785,786,787,794)
big_1 = (32,64,128,1532,1535,1536,1537,1540,3073,4095)
small_2 = (8,16,32,64,72,96,120,128,192)
medium_2 = (32,64,128,192,256,768-4,768-8,768,768+16,768+32)
big_2 = (32,64,128,1536-12,1536-24,1536,1536+28,1536+32,3072,4096)
for dtype in (np.float32, np.float16, ): # np.float32, np.float16
print dtype
for size in (small_1, small_2, medium_1, medium_2, big_1, big_2,): # small_1, small_2, medium_1, medium_2, big_1, big_2
print size
for K in size:
print "K:", K
for C in (size):
print "C:", C
for N in (size):
matmul_test(ng, dtype, "NN", N, K, C, ones=ones, out=out) # fprop
matmul_test(ng, dtype, "NT", N, C, K, ones=ones, out=out) # bprop
matmul_test(ng, dtype, "TN", C, K, N, ones=ones, out=out) # update
matmul_test(ng, dtype, "TT", K, N, C, ones=ones, out=out) # ------

Ogre的相关库

ogre是什么文件
该AI库的目标是用于OpenGL的图形程序. 也意味着不能和DirectX无缝地结合.该AI库用Java所写. http://fear.sourceforge.net/index.php该库还在完成中, 没准备实时或游戏应用程序.测试和使用该库需要Quake 2 http://opensteer.sourceforge.net/C++库, 帮助创造游戏和动画中自主角色的驾驶行为. OpenSteer提供了基于OpenGL的应用程序 OpenSteerDemo,该Demo显示了预定的驾驶行为. 通过写OpenSteerDemo的插件, 可以快速的使用该用户为原型, 注解, 调试新的驾驶行为. http://www.cgf-ai.com/products.html#tacastarexplorer在"游戏程序精粹III(Game Programming Gems III book)"中有过描述,该简单的方法可以创建战术路径添加新的花费给A*花费函数, 这个新的花费会反映到暴露给敌人, 且相互射击在 http://robertwrose.com/cg 查看Ogre关于A*路径查找的实现 http://pathlib.hildebrand.cz/pathlib.html免费的C++ A*路径查找, 快速且健壮. 带有windows demo, 允许路径测试和地图编辑(支持路径查找组)见 http://robertwrose.com/cg 查看Ogre关于A*路径查找的实现 http://www.dossier-andreas.net/ai/index.html该站点包含AI技术的开源库, 用C++编写. 很棒的材料, 非常宝贵的起点: FSM(有限状态机), fuzzy, 学习树等, 好东西 http://www.grinninglizard.com/MicroPather/根据网页介绍:"MicroPather是一个路径查找方法和A*解决方案, 无关平台的C++代码, 可以很轻易的嵌入已存代码. MicroPather关注视频游戏的路径查找引擎" http://boost.org/libs/graph/doc/table_of_contents.html无关平台, 可以执行A*查找 http://leenissen.dk/fann/无关平台, 页面介绍:FANN(Fast Artificial Neural Network Library - 快速人工神经网络库), 免费开源神经网络库用C实现多层人工神经网络, 支持全连接和稀疏连接网络. http://openskynet.sourceforge.net/A*路径查找库, 多个对象可以使用相同的格子, C++ http://code.google.com/p/recastnavigation/无关平台, Recast 是游戏的美术导航网格构造工具集的状态. 需要处理网络性能, 容错, 同时发生控制和安全问题. 大多数Ogre基于自定义网络库.下列库对于一些Ogre用户比较有用. http://freshmeat.net/projects/raknet网页介绍:RakNet是一个网络API, Windows, Linux和Unix的可靠的UDP和高层功能的包装它允许在相同的电脑或者LAN或者因特网任意应用程序联系其他应用程序虽然他可用于任意网络应用程序, 但他可以快速开发在线游戏和添加多个玩家至单个用户游戏. http://www.opentnl.org/页面介绍:这个转矩库(Torque Network)是一个强壮的, 安全的, 易使用的跨平台C++网络API, 设计于高性能方针和游戏 http://www.zoidcom.com/网页介绍:Zoidcom 是一个基于UDP的高层网络库, 在网络连接之上以高效的方式复制游戏对象和同步他们的状态.通过多路传送对象信息给位流, 或者取出对象信息. 可以方式发送多余的数据 http://www.hawksoft.com/hawknl/页面介绍: 面向游戏的网络API, 底层API. Berkeley/Unix Sockets 和 Winsock的包装.其他的特色: sockets组, sockets统计, 高精确计数器, CRC功能, 用宏读取和写数据来打包endian转换. 支持多重网络传输 http://enet.bespin.org/ 页面介绍: 目标是提供一个在UDP上的相对简单, 单纯, 健壮的网络通讯层, 主要特色是提供一个可选的可依赖性, 有次序的传送包 http://zige.sourceforge.net/页面介绍:可扩展的客户端-服务器游戏引擎. 除了网络, 还提供其他功能:日志, 互动调试控制台, 时间控制(用于客户端帧率和服务器发包率), 自动从服务器下载游戏文件到客户端, 等等从ZIG的角度看, 需要提供图形渲染器, 声音引擎, 和输入处理的扩展.你可以插入 Allegro, SDL, DirectX, OpenGL 等.ZIP是依赖HaukNL和Pthreads的跨平台C/C++库 http://www.libsdl.org/projects/SDL_net/网页介绍SDL_net是一个小且简单的跨平台网络库, 由SDL支持 http://sourceforge.net/projects/ogresocks/OgreSocks 是winsock的包装类, 面向Ogre开发者的首要网络库. 可以用最少的代码统合客户端和服务器的socket 游戏和仿真程序极大的依赖声音和音乐提供氛围 http://www.fmod.org/网页介绍:FMOD 支持3D声音, midi, mods, mp3, ogg vorbis, wma, aiff, 录音, 阻塞/环绕, cd回放, mmx, 因特流, dsp效果, 声谱分析用户采样, 同步支持, ASIO, EAX 2&3等等 http://www.openal.org/网页介绍: 跨平台的3D声音API, 适合游戏应用程序以及其他类型的声音应用程序.两个OGRE包装为OgreOggSound和OgreAL http://www.un4seen.com/bass.html网页介绍: BASS是一个用于Windows软件的声音库, 目标是提供最强大和有效的工具给开发者,可以采样, 处理流(MP3, MP2, MP1, OGG, WAV, 自生成的流以及其他), MOD音乐(XM, IT, S3M, MOD, MTM, UMX)MO3音乐(MP3/OGG压缩MODs), 和录音功能, 这一切都在小小的DLL里面, 大小少于100K http://audiere.sourceforge.net/Audiere 是一个声音的高层API, 可以播放Ogg Vorbis, MP3, FLAC,未压缩 WAV, AIFF, MOD, S3M, XM, 和 IT作为声音输出, Audiere支持 DirectSound或Windows的WinMM, Linux的OSS, Cygwin, SGI AL http://ambiera.com/irrklang页面介绍: 3D和2D跨平台声音库, 可播放WAV, MP3, OGG, MOD, XM, IT, S3M 和更多的文件格式, 可用于C__和所有的.NET语言 http://deathtouchstudios.com/xoops/modules/smartsection/item.php?itemid=3页面介绍:cAudio引擎是OpenAL的C++的包装, 允许你很轻易的得到声音和音乐, 并放入你的游戏中.OpenAL的问题是其非常难以用在游戏中. cAudio使用OpenAL控制声音的所有方面.Vorbis库用于解码和播放.ogg文件按, Mikmod用于mod,xm,it,和 s3d支持 http://www.lua.org/可以被Ogre调用的库, 可以在C++应用程序中调用网页介绍:基于关联数组和可扩展的语义, 组合了简单的过程语义和强大的数据描述. Lua是动态类型, 逐字节解释, 自动内存管理(垃圾回收)适合配置, 脚本, 和快速构造原型. 可通过luabind将Lua程序嵌入Ogre中luabindhttp://www.rasterbar.com/products/luabind.html http://luaplus.org/tiki-index.php?page=LuaPlus%20Home%20PageLua面向C++的调试工具(visual studio插件), 优化 http://java.sun.com/可通过Ogre扩展ogre4j在Ogre中使用Java http://www.python.org/动态类型的, 字节码解释性, 面向对象的语言.可通过PyOgre使用Python在Ogre C++应用程序中内嵌Python脚本http://www.ogre3d.org/forums/viewtopic.php?t=8131psyco

ai人工智能躲猫猫是什么游戏 open ai注册成功却无法使用

ai人工智能躲猫猫是什么意思,ai人工智能躲猫猫是什么软件,AI躲猫猫,机器人躲猫猫

新智元报道

来源:venturebeat、OpenAI

【新智元导读】OpenAI发表的新研究表明,一群AI智能体在虚拟环境中玩躲猫猫,能够自创出越来越复杂的作战策略,证明简单的游戏规则、多智能体竞争和标准的大规模强化学习算法可以刺激智能体在没有监督的情况下学习复杂的策略和技能。

每个小孩都玩过躲猫猫游戏,如果让一群AI来玩躲猫猫,会发生什么呢?

OpenAI近日发表的新研究表明,一群AI智能体在虚拟环境中玩躲猫猫,学会了越来越复杂的相互躲藏和寻找的策略。

在2500万场捉迷藏游戏后,AI智能体们掌握了四种基本的游戏策略。这是研究人员预料到的。

在总共3.8亿场捉迷藏游戏后,AI智能体们开发出了研究人员想不到在游戏环境中可能存在的策略――这是AI自己创造的。这一点让OpenAI的团队感到十分惊讶。

AI通过强化学习来学习这一切。在这种学习方法中,AI智能体从随机行动开始。有时,这些随机的行为会产生预期的结果,并为它们带来奖励。通过大量的反复试验,他们可以学会复杂的策略。

在游戏环境中,这个反复试验的过程可以通过让AI自我对战来进行,以确保对手能够势均力敌。在这个过程中,任何出现的新策略都会迫使对手寻找对策。随着时间的推移,这种“自我游戏”相当于研究人员所说的“自主课程”(auto-curriculum)。

OpenAI的研究人员Igor Mordatch说,这个实验表明,自我游戏“足以让AI自己学习令人惊讶的行为――就像孩子们互相玩耍一样。”

“在AI领域,创造能够解决各种复杂的与人类相关的任务的智能体一直是一个长期的挑战,”作者在论文中写道:“与人类特别相关的将是能够感知物理世界中的物体并与之互动的智能体。”

AI躲猫猫大作战:独创六种套路和反套路

捉迷藏AI依赖于强化学习,这是一种利用奖励来推动软件策略朝着目标前进的技术,通过反复试验来自我学习。近年来,强化学习与强大计算能力的结合取得了巨大的成功,但也有其局限性。指定奖励函数或收集演示来监督任务可能既耗时又昂贵。(最先进的方法要求对专家演示数据进行监督学习,并利用奖励进一步提高性能。)此外,单智能体强化学习任务的学习技能受到任务描述的限制;一旦智能体学会了解决任务,就没有多少继续提升的空间了。

在OpenAI的躲猫猫研究中,研究人员采用了一种被他们称为“无向探索”(undirected exploration)的策略。在这种策略中,智能体随着对游戏世界的理解自由进化,以设计创造性的获胜策略。这类似于DeepMind去年倡导的多智能体学习方法,在一项研究中,多个AI系统被训练来在游戏《雷神之锤3》中玩“夺旗”(Capture the Flag)。与这项研究一样,AI智能体事先并没有被告知游戏规则,但随着时间的推移,他们学会了基本的策略,并且最终超越了大多数人类玩家。

在捉迷藏游戏中,几个智能体扮演躲藏者,必须在很短的时间内藏起来并躲开敌方(扮演“搜寻者”的智能体)的视线,而搜寻者被指示密切监视躲藏者。(这里的“视线”指智能体前方135度的范围。)如果搜寻者冒险离开游戏区域太远,被迫在随机生成的房间和墙壁中穿行,它们将受到惩罚;它们还可以捡起散落在整个环境中的物体(主要是箱子),这些物体被锁定在某个位置。

AI捉迷藏游戏环境:

智能体可以通过在x和y方向上设定一个力来移动,也可以沿着z轴旋转。

智能体可以看到他们视线范围内的物体。

智能体可以使用类似激光雷达的传感器感知到物体、墙壁和周围其他智能体的距离。

智能体可以抓取和移动他们前面的物体。

智能体可以锁定物体,并且只有锁定该物体一方的团队才能解锁它。

AI在训练过程中发现了六种独特的策略,每一种都能使他们进入下一个游戏阶段。

起初,躲藏者和搜寻者只是逃跑和互相追逐。

随机行动:智能体随机地移动

追逐:搜寻者学会追逐躲藏者。

但经过大约2500万场捉迷藏游戏后,他们学会了通过一起移动箱子和靠近墙壁来建造藏起来的庇护所

建造庇护所:智能体学会了建造一个能够躲起来的场所。

再经过7500万场游戏后,搜寻者学会了移动箱子和使用坡道跳过箱子到达躲藏者的庇护所。

使用坡道:搜寻者学会使用坡道来跳过障碍物。

再经过1000万场游戏后,躲藏者开始把坡道带到游戏区域的边缘,并把它们锁定在适当的位置,以防止搜寻者使用它们

坡道防御:躲藏者学会锁住坡道,以防止搜寻者使用。

最终,在总共3.8亿场游戏之后,搜寻者学会了把箱子带到游戏区域的边缘,并利用游戏空间让他们可以在不接触地面的情况下随着箱子移动,利用“箱型冲浪”到达躲藏者的庇护所。

?

箱型冲浪(Box Surfing):搜寻者学会把箱子带到一个被锁住的斜坡上,以便跳到箱子上面,然后“冲浪”到达躲藏者的庇护所。因为智能体可以对自己施加一个力,因此挂在箱子上也能移动,看起来像冲浪一般。

训练好的智能体学会了协调合作,比如把他们自己的箱子分别搬到一个未建好的庇护所。此外,他们还会作为一个团队互相保护,试图通过在准备阶段将箱子锁在适当的位置来抵御搜寻者利用箱子“冲浪”

防御冲浪:躲藏者学会锁定所有坡道和箱子,以防止敌方利用箱子冲浪。

研究人员称,训练次数很重要。默认模型需要超过34小时、训练1.323亿次才能达到学会“用斜坡防御”的阶段,batch size更大的话,训练更快。例如,将参数数量(模型从历史训练数据中学习的部分)从50万增加到580万,样本效率提高了2.2倍。

测试稳健性:5大任务,3个比基线好

为了评估这些智能体的稳健性,研究人员设计了一套五项基准的智能测试,分为认知和记忆两个领域。所有测试都使用与捉迷藏环境相同的动作空间、观察空间和对象类型:

对象计数:智能体被锁定在一个位置,并被要求预测有多少物体向左或向右移动,测试智能体的记忆力和对持久性的认识。

对象计数(Object Counting):测试智能体是否具有对对象一直存在的认识(即即使在无法感知的情况下,事物依然存在)。

锁住并返回:智能体必须找到箱子,锁定它,并返回到它的原始位置,这将测试智能体对其位置的长期记忆。

锁住并返回(Lock and Return):测试智能体在执行新任务时是否能够记住它们的原始位置。

按顺序锁住:智能体代理必须按正确的顺序锁住箱子,因此它必须记住箱子的状态。

按顺序锁住(Sequential Lock):四个箱子被随机放置在三个房间里,没有门,但是每个房间都有一个斜坡。智能体必须按照它们以前没有观察到的特定顺序来锁住所有箱子。

构建蓝图:智能体必须将箱子移动到目标位置。

构建蓝图(Blueprint construction):房间里有8个箱子,智能体必须将箱子移动到4个目标位置。

建造庇护所:智能体必须在圆柱体周围建造一个掩体。

建造庇护所(Shelter Construction):智能体必须围绕一个圆柱体建造一个由箱子组成的庇护所。

实验证明,上面5个任务中有3个,在“捉迷藏”环境中接受过预训练的智能体学习得更快,最终获得的奖励也比两个基线都要高。他们在“锁住并返回”、“按顺序锁住”和“构建蓝图”这三个任务做得更好,但是在“对象计数”和“建造庇护所”两个任务做得更差。

研究人员将这种结果归咎于技能表现既“纠缠”又难以调整。他们在论文中写道:“我们推测,捉迷藏训练优于基线的任务是由于对已学特征表示的重用,而迁移到剩余任务需要对已学技能的重用,这要困难得多。”

未来研究

那么,我们可以AI玩捉迷藏中得出什么结论呢?简单的游戏规则、多智能体竞争和标准的大规模强化学习算法可以刺激智能体在没有监督的情况下学习复杂的策略和技能。

研究人员表示:“在这些环境中取得的成功激发了人们的信心,相信这些环境最终能够让智能体获得无限多的……技能。”“(它)导致的行为相比其他自我监督强化学习方法,更加与人类相关。”

这些进步不仅仅是推动了游戏设计。研究人员认为,他们的工作是朝着可能产生“物理基础”和“与人类相关”行为的技术迈出的重要一步,这可能支持诊断疾病、预测复杂蛋白质结构和分段CT扫描的系统。

OpenAI原文:

https://openai.com/blog/emergent-tool-use/

上一篇Marteker 日报:(2022.12月.6日)

下一篇谷歌ai自我觉醒 openai未来的发展