小编Com*_*mpo的帖子

使用经过训练的对象检测 API 模型和 TF 2 进行批量预测

我在 TPU 上使用 TF 2 的对象检测 API 成功训练了一个模型,该模型保存为 .pb(SavedModel 格式)。然后我使用它重新加载它tf.saved_model.load,它在使用转换为 shape 的张量的单个图像预测框时工作正常(1, w, h, 3)

import tensorflow as tf
import numpy as np

# Load Object Detection APIs model
detect_fn = tf.saved_model.load('/path/to/saved_model/')

image = tf.io.read_file(image_path)
image_np = tf.image.decode_jpeg(image, channels=3).numpy()
input_tensor = np.expand_dims(image_np, 0)
detections = detect_fn(input_tensor) # This works fine
Run Code Online (Sandbox Code Playgroud)

问题是我需要进行批量预测以将其缩放到 50 万张图像,但该模型的输入签名似乎仅限于处理具有 shape 的数据(1, w, h, 3)。这也意味着我不能在 Tensorflow Serving 中使用批处理。我怎么解决这个问题?我可以只更改模型签名来处理批量数据吗?

所有工作(加载模型 + 预测)都在随对象检测 API 一起发布的官方容器内执行(来自此处

object detection prediction batch-processing tensorflow

7
推荐指数
1
解决办法
555
查看次数

如何提取批处理文件中$后面的文本?

我有一个批处理文件,其中包含以下内容:

50-A Description of the item $23
Run Code Online (Sandbox Code Playgroud)

我有一个脚本可以提取符号之前的所有内容$,但我需要提取$符号之后的所有内容。

这是脚本:

for /f "tokens=1 delims=/" %%a in (test.txt) do (echo %%a >> newfile.txt)
Run Code Online (Sandbox Code Playgroud)

我该如何改变它?

batch-file

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

使用批处理文件读取键值对

我正在尝试读取config.properties包含 50 多个键、值对并使用其中一个调用.bat文件中的所有键的文件。

我已经有一个可以读取属性的工作代码,但它会打印key=value. 我只想返回键值,例如john不是键名。

1.主.bat

set READER_FILE="C:\\read.bat"

@ECHO OFF    

: INVOKING CONFIG PROPERTIES
  call read.bat > %LOGGER% 2>&1
: call %READER_FILE%   

: call DownloadContent.bat > %LOGGER% 2>&1

 echo %name%
 echo %city%
Run Code Online (Sandbox Code Playgroud)

2.读取.bat

@echo off    

for /F "eol=# delims== tokens=1,*" %%a in (config.properties) do (

    if NOT "%%a"=="" if NOT "%%b"=="" set config.%%a=%%b
)

set config.

for /F "tokens=1 delims==" %%v in ('set config. 2^>null') do (
    set %%v=
)
Run Code Online (Sandbox Code Playgroud)

3. config.properties …

windows batch-file

5
推荐指数
1
解决办法
2224
查看次数

如何将字符串值添加到 Windows 注册表?

我想通过 cmd/批处理文件添加这个新的注册表项,以便始终以管理员身份运行 CMD。我知道我可以通过导航到命令中提到的路径来添加它。但我想将其添加到我的批处理文件之一中。我认为要添加字符串值我需要修改我的命令。我在这里遗漏了一些东西:-

reg.exe ADD \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers /t REG_SZ "C:\\WINDOWS\\system32\\cmd.exe"="RUNASADMIN" /f
Run Code Online (Sandbox Code Playgroud)

有人可以帮我解决这个问题吗?

batch-file

5
推荐指数
1
解决办法
1万
查看次数

使用批处理文件附加到系统路径变量值

我想创建一个批处理文件以将当前目录添加到我的系统变量PATH不是我的用户变量)

当我使用时:

SETX /M PATH "%CD%;%PATH%"
Run Code Online (Sandbox Code Playgroud)

它做了所需的事情。但是,我收到一条错误消息:

保存的数据被截断为 1024 个字符。

当我使用 GUI 检查系统变量时,我看到用户路径已添加到系统路径中。因此,系统路径有重复的条目。

我尝试将%PATH%变量分配给临时变量并进行回显,但我也看到了重复的情况。

我在一些堆栈答案中看到,%PATH%我们在批处理文件中使用的变量实际上是用户路径和系统路径的串联。

在命令提示符下,我尝试了:

REG QUERY "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PATH"
Run Code Online (Sandbox Code Playgroud)

但我不太清楚我们是否可以使用它来获取该 PATH 值并分配给另一个变量。

  1. 所以我需要找到一种方法仅将系统路径分配给临时变量,比如说 SYS_PATHS。我怎样才能做到这一点?
  2. 有没有更好的方法来克服这种情况?

windows path batch-file environment-variables

5
推荐指数
1
解决办法
2555
查看次数

AWS Sagemaker 使用镶木地板文件进行批量转换作业?

我正在尝试使用镶木地板数据文件运行批量转换推理作业,但找不到任何内容。到处都说批量转换仅接受文本/csv 或 json 格式类型。出于测试目的,我确实尝试在 AWS 帐户内使用 lambda 函数来调用 parque 数据,但批量转换作业从未成功。出现 ClientError: 400,解析数据时出错。

request = \
        {
            "TransformJobName": batch_job_name,
            "ModelName": model_name,
            "BatchStrategy": "MultiRecord",
            "TransformOutput": {
                "S3OutputPath": batch_output
            },
            "TransformInput": {
                "DataSource": {
                    "S3DataSource": {
                        "S3DataType": "S3Prefix",
                        "S3Uri": batch_input

                    }
                },
                "ContentType": "application/x-parquet", 
                "SplitType": "Line",
                "CompressionType": "None"
            },
            "TransformResources": {
                "InstanceType": "ml.m4.xlarge",
                "InstanceCount": 1
            }
        }
    client.create_transform_job(**request)
    return "Done"
Run Code Online (Sandbox Code Playgroud)

目前,我正在尝试使用 parque 数据文件在本地运行 sagemaker 批量转换作业。我有可以在本地终端中运行以“服务”的 docker 映像,并且可以使用 REST API 服务 Postman 从“localhost:8080/incalls”使用“二进制”输入函数上传 parque 数据文件来调用数据。它工作正常,我可以看到邮递员体内填充的数据。但是,我无法使用 parque 数据进行批量转换。

有没有人成功使用 parquet 文件使用 sagemaker 批量转换进行转换和预测?

transform batch-processing amazon-web-services parquet amazon-sagemaker

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

如何在 VS Code 中将切换注释从 @REM 更改为 REM

Ctrl在 VS 代码中,当我使用+切换注释时/,它会用 注释该行@REM。我如何更改它以仅用 注释该行REM

batch-file visual-studio-code

5
推荐指数
1
解决办法
2054
查看次数

如何使用 cmd 将引用的环境变量写入文件?

我不知道如何"%PROGRAMFILES%"使用 Windows 命令提示符逐字写入文件。

我试过的:

C:\Users\lxvs> echo "%PROGRAMFILES%" > test
C:\Users\lxvs> type test
"C:\Program Files"

C:\Users\lxvs> echo ^%PROGRAMFILES^% > test
C:\Users\lxvs> type test
%PROGRAMFILES%

C:\Users\lxvs> echo "^%PROGRAMFILES^%" > test
C:\Users\lxvs> type test
"^%PROGRAMFILES^%"

C:\Users\lxvs> echo "%%PROGRAMFILES%%" > test
C:\Users\lxvs> type test
"%C:\Program Files%"
Run Code Online (Sandbox Code Playgroud)

有没有办法接近它?

cmd

5
推荐指数
1
解决办法
51
查看次数

为什么 py 和 python 给出不同的结果?

使用 py 和在命令提示符中给我不同的结果。对于我的特定程序,当我运行时python file.py,程序按预期工作。但是,当我运行时py file.py,它给了我这个错误:

  File "wordcount.py", line 60
print(f"{wordlist[num]} {wordcount[num]}")
                                        ^
Run Code Online (Sandbox Code Playgroud)

SyntaxError: invalid syntax

谁能告诉我为什么有效而不是py?

编辑:我应该澄清一下,我已经检查过系统。输入 py 给了我 Python 3.8.3,这意味着 2.x 的解释与我的情况不符。import sys 进入 print(sys.version) 给了我相同的结果。

python syntax-error python-3.x

4
推荐指数
1
解决办法
110
查看次数

Windows 托管运行器上 Github Actions 的输出

我想在 Windows 自托管运行器上访问之前作业的步骤结果。为了做到这一点,我使用如下输出变量,效果很好(在最后一步中打印“成功”)。

name: Debug workflow

on: workflow_dispatch
jobs:
  job1:
    runs-on: tester-1
    outputs:
      output1: ${{ steps.step1.outputs.MY_OUTPUT }}
    steps:
      - name: Checkout with submodules
        id: checkout_step
        uses: actions/checkout@v3
      - name: Write variable to output
        id: step1
        run: echo '::set-output name=MY_OUTPUT::${{ steps.checkout_step.outcome }}'
  job2:
    runs-on: tester-1
    needs: job1
    env:
      OUTPUT1: '${{needs.job1.outputs.output1}}'
    steps:
    - name: Print outputs from previous 
      run: echo ${{ env.OUTPUT1 }}
Run Code Online (Sandbox Code Playgroud)

然而::set-output 已被弃用,所以我想转换为正确的方法。根据另一个问题,我已经尝试将我的替换echo '::set-output name=MY_OUTPUT::${{ steps.checkout_step.outcome }}'

  1. echo "MY_OUTPUT=${{ steps.checkout_step.outcome }}" >> $env:GITHUB_ENV
  2. echo …

powershell github github-actions

3
推荐指数
1
解决办法
1590
查看次数