小编dou*_*eep的帖子

为什么在 Pytorch 中,当我复制网络权重时,它会在反向传播后自动更新?

我编写了以下代码作为测试,因为在我的原始网络中,我使用 ModuleDict 并取决于我提供的索引将仅切片和训练该网络的一部分。

我想确保只有切片层会更新它们的权重,所以我写了一些测试代码来仔细检查。好吧,我得到了一些奇怪的结果。假设我的模型有 2 层,layer1 是 FC,而 layer 2 是 Conv2d,如果我对网络进行切片并且只使用 layer2,我希望 layer1 的权重保持不变,因为它们未使用,并且 layer2 的权重将在 1 个时期后更新。

所以我的计划是使用for循环从网络中获取所有权重在训练之前然后我会在 1 之后做optimizer.step()。两次我都将这些权重完全分开存储在 2 个 Python 列表中,以便稍后比较它们的结果。好吧,出于某种原因,如果我将它们与torch.equal()我认为的进行比较,这两个列表是完全相同的,因为也许内存中仍然存在某种隐藏的链接?因此.detach(),当我从循环中抓取它们时,我尝试使用它们,结果仍然相同。在这种情况下,Layer2 的权重应该不同,因为它应该包含训练前来自网络的权重。

在下面的代码中指出,我实际上使用的是 layer1 而忽略了 layer2。

完整代码:

class mymodel(nn.Module):
    def __init__(self):
        super().__init__() 
        self.layer1 = nn.Linear(10, 5)
        self.layer2 = nn.Conv2d(1, 5, 4, 2, 1)
        self.act = nn.Sigmoid()
    def forward(self, x):
        x = self.layer1(x) #only layer1 and act are used layer 2 is ignored so only layer1 and act's …
Run Code Online (Sandbox Code Playgroud)

python machine-learning backpropagation pytorch

2
推荐指数
1
解决办法
6126
查看次数

来自数据帧的加权图

我有一个边缘列表,我想将其转换为加权图。我用下面的代码:

edgelist <- read.table(text = "
V1 v2 weights
A B 1
B C 8
C D 6
D E 9
C F 12
F G 15",header=T)


g<-graph_from_data_frame(edgelist)
g
Run Code Online (Sandbox Code Playgroud)

它将权重作为边缘的属性。但是,当我想检查它是否加权时:

is_weighted(g)
Run Code Online (Sandbox Code Playgroud)

它返回了我FALSE。如何将其更改为TRUE

r igraph weighted-graph

2
推荐指数
1
解决办法
1203
查看次数

如何回到之前的路线?

首先,我不会像这样在 MaterialApp 中设置路线

new MaterialApp(
  home: new Screen1(),
  routes: <String, WidgetBuilder> {
    '/screen1': (BuildContext context) => new Screen1(),
    '/screen2' : (BuildContext context) => new Screen2(),
    '/screen3' : (BuildContext context) => new Screen3(),
    '/screen4' : (BuildContext context) => new Screen4()
  },
)
Run Code Online (Sandbox Code Playgroud)

相反,我通过像这样推送新路由来从我的应用程序中的不同位置路由:

Navigator.push(
                context,
                MaterialPageRoute(
                    builder: (BuildContext context) =>
                        Screen3(someInputData)));
Run Code Online (Sandbox Code Playgroud)

例如,如何将屏幕从当前屏幕弹出到屏幕编号 2?

routes dart flutter

2
推荐指数
1
解决办法
5989
查看次数

异步方法的返回类型

令人惊讶的是,Typescript 可以给出函数或类方法的返回类型,ReturnType<>如下所示:

class Foo{
    bar(){ return {one:1, two:2};}
}

type  typeBar = ReturnType<Foo['bar']>;
Run Code Online (Sandbox Code Playgroud)

但是,如果该方法是异步的,是否可以获得已解决的 Promise 的类型?

class Foo{
    async asyncBar() { return new Promise((resolve) => resolve({ one: 1, two: 2 }));}
}
type  typeBar = ReturnType<Foo['asyncBar']>; // the type here is Promise
Run Code Online (Sandbox Code Playgroud)

那么要从什么运营商那里得到{one:number, two:number}Foo['asyncBar']

asynchronous return-type typescript

2
推荐指数
1
解决办法
1725
查看次数

pytorch动态计算图中的权重更新是如何工作的?

当权重分片(=多次重复使用)时,动态计算图的 Pytorch 代码中的权重更新如何工作

https://pytorch.org/tutorials/beginner/examples_nn/dynamic_net.html#sphx-glr-beginner-examples-nn-dynamic-net-py

import random
import torch

class DynamicNet(torch.nn.Module):
    def __init__(self, D_in, H, D_out):
    """
    In the constructor we construct three nn.Linear instances that we will use
    in the forward pass.
    """
    super(DynamicNet, self).__init__()
    self.input_linear = torch.nn.Linear(D_in, H)
    self.middle_linear = torch.nn.Linear(H, H)
    self.output_linear = torch.nn.Linear(H, D_out)

def forward(self, x):
    """
    For the forward pass of the model, we randomly choose either 0, 1, 2, or 3
    and reuse the middle_linear Module that many times to compute hidden layer
    representations. …
Run Code Online (Sandbox Code Playgroud)

deep-learning pytorch computation-graph

2
推荐指数
1
解决办法
628
查看次数

有没有办法连续运行服务?

Stack Overflow 上几乎没有类似的问题,但没有一个解决方案对我有用

问题在于只有 OnePlus 和 MI 等少数设备,一旦用户从最近的应用程序中滑动应用程序,该服务就会被终止。

我读到这些 OEM 使用一些激进的策略来终止服务。我只想知道有什么方法可以让服务保持运行或在它被杀死后立即启动它。

我需要运行一项服务,该服务将在后台连续(24/7)提供位置(此应用程序仅适用于特定人群,因此无需担心电池寿命)。

我试过了:

  1. 运行前台服务。

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            startForegroundService(intent)
        } else {
                startService(intent)
        }
    
    Run Code Online (Sandbox Code Playgroud)

    同样在onCreate以通知开始的服务方法中

    @Override
    public void onCreate() {
        Log.i("Service", "onCreate");
        startForeground(NOTIFICATION_ID, getnotification());
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 返回START_STICKYonStartCommand

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
    
        initLocationClient();
        initLocationSyncThread();
    
        return START_STICKY;
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. 重新启动服务onDestroyonTaskRemoved但他们没有被调用。

  4. 绑定服务

  5. 经常安排警报管理器并启动服务,但 Play 商店会警告我们的应用程序使用警报管理器过于频繁,这是一种不好的做法。现在有办法使用 workmanager 安排少于 15 分钟的时间,但仍然不能保证在 15 分钟后开始。

那么除了上述选项之外,还有什么方法可以继续运行服务吗?

android background-process android-service periodic-task

2
推荐指数
1
解决办法
6994
查看次数

从批处理文件中检索变量的输出/状态到 jenkins 管道

我正在尝试通过将 env 变量最初设置为 true 来将 bat 中可用变量的输出/状态检索到 jenkins 管道。

我的期望是,根据在 bat 内部分配的变量的值(即status=false),下一阶段无法执行,因为在该阶段给出了表达式:

pipeline {
    agent any
    environment{
        STATUS='TRUE'
    }
    stages {
        stage('test1') {

            steps {
                bat '''set status=FALSE 
echo %status%'''   
                echo "$status" 
            }

        }
       stage('test2') {
            when{
               environment name: 'STATUS', value: 'TRUE' 
                }
            steps {
                input message: 'Push', ok: 'GO!!'
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我目前得到的输出是o/p: false用于 bat 执行的,下一步将输出提供为 true。

batch-file jenkins-pipeline

2
推荐指数
1
解决办法
5115
查看次数

如何将 Base64 图像字符串从 Flask Python 代码传递到 HTML?

我有一个 Flask 服务器,我想在 HTML 页面中渲染一个 base64 图像。

烧瓶代码:

new_image_string = base64.b64encode(buff.getvalue()).decode("utf-8")
return render_template('perspective_result.html', img_data=new_image_string)
Run Code Online (Sandbox Code Playgroud)

HTML 代码:

<img src="data:image/jpeg;base64,+img_data" alt="img_data"  id="imgslot"/>
Run Code Online (Sandbox Code Playgroud)

我从浏览器控制台收到以下错误:

GET data:image/jpeg;base64,+img_data 0 ()
Run Code Online (Sandbox Code Playgroud)

我哪里做错了?

html python base64 flask

2
推荐指数
1
解决办法
8266
查看次数

如何在 React Native 中以表格格式显示数据?

我需要在我的应用程序中以表格格式显示数据。我想要这样的东西”

如何在表中的第一个标题旁边添加下拉图标并设计类似于上图的代码?

javascript react-native

2
推荐指数
1
解决办法
7558
查看次数

在if语句中使用多个条件

如何在if语句中使用多个条件?

function testNum(a) {
  if (a == (1 || 2 || 3)) {
    return "is 1, 2, or 3";
  } else {
    return "is not 1, 2, or 3";
  }
}

console.log(testNum(1)); // returns "is 1, 2, or 3"
console.log(testNum(2)); // returns "is not 1, 2, or 3"
console.log(testNum(3)); // returns "is not 1, 2, or 3"
Run Code Online (Sandbox Code Playgroud)

testNum(2)并且testNum(3)应该return: "is 1, 2 or 3"但不是。

javascript

2
推荐指数
2
解决办法
90
查看次数