Найти - Пользователи
Полная версия: Не повторяется правильное исполнение программы
Начало » Python для новичков » Не повторяется правильное исполнение программы
1 2
VAF34
После долгих поисков нашел работающий вариант программы, использующей библиотеку pykan. После нескольких изменений, связанных с выводом изображений программа проработала. Одна из выведенных фигур была спасена как png файл.
Попытка повторить результат через некоторое время привела к ошибке:
“c:\Users\frost\KAN\pykan-master>python.exe Examp8.py
Traceback (most recent call last):
File ”c:\Users\frost\KAN\pykan-master\Examp8.py“, line 1, in <module>
from kan import *
File ”c:\Users\frost\KAN\pykan-master\kan\__init__.py“, line 1, in <module>
from MultKAN import *
ModuleNotFoundError: No module named ‘MultKAN’”
Естественно, что при правильном выполнении сообщений такого вида не было. Время последнего редактирования файла программы на 4 минуты меньше времени спасения рисунка. Программа:
 from kan import *
import os
import numpy as np
import torch
import matplotlib.pyplot as plt
datasets = []
n_peak = 5  # Without errors for 5, 1 or 2 errors at line 71
n_num_per_peak = 100
n_sample = n_peak * n_num_per_peak
x_grid = torch.linspace(-1,1,steps=n_sample)
x_centers = 2/n_peak * (np.arange(n_peak) - n_peak/2+0.5)
x_sample = torch.stack([torch.linspace(-1/n_peak,1/n_peak,steps=n_num_per_peak)+center for center in x_centers]).reshape(-1,)
y = 0.
for center in x_centers:
    y += torch.exp(-(x_grid-center)**2*300)
    
y_sample = 0.
for center in x_centers:
    y_sample += torch.exp(-(x_sample-center)**2*300)
    
plt.plot(x_grid.detach().numpy(), y.detach().numpy())
plt.scatter(x_sample.detach().numpy(), y_sample.detach().numpy())
#[2]
plt.subplots(1, 5, figsize=(15, 2))
plt.subplots_adjust(wspace=0, hspace=0)
#plt.show()
for i in range(1,6):
    plt.subplot(1,5,i)
    group_id = i - 1
    plt.plot(x_grid.detach().numpy(), y.detach().numpy(), color='black', alpha=0.1)
    plt.scatter(x_sample[group_id*n_num_per_peak:(group_id+1)*n_num_per_peak].detach().numpy(), y_sample[group_id*n_num_per_peak:(group_id+1)*n_num_per_peak].detach().numpy(), color="black", s=2)
    plt.xlim(-1,1)
    plt.ylim(-1,2)
#plt.show()
#[3]
ys = []
# setting bias_trainable=False, sp_trainable=False, sb_trainable=False is important.
# otherwise KAN will have random scaling and shift for samples in previous stages
model = KAN(width=[1,1], grid=200, k=3, noise_scale=0.1, sp_trainable=False, sb_trainable=False, base_fun='zero')
for group_id in range(n_peak):
    dataset = {}
    dataset['train_input'] = x_sample[group_id*n_num_per_peak:(group_id+1)*n_num_per_peak][:,None]
    dataset['train_label'] = y_sample[group_id*n_num_per_peak:(group_id+1)*n_num_per_peak][:,None]
    dataset['test_input'] = x_sample[group_id*n_num_per_peak:(group_id+1)*n_num_per_peak][:,None]
    dataset['test_label'] = y_sample[group_id*n_num_per_peak:(group_id+1)*n_num_per_peak][:,None]
    model.fit(dataset, opt = 'LBFGS', steps=100, update_grid=False);
    y_pred = model(x_grid[:,None])
    ys.append(y_pred.detach().numpy()[:,0])
#[4]
plt.subplots(1, 5, figsize=(15, 2))
plt.subplots_adjust(wspace=0, hspace=0)
for i in range(1,n_peak+1):  
    plt.subplot(1,5,i)
    group_id = i - 1
    plt.plot(x_grid.detach().numpy(), y.detach().numpy(), color='black', alpha=0.1)
    plt.plot(x_grid.detach().numpy(), ys[i-1], color='black') # The place of error for 1 or 2
    plt.xlim(-1,1)
    plt.ylim(-1,2)
plt.show()
Rodegast
> использующей библиотеку pykan

Это что за библиотека такая?
VAF34
Это библиотека используется при построении сетей названных по имени великих российских математиков Колмогорова и Арнольда. Отличается использованием различных функций при переходе между узлами. Хотелось бы ознакомиться.
Alex.Pro.
VAF34
File ”c:\Users\frost\KAN\pykan-master\kan\__init__.py“, line 1, in <module>
from MultKAN import *
ModuleNotFoundError: No module named ‘MultKAN’”
Интересная ситуация. Почему и зачем ваш пукан установлен в профиле пользователя, а не в ‘Program Files’?
VAF34
Время последнего редактирования файла программы на 4 минуты меньше времени спасения рисунка.
Простите моё любопытство, какой язык у вас родной? Явно, не русский…
По существу. Вы говорите о времени изменения какого-то файла. Вы зачем-то редактировали “__init__.py”? Или это ваша нейросеть учится программировать?
Переустанавливайте пукан.
VAF34
Я не все понял. О установке: после стандартной установки python3.12, я добавил его в PATH и все. Остальное не мое дело. Из cmd все работает и мне этого достаточно.
Теперь о времени изменения файла. Это написано, чтобы подчеркнуть, что никакого изменения файла между временем, когда он проработал и создал сохраненный рисунок, и временем попытки (неудачной) его повторного включения не было. Файл не изменился, но раньше он рисовал, а теперь отказывается.
Ну, о языке - какие диалекты вы обнаружили?
Alex.Pro.
VAF34
Я не все понял.
Обычно, я пишу по-русски. Не всё понятно? Скажите какой язык вы понимаете лучше.
По поводу установки. Я не спрашивал про установку Пайтона. Я спрашивал почему библиотека пукан находится в профиле пользователя, а не в “Program Files”, не в каталоге установки Пайтона. BTW, а где у вас установлен собственно Пайтон: в “Program Files”, как все программы, или где-то в другом месте?
О времени изменения файла. Понятно для чего вы об этом сказали. Но ни в первый раз, ни во второй, вы не сказали какой файл был изменён. Ошибка возникает при обработке файла “__init__.py”. Вы изменяли этот файл?
Поскольку ошибка возникает при обработке одного из файлов библиотеки, я предлагал переустановить библиотеку по-новой. И, желательно, не куда-нибудь, а каталог установки Пайтона.
Теперь о языках и диалектах. “Save file”, в дословном переводе на русский, означает “Спасти файл”. Всё правильно. Только не всегда следует переводить дословно. По смыслу, “Save file” означает “Сохранить файл”. Это, типа, национальные лингвистические особенности.
VAF34
Я профан в вопросах установки необходимых компонентов. Я использовал pip и считал, что это и есть включение модулей в работу питона. Файл __init__.py я не видел, и не использовал. Вряд ли в новогоднюю ночь от 19 вечера 31-го до 2 часов 1-го я подходил к ПК.
Есть ли возможность заново установить питон с чистого листа.
Alex.Pro.
VAF34
Есть ли возможность заново установить питон с чистого листа.
Конечно. Максимально чистая установка начинается с команды “format c:”. Но я не сторонник таких методов.
Менее радикальный метод: деинсталлировать Python (через “Программы и компоненты”), удалить оставшиеся от Пайтона и его компонентов каталоги и файлы, почистить пути в “Переменных среды”. Потом начинать установку заново.
Но я не вижу необходимости полной переустановки Пайтона. Я предлагал переустановить только проблемную библиотеку - pykan. Сначала удалить её:
pip uninstall pykan
и удалите каталог “KAN” из вашего профиля. Затем проверить пути в “Переменных среды” и установить библиотеку заново, обращая внимание на место установки (в терминале перейдите в каталог Пайтон и запустите установку оттуда).
xam1816
Вам нужно освоить виртуальное окружение, читайте про venv, суть в том что python и модули находятся в одной собственной папке, не затрагивая python, установленный в системе, поэтому открывая терминал из этой папки, pip устанавливает библиотеки в неё, т. Е всегда знаешь в какой папке у тебя всё находится и для каждого своего проекта делаешь своё виртуальное окружение.
VAF34
Я стараюсь работать из папки, где находится текст задачи. Тогда все ваши советы надо уточнить. Я могу удалить питон через Программы и компоненты и почистить регистр системы. А дальше как правильно. Работать из одной папки, где питон, но тогда будет ли pip install -r requs.txt мешать. Нужен совет.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB