小编Nit*_*hah的帖子

将可变大小的 numpy 数组转换为 Tensorflow 张量

我正在尝试 Tensorflow 2.0 alpha 预览版并正在测试 Eager execution 。我的疑问是,如果您在中间有一个可变大小的 numpy 数组,例如

input.shape
(10,)

input[0].shape
(109, 16)

input[1].shape
(266, 16)
Run Code Online (Sandbox Code Playgroud)

等等数组的其余部分,如何急切地将它们转换为张量。

当我尝试

tf.convert_to_tensor(input)
Run Code Online (Sandbox Code Playgroud)

或者

tf.Variable(input)
Run Code Online (Sandbox Code Playgroud)

我得到

ValueError:无法将 numpy ndarray 转换为张量(无法以字节形式获取元素。)。

转换每个子数组有效,但由于子数组大小不同,tf.stack 不起作用。

任何帮助或建议?

python numpy tensorflow tensorflow2.0

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

将 numpy einsum 运算编写为特征张量

我想将以下 numpy einsum 编写为特征张量操作

import numpy as np

L = np.random.rand(2, 2, 136)
U = np.random.rand(2, 2, 136)

result = np.einsum('ijl,jkl->ikl', U, L)
Run Code Online (Sandbox Code Playgroud)

我可以像 C++ 中那样用 for 循环编写它

  for (int i = 0; i < 2; i++) {
    for (int j = 0; j < 2; j++) {
      for (int k = 0; k < 2; k++) {
        for (int l = 0; l < 136; l++) {
          result(i, k, l) += U(i, j, l) * L(j, k, l);
        } …
Run Code Online (Sandbox Code Playgroud)

c++ matrix-multiplication eigen numpy-einsum tensor

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

准确度停留在50%的Keras

import numpy as np
from keras.preprocessing.image import ImageDataGenerator
from keras.models import Sequential,Model
from keras.layers import Dropout, Flatten, Dense,Input
from keras import applications
from keras.preprocessing import image
from keras import backend as K
K.set_image_dim_ordering('tf')


# dimensions of our images.
img_width, img_height = 150,150

top_model_weights_path = 'bottleneck_fc_model.h5'
train_data_dir = 'Cats and Dogs Dataset/train'
validation_data_dir = 'Cats and Dogs Dataset/validation'
nb_train_samples = 20000
nb_validation_samples = 5000
epochs = 50
batch_size = 16
input_tensor = Input(shape=(150,150,3))

base_model=applications.VGG16(include_top=False, weights='imagenet',input_tensor=input_tensor)
for layer in base_model.layers:
    layer.trainable …
Run Code Online (Sandbox Code Playgroud)

python machine-learning conv-neural-network keras pre-trained-model

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

MPI数组总和只能接收一个等级

我试图使用MPI找到长度为100的元素数组的总和,在仅使用MPI_Send和MPI_receive的限制下,我写的代码找到了每个处理器的总和但在重新发送到主处理器期间( rank = 0)我的代码只从一个处理器接收

我的守则

#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include "mpi.h"
#include "math.h"

int val = 1;
int main(int argc, char* argv[]) {

    int my_rank;
    int p;
    int ierr;
    int i;
    int a[100];
    int q=0;
    for (i = 0; i <100; i++)
    {
        a[i] = i+1;
    }
    int send,recv;
    MPI_Status status;
    MPI_Init(&argc, &argv);
    MPI_Comm_rank(MPI_COMM_WORLD, &my_rank);
    MPI_Comm_size(MPI_COMM_WORLD, &p);
    int part = 100 /(p-1);
    if (my_rank == 0)
    {
        for (i = 1; i < p; i++)
        {
            send = …
Run Code Online (Sandbox Code Playgroud)

c distributed-computing mpi

0
推荐指数
1
解决办法
228
查看次数

CUDA 是否向块中的所有线程广播共享内存而不会发生存储体冲突?

在 CUDA 编程指南的共享内存部分中,它指出 warp 的共享内存访问不是序列化的,而是广播读取的。

然而,它没有说明如果整个块请求相同的内存地址会发生什么。warp 之间的访问是串行的还是 CUDA 可以广播到整个块。

我的案例的演示代码

// Assume 1024 sized int array
__global__ add_from_shared(int* i, int* j, int* out)
{
    __shared__ int shmem[1024];
    shmem[threadIdx.x] = i[threadIdx.x];
    ...
    Do some stuff
    ...
    // Is the shared memory call here serilized between warps or is it a broadcast over the entire block?
    j[threadIdx.x] += shmem[0];
}  
Run Code Online (Sandbox Code Playgroud)

谢谢

cuda gpu gpgpu nvidia gpu-shared-memory

0
推荐指数
1
解决办法
953
查看次数

创建一个std :: array的Dynamic std :: array

我的任务要求我创建一个数组数组来存储一些数据,其中行数是固定的,列是在运行时决定的.

如果我使用的是一个简单的int数组,那么这将是一个简单的任务,但因为我必须使用std :: array,所以我迷路了.

到目前为止我的尝试

#include<iostream>
#include<array>
using std::array;
int main(){
  array<array<int,1>*,3> x;
  for(size_t i=0;i<3;i++)
      {
        x[i][0]=array<int,3>;
      }
}
Run Code Online (Sandbox Code Playgroud)

这导致了错误

array1.cpp:12:29:错误:预期'('为函数式转换或类型构造x [i] [0] =数组; ~~~~~~~~~~~~ ^ 1生成错误.

当使用clang ++时

我已经读过std :: array等同于普通数组,我知道我可以使用向量但是因为我知道从一开始我有多少行,我觉得使用向量是浪费,而我会喜欢与传统数组相比,std :: array的附加功能.我该如何实现呢.

c++ arrays

-1
推荐指数
1
解决办法
109
查看次数