我试图了解torch.nn.LayerNorm
nlp 模型的工作原理。假设输入数据是一批词嵌入序列:
batch_size, seq_size, dim = 2, 3, 4
embedding = torch.randn(batch_size, seq_size, dim)
print("x: ", embedding)
layer_norm = torch.nn.LayerNorm(dim)
print("y: ", layer_norm(embedding))
# outputs:
"""
x: tensor([[[ 0.5909, 0.1326, 0.8100, 0.7631],
[ 0.5831, -1.7923, -0.1453, -0.6882],
[ 1.1280, 1.6121, -1.2383, 0.2150]],
[[-0.2128, -0.5246, -0.0511, 0.2798],
[ 0.8254, 1.2262, -0.0252, -1.9972],
[-0.6092, -0.4709, -0.8038, -1.2711]]])
y: tensor([[[ 0.0626, -1.6495, 0.8810, 0.7060],
[ 1.2621, -1.4789, 0.4216, -0.2048],
[ 0.6437, 1.0897, -1.5360, -0.1973]],
[[-0.2950, -1.3698, 0.2621, 1.4027],
[ 0.6585, 0.9811, …
Run Code Online (Sandbox Code Playgroud) 考虑这两个时间向量:
a<-seq(as.POSIXct("2010-01-01 05:00:00"), as.POSIXct("2010-01-02 23:55:00"), by = '5 min')
b<-seq(as.POSIXct("2010-01-01 00:00:00"), as.POSIXct("2010-01-03 23:55:00"), by = '10 min')
Run Code Online (Sandbox Code Playgroud)
如何获得这两个向量之间的不同元素?我试过了:
union(setdiff(a, b), setdiff(b, a))
Run Code Online (Sandbox Code Playgroud)
但返回的值不是时间格式.
我正在构建一个图像识别 Flask 项目。我想要在网页上显示图像。这是我的项目的结构:
如您所见,static
、templates
和upload
位于同一文件夹中。如果我将图像保存到static
文件夹(由 VS2015 Flask 项目生成)中并编写result.html
如下内容:
<!doctype html>
<h3>{{ outcome_info }}</h3>
<html lang="zh-cmn-Hans">
<head>
<meta charset="utf-8">
<title>Flood Classifier</title>
</head>
<body>
<img src="{{url_for('static', filename=thename)}}">
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
当调用这个Python函数时,图像将成功显示:
@app.route('/classify', methods=['POST','GET'])
def classify():
global image
image = np.expand_dims(image, axis = 0)
result = model.predict(image)
if result[0][0] == 1:
result = "flood"
else:
result = "no flood"
return render_template('result.html', thename = imagename, outcome_info = result)
Run Code Online (Sandbox Code Playgroud)
但是,如果我将图像文件保存到upload
(我自己创建的)中,然后更改文件夹名称,result.html
如下所示:
<!doctype html>
<h3>{{ …
Run Code Online (Sandbox Code Playgroud) 我正在远程Linux 环境中的 docker 中运行视频处理程序。我对以下代码有一些问题:
import os
import cv2
os.chdir("/home/test/wyq/object_detection/")
print(os.path.exists("test.mp4")) # see if the file exists
print(cv2.__version__) #check cv's version
cap = cv2.VideoCapture("test.mp4")
print(cap.read())
Run Code Online (Sandbox Code Playgroud)
结果是:
True
3.3.0
(False, None)
Run Code Online (Sandbox Code Playgroud)
这意味着 mp4 文件肯定存在并且版本openCV
没问题。但它就是无法读取它。Linux 环境ffmpeg
也有:
以下是有关操作系统和 python 的一些信息:
Ubuntu 16.04.3 LTS(GNU/Linux 4.4.0-127-通用 x86_64)
Python 3.5.2(默认,2017 年 11 月 23 日,16:37:01)
[GCC 5.4.0 20160609] 在 Linux 上
我想问题可能出在ffmpeg
?也许opencv未能使用现有的ffmpeg
?但我不知道如何测试和解决它。有人可以给我一些建议吗?感谢您的关注。
我编写了以下烧瓶服务器:
from flask import Flask, render_template, request
import os
app = Flask(__name__)
# home
@app.route('/')
def home():
return 'HOME PAGE'
@app.route('/add')
def add():
global a
a += 1
return str(a)
if __name__ == '__main__':
a = 0
HOST = '10.10.10.10'
PORT = 5555
app.run(HOST, PORT)
Run Code Online (Sandbox Code Playgroud)
考虑到我的服务器有两个用户(来自不同的IP地址):A和B。当用户A通过 url 请求时10.10.10.10:5555/add
,他得到结果1
。之后,如果用户 B 通过 url 请求,10.10.10.10:5555/add
他将得到2
. 因为两个用户共享同一个变量a
但是,我希望我的服务器单独处理 A 和 B,这意味着用户 A 和 Ba
以自己的方式拥有变量。A的请求不应该影响B得到的结果。例如,当用户 A 请求时,他得到1
。在用户 B 请求之后,他1
也应该得到。
我应该如何修改我的代码来实现这一目标?
我试图按data
顺序绘制千行(每行由 15 个值组成)(第一行是从元素 NO.1 到 NO.15;第二行是从元素 NO.16 到 NO.30;...) ggplot。这是一个可重现的代码:
data<-data.frame(y=rnorm(95040))
p<-ggplot(data=data.frame(y=data[1:15,]),aes(x=c(1:15),y=y))+geom_line(alpha=I(1/7),size=1)
for(i in 1:(nrow(data)/15-1)){
p<-p+geom_line(data=data.frame(y=data[(i*15+1):(i*15+15),]),aes(x=c(1:15),y=y),alpha=I(1/7),size=1)
}
Run Code Online (Sandbox Code Playgroud)
当循环运行在 时i=621
,它会报告错误:
Error: evaluation nested too deeply: infinite recursion / options(expressions=)?
Error during wrapup: evaluation nested too deeply: infinite recursion / options(expressions=)?
Run Code Online (Sandbox Code Playgroud)
为什么会发生这种情况以及如何解决这个绘图问题(也许使用另一种绘图方法)?