我有一个方法,可以获取一个列表并返回一个对象
# input a list, returns an object
def map_to_obj(lst):
a_list = f(lst)
return a_list[0] if a_list else None
Run Code Online (Sandbox Code Playgroud)
我想获得一个包含所有未映射的元素的列表None.
像这样:
v_list = [v1, v2, v3, v4]
[map_to_obj(v) for v in v_list if map_to_obj(v)]
Run Code Online (Sandbox Code Playgroud)
但是map_to_obj在列表推导中调用该方法两次似乎并不好.
有没有办法在列表推导中使用局部变量,以便它可以有更好的性能?
或者编译器是否自动优化它?
这就是我想要的:
(sml like)
[let mapped = map_to_obj(v) in for v in v_list if mapped end]
Run Code Online (Sandbox Code Playgroud) 我目前正在学习Rails指南.我经历了这些步骤,但仍然遇到了一个错误.
我的Ruby版本是ruby 2.1.1p76和Rails版本4.0.4.
作为指导,我创建了一个Article Controller.
class ArticlesController < ApplicationController
def new
end
def create
render plain: params[:article].inspect
end
end
Run Code Online (Sandbox Code Playgroud)
我应该得到{"title"=>"First article!", "text"=>"This is my first article."}但输出结果是
Template is missing
Missing template articles/create, application/create with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :raw, :ruby, :jbuilder, :coffee]}.`
Run Code Online (Sandbox Code Playgroud)
这是我的相关路线:
articles GET /articles(.:format) articles#index
POST /articles(.:format) articles#create
Run Code Online (Sandbox Code Playgroud)
更新:引用此问题时render plain:引入的新方法.Rails 4.1.0
我正在尝试实现SVM损失函数及其渐变.我找到了一些实现这两个的示例项目,但是在计算渐变时我无法弄清楚它们如何使用loss函数.
我无法理解的是,在计算渐变时如何使用损失函数的结果?
示例项目按如下方式计算渐变:
for i in xrange(num_train):
scores = X[i].dot(W)
correct_class_score = scores[y[i]]
for j in xrange(num_classes):
if j == y[i]:
continue
margin = scores[j] - correct_class_score + 1 # note delta = 1
if margin > 0:
loss += margin
dW[:,j] += X[i]
dW[:,y[i]] -= X[i]
Run Code Online (Sandbox Code Playgroud)
dW用于梯度结果.X是训练数据的数组.但是我不明白损失函数的导数是如何产生这个代码的.
说我有一个像这样的文件夹结构:
??? a
? ??? b
? ? ??? c.xml
? ? ??? d.c
? ??? v
? ??? e.class
? ??? g.c
|
??? m
? ??? p
? ? ??? w.out
? ? ??? x.c
? ??? q
? ? ??? y.mp3
? ? ??? z.c
Run Code Online (Sandbox Code Playgroud)
而且我只想不忽略*.c。
我试过了
*
!*.c
Run Code Online (Sandbox Code Playgroud)
在中.gitignore,但这似乎仅适用于当前级别。
我想要的是设置类似的东西!*/*/*.c,因为稍后可能还会有其他目录添加到git repo中,所以我无法对.gitignore文件进行硬编码。
CNN 似乎主要用于固定大小的输入。现在想用CNN来训练一些不同大小的句子,有哪些常用的方法?
Scala似乎将Seqs与单个对象具有相同的值,但与Arrays 并不相同。
Seq行为一样List,Set。
scala> Array(1) == Array(1)
res2: Boolean = false
scala> Seq(1) == Seq(1)
res3: Boolean = true
Run Code Online (Sandbox Code Playgroud)
为什么会发生?背后的原因是什么?