相关疑难解决方法(0)

无法使用pickle和多个模块加载文件

我正在尝试创建一个使用设置和Gui模块的用户系统,当gui模块请求使用pickle加载文件时,我不断收到属性错误.这是来自设置模块:

import pickle
import hashlib

class User(object):
    def __init__(self, fname, lname, dob, gender):
        self.firstname = fname
        self.lastname = lname
        self._dob = dob
        self.gender = gender
        self.type = 'General'
        self._username = ''
        self._hashkey = ''

    def Report(self):
        print("Full Name: {0} {1}\nDate of Birth: {2}\nGender: {3}\nAccess Level: {4}".format(self.firstname,self.lastname, self._dob, self.gender, self.type))
        print(self._username)

    def Genusername(self):
        self._username = str(str(self._dob)[:2] + self.firstname[:2] + self.lastname[:2])
        saveUsers(users)

    def Genhashkey(self, password):
        encoded = password.encode('utf-8','strict')
        return hashlib.sha256(encoded).hexdigest()

    def Verifypassword(self, password):
        if self._hashkey == self.Genhashkey(password):
            return True
        else:
            return False …
Run Code Online (Sandbox Code Playgroud)

python multithreading login pickle pyqt4

34
推荐指数
3
解决办法
3万
查看次数

python pickle上的命名空间

当我使用pickle和unittest时出错了.

我写了3个程序文件:

  1. 对于要被腌制的课程,
  2. 对于在#1中使用类的类,
  3. 用于测试#2级的单元测试.

实际代码分别如下.

#1.ClassToPickle.py

import pickle
class ClassToPickle(object):
    def __init__(self, x):
        self.x = x
if __name__=="__main__":
    p = ClassToPickle(10)
    pickle.dump(p, open('10.pickle', 'w'))
Run Code Online (Sandbox Code Playgroud)

#2.SomeClass.py

from ClassToPickle import ClassToPickle
import pickle

class SomeClass(object):
    def __init__(self):
        self.pickle = pickle.load(open("10.pickle", 'r'))
        self.x = self.pickle.x
        print self.x

if __name__ == "__main__":
    SomeClass()
Run Code Online (Sandbox Code Playgroud)

#3.SomeClassTest.py

import unittest
from SomeClass import SomeClass
from ClassToPickle import ClassToPickle # REQUIRED_LINE

class SomeClassTest(unittest.TestCase):
    def testA(self):
        sc = SomeClass()
        self.assertEqual(sc.x, 10)

def main():
    unittest.main()

if __name__ == "__main__":
    main() …
Run Code Online (Sandbox Code Playgroud)

python namespaces pickle

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

解压保存的 pytorch 模型会引发 AttributeError:尽管添加了内联类定义,但无法在 <module '__main__' 上获取属性 'Net'

我正在尝试在烧瓶应用程序中提供 pytorch 模型。当我早些时候在 jupyter 笔记本上运行此代码时,此代码正在运行,但现在我在虚拟环境中运行它,显然即使类定义就在那里,它也无法获得属性“Net”。所有其他类似的问题都告诉我在同一个脚本中添加保存模型的类定义。但它仍然不起作用。火炬版本是 1.0.1(保存的模型和 virtualenv 都在其中进行了训练)我做错了什么?这是我的代码。

import os
import numpy as np
from flask import Flask, request, jsonify 
import requests

import torch
from torch import nn
from torch.nn import functional as F


MODEL_URL = 'https://storage.googleapis.com/judy-pytorch-model/classifier.pt'


r = requests.get(MODEL_URL)
file = open("model.pth", "wb")
file.write(r.content)
file.close()

class Net(nn.Module):

    def __init__(self):
        super(Net, self).__init__()
        self.fc1 = nn.Linear(input_size, hidden_size)
        self.fc2 = nn.Linear(hidden_size, hidden_size)
        self.fc3 = nn.Linear(hidden_size, output_size)

    def forward(self, x):
        x = torch.sigmoid(self.fc1(x))
        x = torch.sigmoid(self.fc2(x))
        x = self.fc3(x)

        return F.log_softmax(x, dim=-1)

model …
Run Code Online (Sandbox Code Playgroud)

python pickle pytorch

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

标签 统计

pickle ×3

python ×3

login ×1

multithreading ×1

namespaces ×1

pyqt4 ×1

pytorch ×1