有这种Enumerator#feed方法,我偶然发现了.它被定义为:
feed obj→nil
设置e中下一个yield返回的值.如果未设置该值,则yield将返回nil.该值在被放弃后被清除.
我研究了这些例子和想法»耶!",这应该可以使用feed
:
enum = ['cat', 'bird', 'goat'].each # creates an enumerator
enum.next #=> 'cat'
enum.feed 'dog'
enum.next #=> returns 'bird', but I expected 'dog'
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我假设它没有返回'dog'
,因为each
它不是在yield
内部使用.
问题是,我无法从文档中的给定示例中推断出任何真实世界的用例,Google不是这个问题的朋友,并且(从我尝试过的)feed
似乎不适合其他Enumerator
/ Enumeration
方法.
请你能给我一个很好的例子来解释一下feed
,所以我能绕过它吗?
我希望我的Restricted Boltzmann Machine能够学习实值数据的新表示(参见: Hinton - 2010 - RBM培训实用指南).我正在努力实现高斯线性单位.
利用可见层中的高斯线性单元,能量变为E(v,h)= ? (v-a)²/2? - ? bh - ?v/? h w
.现在我不知道如何改变对比发散学习算法.可见单位将不再被采样,因为它们是线性的.我使用期望(mean-fied activation)p(v_i=1|h)= a +?hw + N(0,1)
作为他们的状态.这些关联是不变的(pos:data*p(h=1|v)'
neg :) p(v=1|h)*p(h=1|v)'
.但是,当我想重建数据时,这只会导致随机噪声.错误率将停止提高50%左右.
最后,我想在两个层中使用高斯线性单位.那么我如何得到隐藏单位的状态呢?我建议使用均值场激活,p(h_i=1|v)= b +?vw + N(0,1)
但我不确定.
所以我在Ruby上几乎是一个n00b,而且我已经整理了一个代码来解决一个MinCut问题(对于一个赋值,是的 - 我已经整理和测试的那部分代码),我不能弄清楚如何读取文件并将其放入数组数组中.我有一个要读取的文本文件,其长度如下所示
1 37 79 164
2 123 134
3 48 123 134 109
我想把它读成一个二维数组,每一行和每一行都是分开的,每一行都进入一个数组.因此,上面示例的结果数组将是:
[[1, 37, 79, 164], [2, 123, 134], [3, 48, 123, 134, 109]]
Run Code Online (Sandbox Code Playgroud)
我阅读文本文件的代码如下:
def read_array(file, count)
int_array = []
File.foreach(file) do |f|
counter = 0
while (l = f.gets and counter < count ) do
temp_array = []
temp_array << l.to_i.split(" ")
int_array << temp_array
counter = counter + 1
end
end
return int_array
end
Run Code Online (Sandbox Code Playgroud)
任何帮助是极大的赞赏!
此外,如果它有帮助,我目前得到的错误是"在read_array中阻塞":私有方法'被'调用#"
我已经尝试了一些东西,但是得到了不同的错误信息......
我编写了一个python代码,用于将数据从多个excel文件转换为单个csv文件,但它无法正常工作.我在以下程序中尝试使用XL_CELL_EMPTY或XL_CELL_BLANK代替None.但没有任何工作.它给出了以下错误
Traceback (most recent call last):
File "Excel_to_CSV_1.py", line 35, in <module>
while Sh_B1.cell(i,j).value != None :
File "/usr/lib/pymodules/python2.7/xlrd/sheet.py", line 245, in cell
self._cell_types[rowx][colx],
IndexError: array index out of range
Run Code Online (Sandbox Code Playgroud)
这是该计划:
import xlrd
import os.path
from xlrd import open_workbook,empty_cell
book1 = xlrd.open_workbook("Excel_1.xls")
Sh_B1 = book1.sheet_by_index(0)
book2 = xlrd.open_workbook("Excel_2.xls")
Sh_B2 = book2.sheet_by_index(0)
i = 1
j = 1
file = open("Output.txt", "w")
while Sh_B1.cell(i,j).value != None :
while Sh_B1.cell(i,j).value != None :
D1 = Sh_B1.cell(i,j).value
D2 = Sh_B2.cell(i,j).value
DB1 = str(D1)+ …
Run Code Online (Sandbox Code Playgroud) 当我尝试执行这段代码时,我得到的输出就像12221121212121221212
.当我声明方法时synchronized
,它不应该允许其他线程接管控件
package com.test;
public class TestProject extends Thread {
public void run() {
synchronized (this) {
for (int i = 0; i < 10; i++) {
System.out.print(getName());
}
}
}
public static void main(String[] args) throws InterruptedException {
TestProject myProject = new TestProject();
TestProject myProject1 = new TestProject();
myProject.setName("1");
myProject1.setName("2");
myProject.start();
myProacject1.start();
}
}
Run Code Online (Sandbox Code Playgroud)
那么,如何更改代码以获得顺序格式的输出11111111112222222222或22222222221111111111?
我理解并理解通过将@放在Controller中的变量名前面,它在任何View加载时都可用.这非常有用,但我想了解它的魔力.它是如何发生的,可以停止吗?
我试图使用继承来干燥我的CRUDdy资源控制器,将大部分逻辑放入其中ApplicationController
.超类应该引用抽象变量@resource
(对于单个资源),@resources
(对于资源集合)和@parent_resource
(对于@resource
嵌套时的父资源),但理想情况下,视图将获得更具体的名称,例如; @customer
,@customers
和@sales_territory
分别.可以在不将所有对象(一次在抽象名称中,一次在具体名称中)的重复项发送到视图的情况下完成此操作?
在我写这篇文章时,想到的可能性是;
如何实现这一目标的正确选择是什么?