小编Cli*_*nna的帖子

tf.zeros()的动态大小(用于无维度的占位符)

请考虑以下代码:

x = tf.placeholder("float", shape=[42, 4])
y = tf.zeros([42, 4], "float")
xy_stacked = tf.concat(1, [x, y])

print(x.get_shape())
print(y.get_shape())
print(xy_stacked.get_shape())
Run Code Online (Sandbox Code Playgroud)

这将产生以下输出,如预期的那样:

TensorShape([Dimension(42), Dimension(4)])
TensorShape([Dimension(42), Dimension(4)])
TensorShape([Dimension(42), Dimension(8)])
Run Code Online (Sandbox Code Playgroud)

但是,如果占位符具有动态维度,该维度在运行时由传递给的值确定feed_dict=,如占位符通常那样:

x = tf.placeholder("float", shape=[None, 4])
y = tf.zeros([None, 4], "float")
xy_stacked = tf.concat(1, [x, y])
Run Code Online (Sandbox Code Playgroud)

这会产生错误tf.zeros([None, 4], "float").显然Dimension(None)不允许tf.zeros:

TypeError                                 Traceback (most recent call last)
<ipython-input-24-277eca38a392> in <module>()
      2 
      3 x = tf.placeholder("float", shape=[None, 4])
----> 4 y = tf.zeros([None, 4], "float")
      5 xy_stacked = tf.concat(1, …
Run Code Online (Sandbox Code Playgroud)

tensorflow

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

ABI注册RISC-V呼叫大会的名称

我对RISC-V ABI寄存器名称感到困惑.例如,"RISC-V指令集手册,第I卷:用户级ISA,版本2.0"(第85页)中的表18.2指定堆栈指针sp是寄存器x14.但是,指令

addi sp,zero,0
Run Code Online (Sandbox Code Playgroud)

由riscv64-unknown-elf-as编译为0x00000113(-m32没有区别).二进制:

000000000000 00000 000 00010 0010011
^imm         ^rs1  ^f3 ^rd   ^opcode
Run Code Online (Sandbox Code Playgroud)

所以这里sp似乎是x2.然后我google了一下,找到了RISC-V Linux用户手册.该文件表明了这sp一点x30.

那是什么?是否有不同的ABI?我可以使用命令行选项设置ABI riscv64-unknown-elf-*吗?某处有一张综合表吗?

riscv

12
推荐指数
1
解决办法
2801
查看次数

使用TensorFlow对图像中的点进行插值采样

给出灰度图像I作为2D张量(维度W,H)和坐标C的张量(Dim.None,2).我想解释的行Ç作为坐标,样品在使用某种类型的插值(双线性很可能是罚款,我的使用情况),并将得到的值存储在一个新的张量的坐标P(尺寸无的,即,具有与C一样多的条目的1维具有行).

这是否可以(有效)使用TensorFlow?我能找到的只是用于调整图像大小(等距重新采样,如果你喜欢)的函数.但我无法在坐标列表中找到任何开箱即用的样本.

即我希望找到类似tf.interpolate()函数的东西:

I = tf.placeholder("float", shape=[128, 128])
C = tf.placeholder("float", shape=[None, 2])
P = tf.interpolate(I, C, axis=[0, 1], method="linear")
Run Code Online (Sandbox Code Playgroud)

理想情况下,我会寻找一种解决方案,允许我使用带有形状的C(无,M)在M维上插入N维张量I,并产生N-M + 1维输出,如"轴"所示"上面代码中的参数.

(我的应用程序中的"图像"不是图片顺便说一下,它是来自物理模型的采样数据(当用作占位符时)或替代学习模型(当用作变量时).此时此物理模型具有2度自由,因此在"图像"中插值现在已足够,但我可能会在未来研究更高维度的模型.)

如果使用现有的TensorFlow功能无法做到这一点:当我想实现像这样的tf.interpolate()运算符时,我应该从哪里开始?(文档和/或简单示例代码)

python tensorflow

9
推荐指数
1
解决办法
5789
查看次数

我可以更改 clang 中参数评估的顺序吗?

Clang 从左到右评估其参数,gcc 从右到左评估其参数。(根据 C 和 C++ 语言规范,两者都可以,另请参阅g++ vs intel/clang 参数传递顺序?)有没有办法改变 clang 中参数求值的顺序?如果不通过编译指示或编译器开关,也许有人可以指出我在 clang 代码库中的正确位置?


一些背景信息:我有一个巨大的(第三方,没有很好记录的)代码库,我试图将其从 gcc 移植到 clang,但我看到了奇怪的问题。根据以前的经验,我认为至少部分问题在于论证顺序评估。能够在两种模式之间来回切换而不混合两个完全不同的编译器(因此可能会引入许多其他问题来源)对于解决问题非常有帮助。

clang

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

Linux 设备树 (DTS):USB-I2C 桥接器上的 i2c 设备

我有一个 i2c 设备(触摸控制器)。通常,当它连接到 SoC i2c 主机(在我的例子中是一个 tegra 芯片)时,我会像这样将它添加到 .dts 文件中:

    i2c@7000c000 {
            st1332: touchscreen@55 {
                    compatible = "sitronix,st1232";
                    reg = <0x55>;
                    interrupt-parent = <&gpio>;
                    interrupts = <189 IRQ_TYPE_EDGE_FALLING>;
            };       
    };
Run Code Online (Sandbox Code Playgroud)

i2c@7000c000在 SoC 的 .dtsi 文件中定义了 i2c 控制器:

    i2c1: i2c@7000c000 {
            #address-cells = <1>;
            #size-cells = <0>;
            compatible = "nvidia,tegra124-i2c";
            reg = <0x0 0x7000c000 0x0 0x100>;
            interrupts = <0 38 0x04>;
            scl-gpio = <&gpio 20 0>; /* gpio PC4 */
            sda-gpio = <&gpio 21 0>; /* gpio PC5 */
            nvidia,memory-clients …
Run Code Online (Sandbox Code Playgroud)

linux-kernel device-tree

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

RISC-V RV32I软浮点型lib在__muldf3中调用MUL和MULHU指令

我正在使用当前的riscv-toolsPicoRV32内核构建固件映像.固件需要浮点,所以我正在使用-msoft-float.这是我正在使用的编译器/链接器选项:

-Os -m32 -march=RV32I -msoft-float -ffreestanding -nostdlib -lgcc
Run Code Online (Sandbox Code Playgroud)

在此配置中,__ muldf3由(根据链接器-Map输出)提供:

/opt/riscv/lib/gcc/riscv64-unknown-elf/4.9.2/soft-float/32/libgcc.a(dp-bit.o)
Run Code Online (Sandbox Code Playgroud)

但是这段代码与RV32I ISA不兼容:它使用MULMULHU指令!

如何获得普通RV32I ISA的软浮动?我需要编译自己的libgcc.a版本吗?有没有关于如何做到这一点的说明?

riscv

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

从命令行使用Quartus

我正在尝试从命令行在Linux(Kubuntu 12.04 LTS)上使用Quartus II 13.0(免费Web软件包)从Verilog RTL生成Verilog技术网表。在一个项目中,我需要此项目,在该项目中,我将针对数千个生成的Verilog文件的不同工具生成的综合结果进行比较。因此,使用GUI并不是真正的选择。

例如,对于Xilinx Vivado,我可以使用以下TCL命令执行此操作:

read_verilog input.v
synth_design -part xc7k70t -top top_module
write_verilog output.v
Run Code Online (Sandbox Code Playgroud)

我使用过的大多数ASIC工具都提供类似的接口。

使用Xilinx XST,它会变得更加复杂:

1.)生成work.xst文件:

run -ifn work.prj ..some..more..options..
Run Code Online (Sandbox Code Playgroud)

2.)生成work.prj文件:

verilog work "input.v"
Run Code Online (Sandbox Code Playgroud)

3.)运行综合:

xst -ifn work.xst
Run Code Online (Sandbox Code Playgroud)

4.)从verilog二进制文件生成verilog网表:

netgen -w -ofmt verilog work.ngc output
Run Code Online (Sandbox Code Playgroud)

但是对于Quartus II,我根本找不到任何有关如何使用命令行工具的文档。我所能找到的只是图形化IDE界面的文档。也许我只是在错误的地方寻找?

因此,在我开始使用strace和类似工具戳Quartus II IDE之前:是否有人从命令行使用Quartus II,并且可以向我指出正确的方向?

verilog fpga intel-fpga

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

什么是好的“模板” Yosys综合脚本?

我想编写自己的Yosys综合脚本。首先有什么好的模板?手册和网页包含各种示例,但没有“权威”的问候示例。

yosys

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

修改 iCE40 比特流以加载新的块 RAM 内容

我当前的 iCE40 FPGA 项目包括一个 8 位(软 IP)微处理器,它连接到由 8 个 2Kx2 块 RAM 组成的 4Kx8 RAM。能够将新程序(用于 8 位微型)加载到 4kx8 RAM 中而无需 FPGA 重新编译或重新路由会很有用。建议的流程需要 a) 分析 FPGA 网表以找出 8 个 2Kx2 块 RAM(组成 4Kx8 RAM)的排列和命名方式。b) 将包含新程序(用于 8 位微)的 Intel hex 文件拆分为 8 个部分。c) 在比特流中找到 8 个 Block RAM 数据段中的每一个,并用新的节目内容替换每个段的当前内容。来自 icestorm 或 yosys 项目的任何人都可以评论这个提议的流程是否可行(或者如果解决方案已经存在)。

yosys

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

如何使用 IceStorm iCE40 FPGA 流程运行综合后仿真

良好的设计实践不仅可以通过常规的预综合(行为)仿真来验证 Verilog 设计,而且还可以使用综合后仿真。在调试仿真和硬件之间的不匹配时,这实际上是强制性的。如何使用 iCE40 FPGA 的开源 IceStorm 流程来实现这一目标?

yosys

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

iCE40 IceStorm FPGA Flow:双向IO引脚

使用iCE40 FOSS IceStorm FPGA流程:如何使用yosys / iceStorm为三态I / O引脚(如双向数据总线引脚)编写Verilog?

yosys

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