对于异常程序,如果没有获得所需的输出,如何在使用 Python 尝试最多 3 次后退出程序?
while True:
try:
x = int(input("Please enter a number: "))
break
#except Exception as e:
# print (e)
except ValueError:
print ("You have entered the non-numeric value. Enter the numerical value.")
except KeyboardInterrupt:
print ("\nYou have press Ctr+C.")
exit (1)
Run Code Online (Sandbox Code Playgroud) 我想编译我的 DQN 代理,但出现错误:
AttributeError: 'Adam' object has no attribute '_name',
DQN = buildAgent(model, actions)
DQN.compile(Adam(lr=1e-3), metrics=['mae'])
Run Code Online (Sandbox Code Playgroud)
我尝试添加假的_name,但它不起作用,我正在遵循教程并且它可以在导师的机器上运行,这可能是一些新的更新更改,但如何解决这个问题
这是我的完整代码:
from keras.layers import Dense, Flatten
import gym
from keras.optimizer_v1 import Adam
from rl.agents.dqn import DQNAgent
from rl.policy import BoltzmannQPolicy
from rl.memory import SequentialMemory
env = gym.make('CartPole-v0')
states = env.observation_space.shape[0]
actions = env.action_space.n
episodes = 10
def buildModel(statez, actiones):
model = Sequential()
model.add(Flatten(input_shape=(1, statez)))
model.add(Dense(24, activation='relu'))
model.add(Dense(24, activation='relu'))
model.add(Dense(actiones, activation='linear'))
return model
model = buildModel(states, actions)
def buildAgent(modell, actionz):
policy …Run Code Online (Sandbox Code Playgroud) 给定一批形状为 (batch, c, h, w) 的图像,我想将其重塑为 (-1, 深度, c, h, w),使得大小为 d 的第 i 个“块”包含帧 i -> i+d。基本上,使用 .view(-1, d, c, h, w) 会将张量重塑为 d 大小的块,其中第一个图像的索引将是 d 的倍数,这不是我想要的。
标量示例:
如果原始张量类似于:
[1,2,3,4,5,6,7,8,9,10,11,12] and d is 2;
Run Code Online (Sandbox Code Playgroud)
view()会返回:[[1,2],[3,4],[5,6],[7,8],[9,10],[11,12]];
但是,我想得到:
[[1,2],[2,3],[3,4],[4,5],[5,6],[6,7],[7,8],[8,9],[9,10],[10,11],[11,12]]
Run Code Online (Sandbox Code Playgroud)
我编写了这个函数来做到这一点:
def chunk_slicing(data, depth):
output = []
for i in range(data.shape[0] - depth+1):
temp = data[i:i+depth]
output.append(temp)
return torch.Tensor(np.array([t.numpy() for t in output]))
Run Code Online (Sandbox Code Playgroud)
但是我需要一个可用作 PyTorch 模型一部分的函数,因为此函数会导致此错误:
RuntimeError: Can't call numpy() on Tensor that requires grad. Use tensor.detach().numpy() instead.
Run Code Online (Sandbox Code Playgroud) 我想将 'E100N05' 拆分为 ['E100', 'N05'] ,因此在数字变成字母 N、E、S 或 W 后进行拆分。字母后面的位数可以不同。
import re
re.split('[NSEW$*]', 'E100N05')
Out[8]: ['', '100', '05']
What I want : ['E100','N05']
Run Code Online (Sandbox Code Playgroud)
我应该使用哪种模式?
我有一本字典
dicts = {('name1','name2','name3'): Engineer}
Run Code Online (Sandbox Code Playgroud)
我想将键(即元组)作为一个字符串,这样我的输出可能如下所示:
dicts = {'name1,name2,name3': Engineer}
Run Code Online (Sandbox Code Playgroud)
任何想法?
python ×5
dictionary ×1
exception ×1
keras ×1
python-3.x ×1
python-re ×1
pytorch ×1
regex ×1
string ×1
tensor ×1
tensorflow ×1
tuples ×1