我正在学习Docker,我怀疑何时何地使用ADD
和VOLUME
.以下是我认为这两个方面的作用:
在构建时将文件复制到映像.该图像包含所有文件,因此您可以轻松部署.另一方面,每次需要构建在开发中看起来不是一个好主意,因为构建需要开发人员运行命令来重建容器; 另外,构建容器可能是耗时的.
我了解使用docker run -v
您可以在容器中安装主机文件夹,这样您就可以轻松修改文件并观察容器中的应用程序对更改的反应.它在开发中看起来很棒,但我不知道如何以这种方式部署我的文件.
我正在寻找一个IDE,它至少可以解决以下问题
.
如果它也可能会很好
我想要一个一致的库,使我能够轻松地做这些技巧,专注于高级功能概念(仿函数,幺半群,monad,镜头等),不会放弃开发.
现在最好的选择是什么?
这些程序的设计目标是什么?每个程序提供的是另一个程序?此外,两个系统是否一致,而且,它们是否基于一些基础数学理论?
我关心的两件事:
我在搜索,我读到的内容似乎非常两极分化,我想知道他们与最客观(人性)可能的观点的区别.
这可能适用于任何类型类,但我们可以更好地了解Functors.我不想构建这个列表.
l = [Just 1, [1,2,3], Nothing, Right 4]
Run Code Online (Sandbox Code Playgroud)
然后
map (fmap (+1)) l
Run Code Online (Sandbox Code Playgroud)
要得到
[Just 2, [2,3,4], Nothing, Right 5]
Run Code Online (Sandbox Code Playgroud)
我知道它们都是含有Ints的Functors,所以它可能是有可能的.我怎样才能做到这一点?
编辑
事实证明这比看起来更加混乱.在Java或C#中,您将声明IFunctor
接口然后只写
List<IFunctor> l = new List<IFunctor> () {
new Just (1),
new List<Int>() {1,2,3},
new Nothing<Int>(),
new Right (5)
}
Run Code Online (Sandbox Code Playgroud)
假设Maybe
,List
并Either
实施IFunctor
.自然Just
和Nothing
延伸Maybe
,并Right
和Left
延伸Either
.不满意这个问题更容易解决这些语言!
在Haskell应该更干净的方式:(
神经网络实际上只是一个包含许多参数的巨大函数,因此您可能会认为用函数式语言编写这样的函数会很漂亮,但是对于其他语言编写了一些NN库,我对如何使用它有一些疑问.在这个范例中有效地实施它们.
传递信息:如果你绘制每个神经元或层的依赖关系图,你会得到这样的东西
其中x是输入,f是输出.虽然它在图中看起来非常简单,但如果你真的将网络视为一个函数,那么f必须将输入(加上权重参数的一个子集)传递给g1和g2,每个都必须将这些传递给h1,h2和h3最终将结果发送到上面的层.考虑到输入集加上权重集可能是一千个或更多变量,这看起来非常低效.在其他语言中,您不必这样做,因为每个神经元都可以保留它的参数,并且输入可以直接传递到输入层.
状态:如果你看图表,g1和g2都将分别调用h2,但由于h2必须为两者产生相同的值,因此计算其输出两次没有意义.由于你没有状态或副作用,这变得棘手,如果你有一个非常庞大的网络,那么即使进行一些并行计算,这也会浪费很多时间.
最后,当我说网络是通用的时,我的意思是它可以有任意形状,只要它的结构不包含循环.我见过的大多数库都使用了一叠层,所以你只需要定义每层中层的数量和神经元的数量,但它的形状是一个线性图形; 这对于简单的应用程序来说很好,但真正的核心内容需要具有更复杂架构的网络
我喜欢一些关于如何解决这些问题的建议,因为我想根据自己的需要实现一个库.
注意:
我对语言并不是全新的.我已经使用了相当数量的Functors和Monads(大多数在我的FP库中用于基于haskells API的C#),但我之前从未使用过haskell用于真正的应用程序.
更新
该State
单子看起来非常有前途的!
我有一个参数方法,它Func
作为一个参数
SomeType SomeMethod<T>( Func<T, T> f ) {...}
Run Code Online (Sandbox Code Playgroud)
我想传递一个,Action
而不必重载该方法.但是这就解决了这个问题,你如何代表和Action
作为一个Func
?我试过了
Func<void, void>
Run Code Online (Sandbox Code Playgroud)
但它无效.
我找到了Famo.us,看起来很令人兴奋,但他们的文档已经关闭了.我对WebGL非常好奇,所以我开始寻找替代方案.我找到了Three.js和Clara.io.
他们与famo.us有何不同?每个框架的主要目标是什么?
谢谢.
编辑:改述.
我现在可以使用运行Dart应用程序了
gcloud --verbosity debug preview app run app.yaml
Run Code Online (Sandbox Code Playgroud)
以及在AppEngine上部署和运行
gcloud --verbosity debug preview app deploy app.yaml
Run Code Online (Sandbox Code Playgroud)
但我还没有找到一种方法将调试器连接到在开发服务器上运行的Dart应用程序.
我找到了http://dartbug.com/21067,但仍然找不到让它工作的方法.
另请参阅https://groups.google.com/a/dartlang.org/forum/#!topic/cloud/OK1nJtg7AjQ
我怎样才能创建一个插件是如转动body
的响应为大写,如果content-type
是text/plain
?在其他中间件中,您调用resp = next(conn, params)
然后修改resp
但我没有在插件中看到它.