Не удается привести скаляр из dtype(‘

#python #pytorch

Вопрос:

Когда я запускал «StyleGAN2» в colab, я столкнулся с этим вопросом: Не удается привести скаляр из dtype(‘

Я долго искал, но до сих пор не знаю, как это решить. Я попробовал несколько способов. Но это не сработало.

Полный код(только часть StyleGan2):

 network = 'uC18CuB140uC758uC138uACC4' network_pkl = '/content/network/'   meta_data[network][0]   '.pkl'  print('Loading networks from "%s"...' % network_pkl) device = torch.device('cuda') with dnnlib.util.open_url(network_pkl) as f:  G = legacy.load_network_pkl(f)['G_ema'].to(device) # type: ignore  #@markdown **2) Seed** #@markdown Use -1 for random seed or type a specific seed (from 0 up to 2^32-1):  seeds = -1#@param {type: "number"} if seeds == -1:  seeds = np.random.randint(2**32 - 1, size=1) else:  seeds = [seeds] print('Seed : ', seeds)  #@markdown **3) Truncation** truncation_psi = 0 #@param {type:"slider", min:0, max:1, step:0.05}  #@markdown **4) noise** noise_mode = 'random' #@param ['const', 'random', 'none']  # Labels label = torch.zeros([1, G.c_dim], device=device) if G.c_dim != 0:  label[:, class_idx] = 1  #@markdown **Generate images** def generate_images(seeds_ = seeds,  latent_vector = None,  truncation_psi_ = truncation_psi,  noise_mode_ = noise_mode,  class_idx = label,  network = network_pkl):   imgs=[]  with dnnlib.util.open_url(network) as f:  G = legacy.load_network_pkl(f)['G_ema'].to(device) # type: ignore   if latent_vector == None :   for seed_idx, seed in enumerate(seeds_):  # print('Generating image for seed %d (%d/%d) ...' % (seed, seed_idx, len(seeds)))  z = torch.from_numpy(np.random.RandomState(seed).randn(1, G.z_dim)).to(device)  img = G(z, class_idx, truncation_psi=truncation_psi_, noise_mode=noise_mode_)  img = (img.permute(0, 2, 3, 1) * 127.5   128).clamp(0, 255).to(torch.uint8)   imgs.append(PIL.Image.fromarray(img[0].cpu().numpy(), 'RGB'))  else:  for i in range(len(latent_vector)):   img = G(latent_vector[i], class_idx, truncation_psi=truncation_psi_, noise_mode=noise_mode_)  img = (img.permute(0, 2, 3, 1) * 127.5   128).clamp(0, 255).to(torch.uint8)   imgs.append(PIL.Image.fromarray(img[0].cpu().numpy(), 'RGB'))   return imgs  image = generate_images('/content/input/liang.jpg') image[0].save('/content/results/generate_image.png') display(Image(filename='/content/results/generate_image.png'))  

Полная Ошибка:

 TypeError Traceback (most recent call last) _mt19937.pyx in numpy.random._mt19937.MT19937._legacy_seeding()  TypeError: 'str' object cannot be interpreted as an integer During handling of the above exception, another exception occurred: TypeError Traceback (most recent call last) lt;ipython-input-26-aa5c6201c6e0gt; in lt;modulegt;()  86 return imgs  87  ---gt; 88 image = generate_images('/content/input/liang.jpg')  89 image[0].save('/content/results/generate_image.png')  90 display(Image(filename='/content/results/generate_image.png'))  lt;ipython-input-26-aa5c6201c6e0gt; in generate_images(seeds_, latent_vector, truncation_psi_, noise_mode_, class_idx, network)  71 # print('Generating image for seed %d (%d/%d) ...' % (seed, seed_idx, len(seeds)))  72 # numpy.array(wavelength,dtype='float64') ---gt; 73 z = torch.from_numpy(np.random.RandomState(seed).randn(1, G.z_dim)).to(device)  74 img = G(z, class_idx, truncation_psi=truncation_psi_, noise_mode=noise_mode_)  75 img = (img.permute(0, 2, 3, 1) * 127.5   128).clamp(0, 255).to(torch.uint8)  mtrand.pyx in numpy.random.mtrand.RandomState.__init__() _mt19937.pyx in numpy.random._mt19937.MT19937._legacy_seeding() _mt19937.pyx in numpy.random._mt19937.MT19937._legacy_seeding() TypeError: Cannot cast scalar from dtype('lt;U1') to dtype('int64') according to the rule 'safe'  

Большое спасибо!!!Пожалуйста!!!!!

Комментарии:

1. Похоже seed , это строка, а не целое число. Проверьте, так ли это.

2. Спасибо! Я пытался сделать это, но до сих пор не могу решить эту проблему 🙁

3. Я предлагаю вам распечатать seed непосредственно перед звонком RandomState .