鉴于矩阵:
a =
1 1 2 2
1 1 2 2
3 3 4 4
3 3 4 4
Run Code Online (Sandbox Code Playgroud)
我想得到以下四个2x2矩阵:
a1 =
1 1
1 1
a2 =
2 2
2 2
a3 =
3 3
3 3
a4 =
4 4
4 4
Run Code Online (Sandbox Code Playgroud)
从那里,我想取每个矩阵的最大值,然后将结果重新整形为2x2结果矩阵,如下所示:
r =
1 2
3 4
Run Code Online (Sandbox Code Playgroud)
结果最大值相对于其在初始矩阵中的原始位置的位置是重要的.
目前,我正在使用以下代码来完成此任务:
w = 2
S = zeros(size(A, 1)/w);
for i = 1:size(S)
for j = 1:size(S)
Window = A(i*w-1:i*w, j*w-1:j*w);
S(i, j) = max(max(Window));
end
end
Run Code Online (Sandbox Code Playgroud)
这有效,但似乎必须有一种不涉及迭代(矢量化)的方法.
我尝试使用reshape像这样: …
我mmap()用来将共享内存对象映射到进程。我的问题分为两部分:
1)mmap()linux进程的大小限制是多少?(有此限制吗?)
2)进程运行一段时间后,我认为进程虚拟内存地址空间将以某种方式分散。这会影响我mmap()在此过程中可以做的最大尺寸吗?
使用的linux内核是2.6.27。共享内存对象的大小约为32MB。我试图访问mmap()由于没有足够的虚拟地址空间而导致此类共享内存对象失败的可能性。
手动计算包含所有空白的序列的 CTC 损失很简单。但是,我没有找到使用tf.nn.ctc_lossAPI做到这一点的方法。我错过了什么,或者tf.nn.ctc_loss实现缺少这个功能?当批处理中的几个序列没有输出符号时,此功能是必需的。
我在 github 上报告了这个,它被关闭了,没有答案。
环境:tf 1.3 版,CPU 版;蟒蛇 3.5/3.6; Win10/Ubuntu 16.04。
首先,我们从代码开始:
import tensorflow as tf
num_classes, batch_size, seq_len = 3, 1, 2
labels = tf.SparseTensor(indices=[[0,0]], values=[0], dense_shape=[1,1])
inputs = tf.zeros([seq_len, batch_size, num_classes])
loss = tf.nn.ctc_loss(labels, inputs, [seq_len])
print(tf.InteractiveSession().run(loss))
Run Code Online (Sandbox Code Playgroud)
tf.nn.ctc_loss 行为符合预期,并打印正确答案:1.09861231
如何计算所有空白的序列的 ctc 损失?tf.nn.ctc_loss API 要求 values < num_labels,所以我们没有办法实现吗?如果我确实将上面示例中的值更改为 num_classes - 1(保留的空白 ID),则 tf.nn.ctc_loss 没有任何抱怨,并返回错误答案:0.81093025!正确答案是 2*log(3)。重现问题一的代码如下:
import tensorflow as tf
num_classes, batch_size, seq_len = 3, 1, 2
labels = tf.SparseTensor(indices=[[0,0]], values=[2], …Run Code Online (Sandbox Code Playgroud) 我想将序列化的 protobuf 消息的 PCollection 写入文本文件并读回应该很容易。但经过几次尝试后我未能成功。如果有人有任何意见,将不胜感激。
// definition of proto.
syntax = "proto3";
package test;
message PhoneNumber {
string number = 1;
string country = 2;
}
Run Code Online (Sandbox Code Playgroud)
我有下面的 python 代码,它实现了一个简单的 Beam 管道,用于将文本写入序列化的 protobuf。
# Test python code
import apache_beam as beam
from apache_beam.options.pipeline_options import PipelineOptions
import phone_pb2
class ToProtoFn(beam.DoFn):
def process(self, element):
phone = phone_pb2.PhoneNumber()
phone.number, phone.country = element.strip().split(',')
yield phone.SerializeToString()
with beam.Pipeline(options=PipelineOptions()) as p:
lines = (p
| beam.Create(["123-456-789,us", "345-567-789,ca"])
| beam.ParDo(ToProtoFn())
| beam.io.WriteToText('/Users/greeness/data/phone-pb'))
Run Code Online (Sandbox Code Playgroud)
管道可以成功运行并生成一个包含内容的文件:
$ cat ~/data/phone-pb-00000-of-00001
123-456-789us
345-567-789ca …Run Code Online (Sandbox Code Playgroud) 就我的理解而言,可以通过神经网络替换Q值(状态 - 动作 - 对 - 评估)的查找表来估计这些状态 - 动作对.我编写了一个小型库,它能够通过一个自建的神经网络进行传播和反向传播,以便为某个输出内容学习所需的目标值.
所以我在google搜索时也发现了这个网站,并在网上搜索(就像我觉得的那样):http://www.cs.indiana.edu/~gasser/Salsa/nn.html Q-learning结合的地方很快解释了一个神经网络.
对于每个动作,都有一个额外的输出神经元,这些输出 - "单位"之一的激活值告诉我,估计的Q值.(一个问题:激活值是否与神经元的"输出"相同或不同?)
我使用标准sigmoid函数作为激活函数,因此函数值x的范围是
0<x<1
Run Code Online (Sandbox Code Playgroud)
所以我想,我的目标值应该始终从0.0到1.0 - >问题:我的理解是否正确?或者我错过了解一些事情?
如果是,则存在以下问题:计算目标奖励/新Q值的等式是:q(s,a)= q(s,a)+学习率*(奖励+折扣因子*q'(s,a ) - q(s,a))
那么如果目标应该从0.0到1.0,我如何执行这个等式来获得神经网络的正确目标?我如何计算良好的奖励价值?走向目标更值得,而不是远离它?(接近目标时更多+奖励而不是更远距离目标的奖励?)
我想我的一些误解.我希望,你可以帮助我回答这些问题.非常感谢你!
artificial-intelligence reinforcement-learning neural-network
我试图用这个xor函数训练简单的反向传播神经网络.当我使用tanh(x)激活函数时,使用导数1-tanh(x)^2,我在大约1000次迭代后得到正确的结果.但是,当我g(x) = 1/(1+e^(-x))用作激活函数时,使用导数g(x)*(1-g(x)),我需要大约50000次迭代才能得到正确的结果.可能是什么原因?
谢谢.
我有一个拒绝使用索引的表,它总是使用filesort.
该表是:
CREATE TABLE `article` ( `ID` int(11) NOT NULL AUTO_INCREMENT, `Category_ID` int(11) DEFAULT NULL, `Subcategory` int(11) DEFAULT NULL, `CTimestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `Publish` tinyint(4) DEFAULT NULL, `Administrator_ID` int(11) DEFAULT NULL, `Position` tinyint(4) DEFAULT '0', PRIMARY KEY (`ID`), KEY `Subcategory` (`Subcategory`,`Position`,`CTimestamp`,`Publish`), KEY `Category_ID` (`Category_ID`,`CTimestamp`,`Publish`), KEY `Position` (`Position`,`Category_ID`,`Publish`), KEY `CTimestamp` (`CTimestamp`), CONSTRAINT `article_ibfk_1` FOREIGN KEY (`Category_ID`) REFERENCES `category` (`ID`) ) ENGINE=InnoDB AUTO_INCREMENT=94290 DEFAULT CHARSET=utf8
查询是:
SELECT * FROM article ORDER BY `CTimestamp`;
解释是:
+----+-------------+---------+------+---------------+------+---------+------+-------+----------------+ | id | select_type | …
我可以在一个BigQuery项目中创建多少个数据集?我没有在文件中提到的任何地方找到这个限制.
我问这个是因为我想每天创建一个数据集.在每日数据集下,将使用每日数据创建相同数量的表.例如,
dataset_20121101
- table1
- table2
dataset_20121102
- table1
- table2
...
dataset_201XXXXX
- table1
- table2
Run Code Online (Sandbox Code Playgroud)
此外,如果我想对一系列数据集进行查询,我是否可以做一些比从每个数据集中明确选择更好的方法?例如,
select date, sum(price) from
dateset_20121101.table1,
dateset_20121102.table1,
dateset_20121103.table1,
dateset_20121104.table1
group by date order by date
Run Code Online (Sandbox Code Playgroud)
我猜不是,但试着确认一下.
谢谢.
我需要添加StyleClass到生成的表单标记xPages.
我不知道是否可以在新主题中更改此控件但我只需要xPage在我的应用程序中使用一个,这是生成的代码:
<form id="view:_id1" method="post" action="/blabla.nsf/index.xsp"
class="xspForm" enctype="multipart/form-data">
Run Code Online (Sandbox Code Playgroud)
我需要这个修改类,例如:
<form id="view:_id1" method="post" action="/blabla.nsf/index.xsp"
class="newclass otherclass" enctype="multipart/form-data">
Run Code Online (Sandbox Code Playgroud) 我在CouchDB中的文档结构如下所示:
{
"_id": "0a68cdbe4a7f3abf4046bc",
"_rev": "1-1508",
"score": {"math":90, "physics": 88, "chemistry": 60},
"student_name": "Mike"
}
Run Code Online (Sandbox Code Playgroud)
我需要在前端显示以下统计信息以设置学生的个人资料:
假设我只有2名学生,第二名学生的记录如下:
{
"_id": "0a68cdbe2344a3abf4046bc",
"_rev": "1-1608",
"score": {"math":80, "physics": 98, "chemistry": 90},
"student_name": "Jane"
}
Run Code Online (Sandbox Code Playgroud)
所以迈克的排名应该是:
math: 1
physics: 2
chemistry: 2
total: 2
Run Code Online (Sandbox Code Playgroud)
和Jane的排名应该是
math: 2
physics: 1
chemistry: 1
total: 1
Run Code Online (Sandbox Code Playgroud)
如果我没有明确说明问题,请告诉我.
我没有想出创建视图以获得排名的方法.我尝试过的:
编辑:用户名查询和排名检索的功能不需要仅由视图实现.欢迎任何想法!
Edit2:课程数量为1K到3K.学生人数将在1M到2M之间.