for i in range(50): x = numpy.reshape(new_string, (1, len(new_string), 1)) x = x / float(len(unique_chars)) #predicting pred_index = numpy.argmax(model.predict(x, verbose=0)) char_out = int_to_char[pred_index] seq_in = [int_to_char[value] for value in new_string] print(char_out) new_string.append(pred_index) new_string = new_string[1:len(new_string)]
时间: 2023-02-11 21:48:15 浏览: 118
这是一段 Python 代码,其中使用了 numpy 库。这段代码中,使用了一个 for 循环,循环次数为 50 次。在循环体中,调用了 numpy.reshape 函数,将变量 new_string 的形状重新设置为 (1, len(new_string), 1)。然后使用除法运算将 x 除以变量 unique_chars 的长度。
相关问题
""" Processing the data """ import numpy as np import pandas as pd from sklearn.preprocessing import StandardScaler, MinMaxScaler def process_data(train, test, lags): """Process data Reshape and split train\test data. # Arguments train: String, name of .csv train file. test: String, name of .csv test file. lags: integer, time lag. # Returns X_train: ndarray. y_train: ndarray. X_test: ndarray. y_test: ndarray. scaler: StandardScaler. """ attr = 'volumn' df1 = pd.read_csv(train, encoding='utf-8').fillna(0) df2 = pd.read_csv(test, encoding='utf-8').fillna(0) # scaler = StandardScaler().fit(df1[attr].values) scaler = MinMaxScaler(feature_range=(0, 1)).fit(df1[attr].values.reshape(-1, 1)) flow1 = scaler.transform(df1[attr].values.reshape(-1, 1)).reshape(1, -1)[0] flow2 = scaler.transform(df2[attr].values.reshape(-1, 1)).reshape(1, -1)[0] train, test = [], [] for i in range(lags, len(flow1)): train.append(flow1[i - lags: i + 1]) for i in range(lags, len(flow2)): test.append(flow2[i - lags: i + 1]) train = np.array(train) test = np.array(test) np.random.shuffle(train) X_train = train[:, :-1] y_train = train[:, -1] X_test = test[:, :-1] y_test = test[:, -1] return X_train, y_train, X_test, y_test, scaler
这段代码主要是用来对数据进行预处理,包括数据读取、缺失值填充、归一化、数据切分等操作。其中,train和test是数据集的文件名,lags是时间滞后的长度。在函数内部,首先读入train和test文件,并对缺失值进行填充。然后使用MinMaxScaler将原始数据归一化到0到1之间。接着,将数据按时间滞后的长度lags进行切分,生成训练集和测试集,并将其转换成numpy数组格式。最后,将训练集和测试集随机打乱顺序,并将输入和输出分别存储到X_train、y_train、X_test和y_test中,同时返回scaler对象,以便在后续预测时对数据进行还原操作。
报错could not convert string to float: "\x00\x00\x08\x01\x00\x00'\x10\x07\x02\x01\x00\x04\x01\x04"
这个错误是因为尝试使用 np.loadtxt 函数读取 MNIST 数据集中的 t10k-labels-idx1-ubyte 文件时出现了问题。这个文件是一个二进制文件,不能直接使用 np.loadtxt 函数读取。可以使用类似于读取 t10k-images-idx3-ubyte 文件的方式来读取该文件。修改完整代码如下:
```python
import os
import struct
import numpy as np
import matplotlib.pyplot as plt
def read_idx(filename):
with open(filename, 'rb') as f:
zero, data_type, dims = struct.unpack('>HBB', f.read(4))
shape = tuple(struct.unpack('>I', f.read(4))[0] for d in range(dims))
return np.frombuffer(f.read(), dtype=np.uint8).reshape(shape)
data = read_idx('t10k-images-idx3-ubyte')
labels = read_idx('t10k-labels-idx1-ubyte')
for i in range(len(data)):
label = labels[i]
folder = f'label_{label}'
if not os.path.exists(folder):
os.makedirs(folder)
plt.imshow(data[i], cmap='gray')
plt.savefig(os.path.join(folder, f'image_{i}.png'))
```
这里新增了一个 read_idx 函数来读取二进制文件,并将其转换为 numpy 数组。使用这个函数可以读取 MNIST 数据集中的 t10k-labels-idx1-ubyte 文件。
阅读全文